This Week in Effect - 2024-02-09
Hi Effecters!
Welcome back to This Week In Effect (TWIE), our weekly update that aims to help you keep track of everything that is going on inside our Community and the Effect Ecosystem.
If it’s your first time here, Effect is a powerful TypeScript library designed to help developers create complex, synchronous, and asynchronous programs. One of the key features that sets Effect apart is how it leverages structured concurrency to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.
To get started, below you’ll find our quick-start guide and documentation that will be your first step in your Effect journey. Enjoy!
Overview of TWIE
Another week has passed, and we're on our second date with TWIE. Since some of you may have missed the last post, we would like to spend a few words on what TWIE is and what it aims for.
We’re happy to witness the community growing so fast, with more and more people adopting Effect, and we understand that it might not be that easy keeping up with everything that is going on in the Effect Ecosystem:
- Our Discord server reached 1850+ members a few days ago and the engagement is at an all-time high.
- We’re approaching our very first Effect Days Conference in Vienna on February 23, 2024, and lots of new content is coming up.
- All projects around Effect are receiving key updates and there has been a lot of activity on GitHub.
So, we wanted to make it easy for you to find all the info you need to fully enjoy your Effect journey!
And, that’s why we created TWIE – a weekly update to inform you about key events about Effect in the previous week, both from the community (Discord discussions, X posts, YouTube content, etc.) and from a technical standpoint.
In this way, we want to help you stay on track with everything happening in the Effect Ecosystem and actively engage with our community.
Now, back to business!
Technology
Lists all the features, bug fixes, and changes (sometimes breaking) of this week.
General Chores
Effect Core
- Add ClassTag, improve Effect.serviceConstants, require string identifier for all tags
- Add toJSON for Secret (feature)
- change Effect type parameters order (Refactor)
- change Exit type parameter order from Exit
- change STM type parameters order from STM
- change Layer type parameters order from Layer
- change Streamable.Class and Effectable.Class type parameters order from Class
- enhance DX by swapping type parameters and adding defaults to async
- change Deferred type parameters order from Deferred
- change TDeferred type parameters order from TDeferred
- change Take type parameters order from Take
- change Fiber type parameters order from Fiber
- change RuntimeFiber type parameters order from RuntimeFiber
- change FiberSet type parameters order from FiberSet
- Fix for possible stack overflow issues due to Array.push in combination with spread operator(bug fix)
- change FiberMap type parameters order from FiberMap
- change Pool type parameters order from
- change Request type parameters order from Request
- change Resource type parameters order from Resource
- change TExit type parameters order from TExit
- change Channel type parameters order from Channel
- add releaseAll api to Semaphore
- change Runtime.RunCallbackOptions type parameters order from RunCallbackOptions
- add Option.orElseSome
- change Sink type parameters order from Sink
- add apis for manipulating a Runtime
- change Exit type parameter order from Exit
- change Pool type parameters order from Pool
- change Layer type parameters order from Layer
- Fix for possible stack overflow issues due to Array.push in combination with spread operator (bug fix)
- enhance DX by swapping type parameters and adding defaults to async
- change Streamable.Class and Effectable.Class type parameters order from Class
- change Effect type parameters order (Refactor)
- change Sink type parameters order from Sink
- fix Schedule typings
- port RateLimiter from Rezilienze
- simplify RateLimiter implementation using Semaphore
Effect Schema
- Rename schema transform params
- Fix usage of Schema.TaggedError in combination with Unify
- Schema: switch from positional arguments to a single options argument
- Introducing Optional Annotations in optional API
Effect Platform
- remove overloads from ClientRequest.make
- fix ClientRequest.make signature (generic was unused)
- use Context for collecting transferables
- move where platform worker spawn function is provided
- remove more platform re-exports
Effect CLI
Effect RPC
Community
We welcomed 25 new Effecters last week! Thank you for joining the community and we look forward to your active participation in our ever-growing family!
Effect Days Update
As you may already know, our big event in Vienna is getting closer and closer. From the 22nd to the 24th of February, we'll have the opportunity to meet our amazing community and unfold what the future of Effect will be.
There are only 3 workshop tickets left, and if you're still sitting on the fence, that's your last chance to get one!
For those of you who may have missed it, here's our full speaker lineup.
New sneak peeks of what our speakers will talk about have been posted on our X profile:
Tim Smart
Johannes Schickling:
Tim Suchanek:
Closing Notes
That's all for this week. Thank you for being a vital part of our community. Your feedback and requests are highly valued as we fine-tune this new format. Feel free to share your thoughts, and we'll do our best to tailor it to the needs of our community.
The Effect Community Team
Related Posts
This Week in Effect - 2024-02-16
Feb. 16th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
This Week in Effect is a weekly blog post that makes a summary of what happened in the Effect Community and Ecosystem to help you keep track of all the news, features and changes!
Read more
This Week in Effect - 2024-02-02
Feb. 2nd, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
This Week in Effect is a weekly blog post that makes a summary of what happened in the Effect Community and Ecosystem to help you keep track of all the news, features and changes!
Read more