@effect/platform-node
4.0.5 · 15 Oct 2026MIT1.7M / weekRepositoryHomepagenpmAtom feed
564 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 4.x · latest line
4.0.5
15 Oct 2026Add typed connection options to
NodeHttpClientfor unix sockets and mutual TLS.Redact sensitive query values in HTTP spans, request inspection and error messages. Also redact URL credentials in client spans, request inspection and errors. Request URLs sent over the wire are unchanged.
Move
AWSAccessKeyId,Signature,sigandX-Goog-SignaturefromHeaders.CurrentRedactedNamesto the newUrlParams.CurrentRedactedNames. A custom list replaces these defaults. AddUrlParams.isRedactedName,UrlParams.redactandUrlParams.redactUrlfor explicit redaction.
Patch Changes
Add typed connection options to
NodeHttpClientfor unix sockets and mutual TLS.Redact sensitive query values in HTTP spans, request inspection and error messages. Also redact URL credentials in client spans, request inspection and errors. Request URLs sent over the wire are unchanged.
Move
AWSAccessKeyId,Signature,sigandX-Goog-SignaturefromHeaders.CurrentRedactedNamesto the newUrlParams.CurrentRedactedNames. A custom list replaces these defaults. AddUrlParams.isRedactedName,UrlParams.redactandUrlParams.redactUrlfor explicit redaction.
4.0.4
13 Oct 2026Ignore a leading UTF-8 BOM when decoding Node HTTP request and response text, so
jsonno longer fails on BOM-prefixed bodies.
Patch Changes
Ignore a leading UTF-8 BOM when decoding Node HTTP request and response text, so
jsonno longer fails on BOM-prefixed bodies.
4.0.3
10 Oct 2026Accept address inputs in
Dns.reverseand name server inputs in the platformDnsservices, and addDns.nameServerFromInput.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.
Patch Changes
Accept address inputs in
Dns.reverseand name server inputs in the platformDnsservices, and addDns.nameServerFromInput.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.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.Allow WebSocket clients on Node and Bun to send handshake headers alongside subprotocols through socket constructors, channels, and layers. Preserve browser-compatible constructor calls when headers are not supplied.
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.Report the
101status of a successful WebSocket upgrade to server middleware such asHttpMiddleware.loggerandHttpMiddleware.tracer, instead of the handler's discarded response status.Fix keep-alive requests hanging during graceful HTTP server shutdown.
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.Report the
101status of a successful WebSocket upgrade to server middleware such asHttpMiddleware.loggerandHttpMiddleware.tracer, instead of the handler's discarded response status.Fix keep-alive requests hanging during graceful HTTP server shutdown.
4.0.1
5 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.
Create Node HTTP file response streams lazily and destroy them when body consumption ends, avoiding unused open streams when conditional or range handling discards a response.
Fail refused WebSocket upgrades with
SocketErrorinstead of hanging the request fiber, and skip HTTP response writes on destroyed sockets.
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.
Create Node HTTP file response streams lazily and destroy them when body consumption ends, avoiding unused open streams when conditional or range handling discards a response.
Fail refused WebSocket upgrades with
SocketErrorinstead of hanging the request fiber, and skip HTTP response writes on destroyed sockets.
4.0.0
1 Oct 2026Close server WebSockets with 1000 on success, 1001 on interruption, or 1011 on failure, while preserving explicit close codes. HTTP request scopes retain the handler's failure exit through response handling and middleware.
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
Core
Schema
Platform, HTTP and RPC
Cluster and Workflow
SQL
AI
CLI, Atom, observability and testing
Requirements
Patch Changes
Close server WebSockets with 1000 on success, 1001 on interruption, or 1011 on failure, while preserving explicit close codes. HTTP request scopes retain the handler's failure exit through response handling and middleware.
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.
- 1.x
1.0.0
4 Aug 2023Reading the note…
- 0.108.x
0.108.3
16 Oct 2026Close server-side WebSockets with a code that reflects how the socket run loop exited: 1000 on success, 1001 on interruption, and 1011 on failure.
Patch Changes
Close server-side WebSockets with a code that reflects how the socket run loop exited: 1000 on success, 1001 on interruption, and 1011 on failure.
0.108.2
9 Sep 2026Prevent NodeHttpServer from writing the route's HTTP response onto a connection that was upgraded to a WebSocket connection because stricter clients will interpret those bytes as WebSocket frames, logging "Invalid frame header" and failing the connection with an untyped 1006 error instead of the actual close code that the server sent.
Patch Changes
Prevent NodeHttpServer from writing the route's HTTP response onto a connection that was upgraded to a WebSocket connection because stricter clients will interpret those bytes as WebSocket frames, logging "Invalid frame header" and failing the connection with an untyped 1006 error instead of the actual close code that the server sent.
0.108.1
31 Jul 20260.108.0
13 Jul 2026Reading the note…
- 0.107.x
0.107.0
4 Jun 2026Reading the note…
- 0.106.x
0.106.0
20 Mar 2026Reading the note…
- 0.105.x
0.105.0
16 Mar 2026Reading the note…
- 0.104.x
0.104.1
22 Jan 2026Reading the note…
0.104.0
18 Dec 2025Reading the note…
- 0.103.x
0.103.0
1 Dec 2025Reading the note…
- 0.102.x
0.102.0
28 Nov 2025Reading the note…
- 0.101.x
0.101.2
26 Nov 2025Reading the note…
0.101.1
21 Nov 2025Reading the note…
0.101.0
20 Nov 2025Reading the note…
- 0.100.x
0.100.0
5 Nov 2025Reading the note…
- 0.99.x
0.99.0
4 Nov 2025Reading the note…
- 0.98.x
0.98.4
17 Oct 2025Reading the note…
0.98.3
2 Oct 2025Reading the note…
0.98.2
30 Sep 2025Reading the note…
0.98.1
30 Sep 2025Reading the note…
0.98.0
30 Sep 2025Reading the note…
- 0.97.x
0.97.1
24 Sep 2025Reading the note…
0.97.0
23 Sep 2025Reading the note…
- 0.96.x
0.96.1
1 Sep 2025Reading the note…
0.96.0
14 Aug 2025Reading the note…
- 0.95.x
0.95.0
9 Aug 2025Reading the note…
- 0.94.x
0.94.2
8 Aug 2025Reading the note…
0.94.1
3 Aug 2025Reading the note…
0.94.0
23 Jul 2025Reading the note…
- 0.93.x
0.93.0
22 Jul 2025Reading the note…
- 0.92.x
0.92.0
21 Jul 2025Reading the note…
- 0.91.x
0.91.0
15 Jul 2025Reading the note…
- 0.90.x
0.90.0
13 Jul 2025Reading the note…
- 0.89.x
0.89.6
13 Jul 2025Reading the note…
0.89.5
10 Jul 2025Reading the note…
0.89.3
9 Jul 2025Reading the note…
0.89.2
6 Jul 2025Reading the note…
0.89.1
6 Jul 2025Reading the note…
0.89.0
5 Jul 2025Reading the note…
- 0.88.x
0.88.11
4 Jul 2025Reading the note…
0.88.10
3 Jul 2025Reading the note…
0.88.9
3 Jul 2025Reading the note…
0.88.8
3 Jul 2025Reading the note…