Introducing create-effect-app! ✨ The new way to kickstart your @EffectTS_ projects! Bootstrap an Effect project in seconds so you can focus on building, not boilerplate 🚀🚢 effect.website/blog/create-ef…
This Week in Effect - 2024-09-13
Hi Effecters!
Welcome back to This Week In Effect (TWIE) – your weekly update of the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library that helps 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!
Recent major updates:
- Effect is API stable with the Effect 3.0 release.
- Effect 3.7 has been released.
- The Effect community on Discord reached 3540+ members!
- We are thrilled to announce the release of a brand new command-line tool for the Effect-TS ecosystem - create-effect-app!
This handy tool streamlines the process of setting up new Effect projects, allowing you to quickly bootstrap either an official Effect example or a project template with Effect and all our recommended developer tooling pre-configured for you. Read the full release post by Maxwell Brown for further details.
Here are all the technical changes from this week.
- TestClock yield with setTimeout(0) (Enhancement)
- Add RcMap.keys and MutableHashMap.keys lookup functions (Feature, next-minor)
- Deferred is subtype of Effect (Feature, next-minor)
- FiberRef’A’ subtype of Effect’A’ (Feature, next-minor)
- Make Fiber subtype of Effect (Feature, next-minor)
- Add Semaphore.withPermitsIfAvailable (Feature, next-minor)
- Add Options.withFallbackPrompt to CLI (Feature)
- Ensure QuitException terminates command-line processing (Bug Fix)
- Fix VariantSchema variant validation (Bug Fix)
- Add HttpApiBuilder.toWebHandler api (Feature)
- Fix HttpPlatform dependency cycle (Bug Fix)
- Add Socket.toChannelString api (Feature)
- Update platform-* READMEs (Documentation Update)
- Add missing encoding argument to Command.streamLines (Bug Fix)
- Focus the platform README on unstable modules (Documentation Update)
- Add filter refinement overloads to http client (Feature, next-minor)
- Enhanced the generation of recursive Arbitraries to prevent infinite nesting (Bug Fix)
- Relax constraints for members within a union from Schema.Any to Schema.All (Enhancement)
- Add webpack ignore to dynamic import to address resolution issues (Bug Fix)
- Fix mysql support for Model.makeRepository (Bug Fix)
- Remove network roundtrip from mysql update in Model repository (Bug Fix)
This past week, we welcomed 40+ new Effecters to our Discord community - we’re very excited to have you all on board!
-
This week we celebrate another community milestone: Effect reached 7k stars on GitHub🌟
7k 🌟
-
Effect is heading to San Francisco! The meetup will take place on Monday, October 21st at 5:00 PM SF time. 🎟️ Register now!
Effect is coming to SF! 🌉 Join us on Oct 21st at the upcoming Effect Meetup to connect, learn, and discuss everything Effect! More details coming soon! Sign up below: → lu.ma/gmk2jzd2 We can't wait to see you there! 🙌
-
Alessandro Maclaine wrote three new guides about Effect. He recently published about Combining Options, Folding Options, and Filtering Options.
-
Dillon Mulroy, Software Engineer at Vercel, aired four new episodes about Building a Job Queue with EffectTS:
- Dillon also shared his perspective about Effect as the best approach for writing backend TypeScript, highlighting its reliability, comprehensive error handling, seamless OTEL integrations, and efficient concurrency with fibers.
The more @EffectTS_ I write, the more I’m sold that it’s the best way to write backend TypeScript. My apps don’t crash, all of the errors that can occur are handled, I have free and seamless OTEL integrations, and I can spin up fibers (green threads) for concurrent work.
- Michael Arnaldi and Maxwell Brown were live on X(Twitter) and Twitch on Tuesday with the 6th episode of Effect Cluster - Design Sync Session.
Effect Cluster - Design Sync x.com/i/broadcasts/1…
- The fourth episode of the series is available on the Effect YouTube Channel.
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 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