@effect/platform-node-shared
4.0.5 · 15 Oct 2026MIT2M / weekRepositoryHomepagenpmAtom feed
393 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 4.x · latest line
4.0.6
22 Oct 2026Fix child-process cleanup without
forceKillAfterto give remaining process-group members up to one second to exit after the leader exits. Clarify that waiting for the leader has no time limit and never escalates toSIGKILLwhenforceKillAfteris omitted.Release writables created by
NodeSink.fromWritableandfromWritableChannelwhen upstream fails or the sink is interrupted, preserving the original exit cause. Writables usingendOnDone: falseremain open. Preserve stream body encoding errors in the Node HTTP client instead of reporting transport errors caused by request cleanup.Return 413 instead of 400 when buffered or decompressed request bodies exceed their size limit, while preserving 400 for other parse failures. Node HTTP servers drain oversized bodies so the response can reach the client without destroying the socket. Node stream readers expose
MaxBytesErrorand an optionaldestroyOnOverflowsetting; their default destruction behavior is unchanged.
Patch Changes
Fix child-process cleanup without
forceKillAfterto give remaining process-group members up to one second to exit after the leader exits. Clarify that waiting for the leader has no time limit and never escalates toSIGKILLwhenforceKillAfteris omitted.Release writables created by
NodeSink.fromWritableandfromWritableChannelwhen upstream fails or the sink is interrupted, preserving the original exit cause. Writables usingendOnDone: falseremain open. Preserve stream body encoding errors in the Node HTTP client instead of reporting transport errors caused by request cleanup.Return 413 instead of 400 when buffered or decompressed request bodies exceed their size limit, while preserving 400 for other parse failures. Node HTTP servers drain oversized bodies so the response can reach the client without destroying the socket. Node stream readers expose
MaxBytesErrorand an optionaldestroyOnOverflowsetting; their default destruction behavior is unchanged.Classify
EPERMerrors asPermissionDeniedinstead ofUnknownin Node and Deno platform error handlers.Fix NodeStream readable consumers hanging on prematurely closed or already-destroyed streams by failing with
ERR_STREAM_PREMATURE_CLOSE.Fix
Terminal.readLinenot echoing input or handling Ctrl+C on a TTY.Fix
NodeSink.fromWritablehanging when a writable finishes normally before all upstream chunks are written. Write callback errors are mapped throughonError, and normal finish releases backpressure waits while empty upstreams still succeed. Keep handling delayed error events during asynchronous destruction to prevent unhandled stream errors.Fix NodeSink hanging when a writable is destroyed without an error. Premature closure now fails through
onError, while closure after completed writes settles successfully.Add
FileSystem.lstat, which returns theFile.Infoof a path without following symbolic links. CustomFileSystemimplementations, including those passed toFileSystem.make, must now providelstat.Fix
FileSystem.realPathrejecting readable Windows AppContainer paths when an ancestor is inaccessible.
4.0.5
15 Oct 2026Use
bigintfor 64-bitFileSystem.File.Infometadata.devis now abigint, andino,rdev,nlink, andblocksareOption<bigint>, so file stats no longer fail or drop values outside the safe integer range. Node and Bun readdev,ino,rdev, andnlinkas unsigned 64-bit integers. Deno reports these fields as numbers, so values aboveNumber.MAX_SAFE_INTEGERare rounded by Deno before conversion.Fix
FileSystem.watchto prefer the caller-providedFileSystem.WatchBackend, falling back to the backend captured when the file system layer was built.Add
Path.resolveWithin(root, input), which resolves a relative path beneath a root and returnsOption.none()for traversal escapes and rooted inputs, using the platform's path rules.
Patch Changes
Use
bigintfor 64-bitFileSystem.File.Infometadata.devis now abigint, andino,rdev,nlink, andblocksareOption<bigint>, so file stats no longer fail or drop values outside the safe integer range. Node and Bun readdev,ino,rdev, andnlinkas unsigned 64-bit integers. Deno reports these fields as numbers, so values aboveNumber.MAX_SAFE_INTEGERare rounded by Deno before conversion.Fix
FileSystem.watchto prefer the caller-providedFileSystem.WatchBackend, falling back to the backend captured when the file system layer was built.Add
Path.resolveWithin(root, input), which resolves a relative path beneath a root and returnsOption.none()for traversal escapes and rooted inputs, using the platform's path rules.Add filesystem watcher installation notifications and wait for all GraphQL watch subscriptions, including nested directories, before generating. This prevents edits during startup from being missed.
4.0.4
13 Oct 2026Prevent unhandled writable errors when buffered child-process stdin or additional input descriptors are interrupted.
Support an explicit client
servernamefor TLS socket upgrades without changing hostname behavior when omitted.Skip Windows
taskkillcleanup for children that have already exited, since their PID may have been reused.
Patch Changes
Prevent unhandled writable errors when buffered child-process stdin or additional input descriptors are interrupted.
Support an explicit client
servernamefor TLS socket upgrades without changing hostname behavior when omitted.Skip Windows
taskkillcleanup for children that have already exited, since their PID may have been reused.
4.0.3
10 Oct 2026Add a
noFollowoption toFileSystem.opento reject symlinks at the final path component. Supported on Node and Bun on POSIX; Windows and Deno returnBadArgument. Add{ position }toFile.readandFile.readAllocfor concurrent reads that leave the cursor unchanged.Accept address inputs in
Dns.reverseand name server inputs in the platformDnsservices, and addDns.nameServerFromInput.Add TLSA records to
effect/net/Dns, with aSchema.DnsTlsaRecordschema whose JSON codec encodes the certificate association data as hex. The Node.jsDnsservice queries them withresolveTlsa(Node.js 22.15 or 23.9 and later); Bun, Deno, and older Node.js versions fail TLSA queries withUnsupported.
Patch Changes
Add a
noFollowoption toFileSystem.opento reject symlinks at the final path component. Supported on Node and Bun on POSIX; Windows and Deno returnBadArgument. Add{ position }toFile.readandFile.readAllocfor concurrent reads that leave the cursor unchanged.Accept address inputs in
Dns.reverseand name server inputs in the platformDnsservices, and addDns.nameServerFromInput.Add TLSA records to
effect/net/Dns, with aSchema.DnsTlsaRecordschema whose JSON codec encodes the certificate association data as hex. The Node.jsDnsservice queries them withresolveTlsa(Node.js 22.15 or 23.9 and later); Bun, Deno, and older Node.js versions fail TLSA queries withUnsupported.Add experimental
Host,Dns, andAddressResolvermodules toeffect/netfor host parsing, DNS queries, and endpoint resolution, with Node, Bun, and Deno services. DNS operations accept and normalize domain-name strings; endpoint resolution also acceptshost:portstrings. Add scoped IPv6 literals and host and DNS record schemas, including JSON codecs for records.Provide the services explicitly; they are not included in the platform
*Serviceslayers. UseNodeAddressResolver.layer.pipe(Layer.provideMerge(NodeDns.layer))to provide both Node services.Add
DatagramSocketfor UDP on Node, Bun, and Deno, andNetAddress.inetAddressFromNativeUnsafefor runtime-reported addresses.Add
Stdio.stderrIsTerminalwith an overridable false default and runtime detection for Node.js, Bun, and Deno.Esc now ends terminal key input by default, cancelling CLI prompts with
Terminal.QuitError. To keep Esc non-cancelling, pass ashouldQuitpredicate tomake, such as(input) => input.key.ctrl && (input.key.name === "c" || input.key.name === "d")to quit only on Ctrl+C or Ctrl+D.
4.0.2
7 Oct 2026Tag every module and directly importable export with an explicit
@stability.@stability stablefollows strict semver, and@stability unstablemay receive breaking changes in minor releases.Update repository dependencies to their latest compatible releases.
Patch Changes
Tag every module and directly importable export with an explicit
@stability.@stability stablefollows strict semver, and@stability unstablemay receive breaking changes in minor releases.Update repository dependencies to their latest compatible releases.
4.0.1
4 Oct 2026Fix duplex socket readers throwing when a pull is interrupted or its scope closes during a read. Preserve consumed bytes in order across pull interruption and normal EOF, while discarding them when the reader scope closes.
Honor
forceKillAfterduring scope release after a command leader exits with a non-zero code, so surviving descendants that ignore the termination signal are forcefully killed.
Patch Changes
Fix duplex socket readers throwing when a pull is interrupted or its scope closes during a read. Preserve consumed bytes in order across pull interruption and normal EOF, while discarding them when the reader scope closes.
Honor
forceKillAfterduring scope release after a command leader exits with a non-zero code, so surviving descendants that ignore the termination signal are forcefully killed.
4.0.0
1 Oct 2026Effect 4.0 is the first stable release of Effect v4. It replaces the 4.0.0 beta and release-candidate series, whose per-release notes remain below under the
4.0.0-beta.*and4.0.0-rc.*headings. To upgrade from Effect 3, follow the migration guide.Packaging and versioning
Core
Schema
Platform, HTTP and RPC
Cluster and Workflow
SQL
AI
CLI, Atom, observability and testing
Requirements
Patch Changes
Effect 4.0 is the first stable release of Effect v4. It replaces the 4.0.0 beta and release-candidate series, whose per-release notes remain below under the
4.0.0-beta.*and4.0.0-rc.*headings. To upgrade from Effect 3, follow the migration guide.Packaging and versioning
All Effect packages share one version number and are released together. Use the same version of
effectand every@effect/*package.@effect/platform,@effect/rpc,@effect/cluster,@effect/cli,@effect/ai,@effect/sql,@effect/workflow,@effect/experimentaland similar packages are merged intoeffect. Separate packages remain only for platforms (@effect/platform-*), SQL drivers (@effect/sql-*), AI providers (@effect/ai-*), framework bindings (@effect/atom-*), OpenTelemetry, Vitest and tooling.Modules such as
effect/http,effect/http-api,effect/rpc,effect/cluster,effect/workflow,effect/ai,effect/cli,effect/sqlandeffect/schemaimport fromeffect/<area>. APIs tagged@stability unstablemay have breaking changes in minor releases. APIs without a stability tag follow semver.APIs that expose a third-party dependency are tagged
@stability unstable, because that dependency's releases can change them. This coversNodeRedis,DenoRedis,BunRedis,@effect/platform-node/Undiciand the undici dispatcher APIs, thewsoptions and re-exports in the platform packages, driver-specific options and clients in@effect/sql-clickhouse,@effect/sql-d1,@effect/sql-libsql,@effect/sql-mssql,@effect/sql-mysql2,@effect/sql-pgliteand@effect/sql-sqlite-do, the provider clients, models and generated schemas in the@effect/ai-*packages,@effect/opentelemetry, and thevitestre-export in@effect/vitest.effecthas no runtime dependencies.New packages in v4:
@effect/platform-deno,@effect/sql-pglite,@effect/ai-openai-compat,@effect/ai-typesafe,@effect/atom-react,@effect/atom-solid,@effect/atom-vue,@effect/openapi-generatorand@effect/doctest.@effect/docgennow lives in this repository.
Core
The fiber runtime was rewritten for lower memory use and faster execution, with smaller bundles and better tree-shaking.
Services are defined with
Context.Service,FiberRefis replaced byContext.Reference,Causehas a flat structure, and many combinators were renamed. See the migration guide for the full list.Software transactional memory is built into
Effect.tx, withTxRef,TxQueue,TxHashMap,TxPubSub,TxSemaphoreand relatedTx*data types.Clockseparates wall-clock time from monotonic time.New modules include
Semaphore,Latch,LayerRef,ErrorReporter,ByteSize,NewtypeandCrypto.Arbitraryis now a native property-based testing module and no longer depends on fast-check.
Schema
Schema v4 is a new implementation with faster parsing, class-based schemas,
makeconstructors on every schema, and effectful decoding with services.SchemaRepresentationpowers JSON Schema (Draft-04, Draft-07, 2020-12 and OpenAPI 3.0/3.1) import and export, TypeScript code generation, and AI structured output.SchemaBinaryprovides a compact binary codec and is the default wire format for cluster transports.Optional JIT and AOT schema compilers are available as experimental modules.
Platform, HTTP and RPC
HttpApisupports typed response headers, streaming and SSE responses, the HTTPQUERYmethod,HttpApiTestfor in-memory testing, and much faster type checking for large APIs.The HTTP modules add static file serving, response compression, rate-limited clients and graceful server shutdown.
Sockethas a pull-based reader with backpressure and STARTTLS support. Network addresses are modeled byeffect/net.RPC serialization is schema-aware and supports server-originated requests and notifications.
@effect/platform-denoadds full Deno support. The Node, Bun, Deno and browser packages all provide the platformCryptoservice, and the browser package adds IndexedDB support.
Cluster and Workflow
Workflows can be declared with class syntax, and
DurableQueueand an in-memoryWorkflowEngineare available.Runner memory can be bounded with
ShardingConfiglimits. Shutdown, entity movement and persisted replies are more reliable.
SQL
@effect/sql-pguses a built-in PostgreSQL client with pipelining, prepared statements and binary codecs, and no longer depends onpg.@effect/sql-sqlite-nodeuses Node's built-innode:sqliteand requires Node 22.16 or newer.SqlErrorexposes structured reasons such asUniqueViolation.
AI
effect/aiaddsEmbeddingModel, theDecisionModelclassification and rating API, dynamic tools and tool approvals.The MCP server supports protocol versions 2024-11-05 through 2026-07-28, including elicitation, sampling with tools, resource subscriptions and typed tool output.
Provider packages cover Anthropic, OpenAI, OpenAI-compatible APIs and OpenRouter.
CLI, Atom, observability and testing
effect/cliadds global flags, command aliases and examples, an interactive wizard mode, and shell completions for Bash, Zsh and Fish.effect/reactivityand the@effect/atom-*bindings add SSR hydration, stale-while-revalidate atoms and serializable RPC and HttpApi queries.The OTLP exporters can be configured with standard OpenTelemetry environment variables, and
@effect/opentelemetryaligns logs and spans with the OpenTelemetry specification.@effect/vitestruns property tests with the nativeArbitrarymodule and supports Vitest fixtures.
Requirements
TypeScript 5.9 or newer. TypeScript 7 is recommended.
@effect/vitestand@effect/doctestrequire Vitest 5.@effect/atom-reactrequires React 19.@effect/platform-denorequires Deno 2.8.3 or newer.
- 0.61.x
0.61.1
30 Jul 20260.61.0
13 Jul 2026Reading the note…
- 0.60.x
0.60.0
4 Jun 2026Reading the note…
- 0.59.x
0.59.0
20 Mar 2026Reading the note…
- 0.58.x
0.58.0
16 Mar 2026Reading the note…
- 0.57.x
0.57.1
22 Jan 2026Reading the note…
0.57.0
18 Dec 2025Reading the note…
- 0.56.x
0.56.0
1 Dec 2025Reading the note…
- 0.55.x
0.55.0
28 Nov 2025Reading the note…
- 0.54.x
0.54.0
20 Nov 2025Reading the note…
- 0.53.x
0.53.0
5 Nov 2025Reading the note…
- 0.52.x
0.52.0
4 Nov 2025Reading the note…
- 0.51.x
0.51.6
17 Oct 2025Reading the note…
0.51.5
15 Oct 2025Reading the note…
0.51.4
5 Oct 2025Reading the note…
0.51.3
2 Oct 2025Reading the note…
0.51.2
30 Sep 2025Reading the note…
0.51.1
30 Sep 2025Reading the note…
0.51.0
30 Sep 2025Reading the note…
- 0.50.x
0.50.1
24 Sep 2025Reading the note…
0.50.0
23 Sep 2025Reading the note…
- 0.49.x
0.49.2
18 Sep 2025Reading the note…
0.49.1
9 Sep 2025Reading the note…
0.49.0
14 Aug 2025Reading the note…
- 0.48.x
0.48.1
13 Aug 2025Reading the note…
0.48.0
9 Aug 2025Reading the note…
- 0.47.x
0.47.2
8 Aug 2025Reading the note…
0.47.1
8 Aug 2025Reading the note…
0.47.0
23 Jul 2025Reading the note…
- 0.46.x
0.46.0
22 Jul 2025Reading the note…
- 0.45.x
0.45.0
21 Jul 2025Reading the note…
- 0.44.x
0.44.0
15 Jul 2025Reading the note…
- 0.43.x
0.43.0
13 Jul 2025Reading the note…
- 0.42.x
0.42.18
13 Jul 2025Reading the note…
0.42.17
10 Jul 2025Reading the note…
0.42.15
9 Jul 2025Reading the note…
0.42.14
6 Jul 2025Reading the note…
0.42.13
6 Jul 2025Reading the note…
0.42.12
5 Jul 2025Reading the note…
0.42.11
4 Jul 2025Reading the note…
0.42.10
3 Jul 2025Reading the note…
0.42.9
3 Jul 2025Reading the note…
0.42.8
3 Jul 2025Reading the note…