https://youtu.be/nyvB6nRe5x0?si=Hh8jAseo6Xz66pDf
TLDR:
https://github.com/Effect-TS/effect-smol
- Уменьшился размер бандла:
-
5.4Kb — базовый эффект с рантаймом-
17.3Kb — со схемой (было 50Kb)-
6.63Kb — со Stream-
Context.Reference - кажется единственным способом передавать неявные зависимости - RuntimeFlags и FiberRefs не будет -
Queue был прямым портом ZIO.Queue, теперь она будет Mailbox более производительная и фиче-комплит версия очереди- Многие модули имплементированы по новому - стали более производительными и уменьшились в размере - перешли от initial encoding (интерпретация операций) к final encoding (непосредственное выполнение) - думаю будет ниже порог входа для контрибьюторов, потомучто это более привычный стиль написания кода. Плюс кажется переписали все on top of Effect - раньше в initial encoding помоему для каждого модуля была своя пара интерпретатор-AST
Stream.fromIterable(100_000): 3.23s -> 170ms 20x faster - без переписания на go)-
STM встроили в Effect- зависшие файберы теперь не прерывают процесс — что более интуитивно
- увеличина производительность
-
Effect.cron теперь понимает таймзоны и добавляет CronParseError в E-канал-
Layer.effect - теперь предоставляет Scope по дефолту - Layer.scoped не нужен-
Effect.Service - возможно будет теперь единственным способом создавать DI-теги