took 3 years of attempts but looks like we were finally able to kill the need to use an adapter function and we can just yield* effects! PR: github.com/Effect-TS/effe…
This Week in Effect - 2024-04-26
Hi Effecters!
Welcome back to a 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 links to our documentation as well as our guide for installing Effect. Enjoy!
If you’re new to TWIE, here are a few words on what TWIE is and what it aims for.
We’re happy to see the community growing so fast, with more and more people adopting Effect. At the same time, we understand that it might not be easy keeping up with everything that is going on in the Effect Ecosystem:
- Effect became API stable with the Effect 3.0 release.
- Our Discord server reached 2420+ members a few days ago and the engagement is at an all-time high.
- We’ve begun publishing the talks from Effect Days every week. Make sure you don’t miss any by subscribing to our YouTube channel.
- All projects around Effect are receiving key updates and there has been a lot of activity on GitHub!
We want to make it easy for you to find all the info you need to fully enjoy your Effect journey and actively engage with the community!
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.
Now, back to business!
We’d like to draw your attention to a small update that will bring a huge benefit to anyone using Effect: with patch 3.0.4 (already released), Effect no longer needs an adapter function in order to yield effects! Scroll down for the PR.
Below you can find all the changes that occurred last week.
- Add SpanKind to Tracer spans (Feature, next-minor)
- Allow use of Effect.gen without the adapter (Improvement)
- Simplify EffectGenerator type (Improvement)
- Foreach preserve non emptyness (Feature)
- BatchedRequestResolver works with NonEmptyArray (Feature)
- Add SpanKind to Tracer spans (Feature, next-minor)
- Add Effect.annotateLogsScoped (Feature, next-minor)
- Add Effect.annotateLogsScoped (Feature, next-minor)
- Add $is & $match helpers to Data.TaggedEnum constructors (Feature, next-minor)
- Revert removal of custom NoInfer (Feature)
- Make sure GenKind utils are backward compatible & don’t generate loops (Bug Fix)
- Add Effect.annotateLogsScoped (Feature)
- Add SpanKind to Tracer spans (Feature, next-minor)
- Allow for multiple otel span processors & metric readers (Feature)
- Redact some common sensitive http header names in traces (Refactor)
- Add SpanKind to Tracer spans (Feature, next-minor)
- Rename and export platform file schemas (Refactor, next-minor)
- BatchedRequestResolver works with NonEmptyArray (Feature)
- Add SpanKind to Tracer spans (Feature, next-minor)
- Revert removal of custom NoInfer (Feature)
- BatchedRequestResolver works with NonEmptyArray (Feature)
- Add SpanKind to Tracer spans (Feature, next-minor)
- BatchedRequestResolver works with NonEmptyArray (Feature)
- Add SpanKind to Tracer spans (Feature, next-minor)
- Sql tx spans and semantic conventions (Refactor)
- Add db.name span attribute to mysql & pg (Feature)
- Revert removal of custom NoInfer (Feature)
- Schema: JSONSchema should support make(Class) (Feature)
- Fix formatting for Class and brands AST (Bug Fix)
- Fix JSDoc typos in BooleanFromUnknown and split functions for Schema package (Bug Fix)
- Schema: add default title annotations to both sides of Struct transformations (Feature)
- Schema: JSONSchema - rearrange handling of surrogate annotations to occur after JSON schema annotations (Refactor)
- Schema: remove non-tree-shakable compiler dependencies from the Schema module (Refactor)
- Remove excessive constraint from the pipeable overload of ‘attachPropertySignature’ (Bug Fix)
- Revert removal of custom NoInfer (Feature)
- Add support for data-last subtype overloads in compose (Feature)
In the last week, we welcomed +140 new Effecters to our Discord server! Thank you all for joining the Effect community, we’re excited to have you on board!
The first Effect Paris Meetup happened this week and we heard it was a success! It’s incredibly exciting to witness the rapid growth of the Effect community in France. A huge thank you goes out to the Evryg team, in particular Jean-Baptiste Musso and Antoine Coulon for organizing and hosting the event.
Getting ready for the first Effect Paris meetup tonight hosted and organised by us, @EvrygDotCom⏳ I will talk about the biggest misconceptions about @EffectTS_ and will restore the truth! 👨⚖️
Jean-Baptiste gave us a little sneak peek about when the next Meetup will take place 👀. So stay tuned for future updates!
We are at @EvrygDotCom! Currently organizing the Effect Paris meetup. First one yesterday, next one in June. CC @EffectTS_
On Monday we posted one of the most anticipated talks from the Effect Days conference, “Why Effect is more important than ZIO” by John De Goes. John is the author of ZIO & founder of Ziverge and Golem Cloud, and also, Grandfather of Effect (cit. Sebatian Lorenz).
In this talk, John discusses the history and design decisions of ZIO, the birth and evolution of Effect, and the reasons why he believes Effect is here to stay and will have a bigger impact on commercial functional programming than ZIO.
We’re happy to see more and more developers and content creators recognizing the value of the Effect library and introducing it to their projects. It’s exciting to see Effect gaining traction and making a positive impact in the community.
-
Dillon Mulroy, Software Engineer @ Vercel, this week streamed about Effect on his Twitch channel: how to build an Apple Music Twitch integration with Effect.
-
Henrique Doro, a developer focused on building content workflows with Sanity.io, has also been streaming about Effect on his Twitch channel where he shows how to make code more robust or build a smart Typescript SDK with Effect.
-
Mattia Manzati, Effect Cluster Contributor, streamed about Effect Cluster on his Twitch channel
-
Our DX Johannes Schickling was featured at the devtools-fm, a podcast about developer tools, where he discussed Effect, Prisma and the rise of local-first development.
- Things by Ping, a project run by Theo - t3.gg, recently adopted Effect.
Another quite sizeable OSS project recently adopted @EffectTS_ , the amazing UploadThing by @pingdotgg ! Check out: github.com/pingdotgg/uplo…
- Matt Pocock TypeScript educator and author of Total Typescript, conducted a poll on Twitter asking the audience if they were excited about Effect. We encourage you to dive through the replies where you may find some interesting ones, like the one shared below by Matthew Phillips, CTO of The Astro Technology Company and co-creator of Astro.
Very excited. I remember a number of years ago there were a number of attempts to do similar things in regular JavaScript that didn't catch on. I think TypeScript has made it much more viable. I think it's one of the most important libraries being developed today.
Last but not least, we’re excited to announce that one of the Effect workshops hosted during Effect Days in Vienna is now available on our YouTube channel! The workshop, led by Ethan Niser, is designed for beginner to intermediate Effect developers.
Before wrapping up, we’d like to remind you that Michael Arnaldi, author of Effect, will be giving a talk at the LambdaConf 2024 on May 6-7, 2024. If you’re around, feel free to drop by and say hello!
Don't miss @MichaelArnaldi's talk on Effect: A Functional Foundation For TypeScript at #LambdaConf2024! Explore the power of functional programming principles in creating a standard library for #TypeScript. Join Now: buff.ly/3wbaG7U
That’s all for this week. Thank you for being a vital part of our community. Your feedback is 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.
Effect Community Team