This Week in Effect - 2024-02-16
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
If you're new to TWIE, here's 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 1889+ 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
Big news of the week: Effect 2.3 has been released! Read the release post here!
General Chores
Effect Core
- Consolidate Effect and Stream async methods (next-minor)
- Swap Either type params (next-minor)
- Swap Schedule type parameters (next-minor)
- Fix type parameter order in API signatures (next-minor)
- Remove Effect.unified and Effect.unifiedFn in favour of Unify.unify (next-minor)
- ReadonlyRecord: re-add symbol as valid key to some APIs (next-minor)
- Add support for optional properties to pick, omit and get (next-minor)
- Swap GroupBy type params (next-minor)
- Add Do notation for Either (next-minor)
- Revert some type param adjustments in FiberSet
- Default to never for Runtime returning functions
- Optimize Effect.zip Left & Right
- Remove no longer necessary ./internal/timeout
- Expand Either and Option andThen
- RateLimiter.withCost combinator + Rate Limiter composition tests
- Ensure RateLimiter utilizes the token-bucket algorithm
- Ensure large semaphore takes don't block smaller ones
- Fix the return order of batched requests
- Expose Random Tag and functions to use a specific random service implementation
- Fix internals of TestAnnotationsMap making it respect equality
- Add functional analogue of satisfies operator
- Fix Cause.pretty when toString is invalid
- Fix withRandom and withClock types
- Relax FiberRefs, make None behave like Runtime
- Generate a random span id for the built-in tracer
- Add RequestResolver.aroundRequests api
- Flipped scheduleForked types to match new signature
- Add Runtime.updateFiberRefs/setFiberRef/deleteFiberRef
- Expose ModuleVersion
- Avoid incrementing cache hits for expired entries
- Fix Hash implementation for Option.none
Effect Schema
- Change MessageAnnotation to be non parametric
- Add transformation option to pluck
- Make headOr dual
- Add support for unions to keyof
- Use the identity function in the transformation defining a schema class
- ParseResult: add missing decode / encode exports
- Refactor the declare signature to ensure that the decoding and encoding functions do not utilize context
- Allow passing structs when encoding schema classes
- Add exact optional argument to the partial API
- Add a note about encoding options
Effect Experimental
Effect Platform
- Improve type extraction for Router.fromIterable
- Add XMLHttpRequest client to @effect/platform-browser
- Add Scope to Http client (minor)
- Use Schema.TaggedError for worker errors
- Add a way to redact HTTP headers
- Add unsafe body accessors to node http IncomingMessage
- Fix incorrect removal of scope in Client.schemaFunction
Effect CLI
Effect RPC
- Fix changesets for rpc
- Add rpc Router.provideService and Router.provideServiceEffect
- Add non-streaming handlers and resolvers to rpc
- Make Rpc.Request compatible with Persistence
Effect OpenTelemetry
Community
We welcomed 32 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
We're less than a week away from Effect Days and we really can't wait to meet you all in Vienna!
For all of you who may have not heard about it, from the 22nd to the 24th of February, we'll have a 3-day event where we'll unfold the future of Effect.
You're a last-minute person, don't you? Here, you'll find the few spots left for the Conference and our stunning speaker lineup.
For all of our attendees, we published a guide to make your stay in Vienna as comfortable and enjoyable as possible.
Let's get to our speakers sneak peeks on our X profile:
Jess Martin:
David Blass:
John De Goes:
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-09
Feb. 9th, 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-03-01
Mar. 1st, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Straight from our Event in Vienna! 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