@effect/platform-deno
4.0.0-rc.115
Patch Changes
- #8190
f9ef0e9Thanks @javascript-unsafe! - Omit response bodies for statuses 204, 205, and 304 inHttpServerResponse.toWeband the Bun/Deno HTTP adapters, preventing invalid Web responses and hung requests. Cancel omitted rawReadableStreambodies, and finalize request resources without starting omitted Effect streams. - Updated dependencies [
657254b,f9ef0e9,4f73f9e]:- effect@4.0.0-rc.115
- @effect/platform-node-shared@4.0.0-rc.115
4.0.0-rc.114
Patch Changes
- Updated dependencies [
3ff4952,6d55555,716e0c0,d4e4ad5,b1988f4,482b7d7,716e0c0,9941e6d]:- effect@4.0.0-rc.114
- @effect/platform-node-shared@4.0.0-rc.114
4.0.0-rc.113
Patch Changes
-
#7833
832c1d8Thanks @kitlangton! - Decode percent-encoded Redis URL authority credentials before authentication. -
#7943
862ba71Thanks @kitlangton! - FixFileSystem.writeFileon Deno to preserve permissions when writing an existing file with an explicit mode. -
#7514
b76a1cfThanks @tim-smart! - Add Socket.upgrade, for upgrading tcp sockets using STARTTLS -
#7514
b76a1cfThanks @tim-smart! - Use the node-shared socket server on Deno so accepted TCP connections support reader-scoped server TLS upgrades.Breaking changes
DenoSocketServer.makeandlayernow accept Node listen options. Usehostinstead ofhostnamefor TCP and{ path }instead of{ transport: "unix", path }for Unix sockets. Deno 2.8.3 or newer is now required. -
#7525
53843f6Thanks @fubhy! - AddByteSizemodule and use it across the ecosystem -
#8110
4ab4e83Thanks @tim-smart! - Prevent precision loss in Node/Bun filesystem operations andHttpPlatformfile responses. -
#8108
c85fc0bThanks @tim-smart! - On Node and Deno,FileSystem.File.seeknow rejects negative resulting positions with aBadArgumentplatform error, leaving the cursor unchanged. Its return type is nowEffect<bigint, PlatformError>. -
#8148
7999b07Thanks @tim-smart! - Preserve the response Content-Type when compressing file, raw, stream, and byte-array responses on Node, Bun, Deno, and the web platform, including headers overridden after body construction. -
#8112
a6ceb98Thanks @tim-smart! - FixFile.readAllocon Node and Deno to fail withPlatformError(BadArgument) for negative, fractional, non-finite, or unallocatable sizes without moving the cursor. Zero-size reads continue to returnOption.none()without moving the cursor. -
#7524
0a08ae0Thanks @fubhy! - AddNetAddressundereffect/unstable/netfor MAC, IP, internet socket, and Unix socket addresses, with checked parsing, schemas, equality, canonical string serialization, and URL formatting. Companion modulesIpInterfaceandIpNetworkrepresent IP interfaces and CIDR networks.HTTP and socket servers now expose
NetAddress.SocketAddress. Replace TCPhostnameaccess withNetAddress.formatIp(address.address)and useUnixPathAddress.pathfor Unix sockets. URL helpers bracket IPv6 addresses and reject scoped IPv6. Bun and Deno HTTP server layers can now fail withServeErrorwhen listener address conversion fails.PostgreSQL
inetvalues now useIpInterface;cidrvalues useIpNetworkand reject addresses with host bits set. -
#7487
ba53b64Thanks @tim-smart! - RedesignSocketaround a scoped, pull-based reader with transport backpressure.Socketnow exposesreaderandwriter. Client reader acquisition dials and yields a pull of non-empty batches: one buffer for TCP and one entry per WebSocket frame. TCP applies backpressure while paused; pausable WebSockets pause athighWaterMark(64 KiB by default) and resume after draining. Browser WebSockets cannot pause, so they can fail withSocketReadErrorat a configuredhighWaterMark. Writes await native drain signals and batch withcork/uncorkwhere available.Breaking changes
Socket.run,Socket.runString, andSocket.runRaware removed. Acquiresocket.reader(orSocket.readerBytes/Socket.readerString) in a scope and pull in a loop. Code before the first pull replacesonOpen.Socket.makenow takes{ reader, writer }. The writer acquisition is infallible and yields aWriterwithwriteandwriteAll; both operations can still fail withSocketError.- Every close fails the pull with
SocketErrorwrappingSocketCloseError. The close-code predicates are removed; useEffect.retryaround the scoped read loop to reconnect. Socket.toChannelandSocket.toChannelStringnow read from the pull and fail on close.Socket.toStreamis added for read-only consumption.fromWebSocketdrops theonInitialRunoption;SendQueueCapacityis removed.- Accepted server sockets pause immediately. Their reader attaches to the existing connection and cannot reconnect after close.
-
#7461
b4d5398Thanks @tim-smart! - Remove the MessagePack encoding and RPC serialization APIs together with themsgpackrdependency. Event-log persistence and remote messages now use SchemaBinary, and cluster transports use SchemaBinary unless NDJSON is selected explicitly. -
#7427
1a2cceeThanks @tim-smart! - Use SchemaBinary as the default RPC serialization for TCP cluster connections, including configurable frame limits.Cluster payloads are encoded with the binary codec on the wire. When a persisted reply cannot be encoded for JSON storage, the defect fallback that storage records is now also the reply delivered to waiting callers, so live replies always match what was persisted.
SchemaBinary codecs are memoized by schema identity and wire mode, so per-message codec requests reuse the derived codec instead of rebuilding it.
-
Updated dependencies [
49e3901,b945ded,d6422f4,5a80204,53511ef,79ae49f,0d083ba,be0f822,debe8fd,a8588f9,f17eb0a,f30cbfe,78cc9c0,2f106a5,ccbdbd5,a63dcbf,b845b18,381b794,4ffcaf4,ba2fd82,02be94c,115d8c2,1452635,77f85fe,a3f2b31,310f8d3,291d616,48dbbb2,b43bfd6,1c89c78,9bbe1a5,dd99ab0,8f397ed,d7ae6b6,8cf1203,87654c5,f05ae0b,436f5eb,d8ff960,8766475,b64f406,4697aaa,cec6c2d,9956f0e,5c7eed0,183c2ea,1e92dbd,4eb0fa7,534b8b9,a4bb2aa,5664c94,b76a1cf,b76a1cf,acc1e53,4950a91,c020987,abe95d1,027ceb9,3d203b7,a29b8f4,ce4aa65,a8ea807,a3ebb7f,473bd81,53843f6,c5eca65,d6f9eba,8d1e97a,b28ab48,9960708,8ac53b6,84ad49a,72cfa24,95c2581,d5c7cd2,fe4fed1,d150a64,05b1e80,414dc90,3f51acd,d68ff05,f3cf1e6,6525771,4ab4e83,f7f1d78,47b358a,45ffa72,6232650,4b73e1b,284050c,c85fc0b,7999b07,7d455f5,d681c2e,84d2a47,a6ceb98,ed74b18,2245997,d386979,fc9fedf,7750dbe,fc91af6,39b9738,88093b5,d14c463,d473bd3,84864bc,e2ae724,f921ed3,1df933d,829aff9,aa0aba3,a71140f,0276a27,10d2c98,c86c999,975f758,2a3a478,1e6e206,fa6027b,7616f73,fc668b6,d425c8c,ce120f4,248201f,e80d397,f1a941d,73bc3a1,b628bb1,6e3ae7b,e891247,53e6c73,1579d6f,d3c6b73,4a59c6a,145d8e1,f74282c,0a38623,0a08ae0,fa6a56b,615c41e,d0a6c5e,500c60b,163cebd,37cdd69,d60c5d4,07ffd25,9b517ad,604b1c1,ccc2e02,14d810a,a9d1ee3,a31adbe,7245f87,3a0828b,0beaf69,cd83544,6550a07,6f090d4,b505c0d,186dd49,9f37e58,4446451,58be972,1320075,ba53b64,f7490d4,c8ea602,62d82f4,a2c9e7c,97dd022,f984ee8,f1b2910,a29e05a,1aa1d8b,bb99734,222e7ca,797c9e3,b4d5398,c8349ed,8426e5f,26e0085,1a86166,0856631,0af0985,bc582c9,2c63f1e,0d98213,ca6f0dc,d8cc9ed,42fd969,5641ad3,629870d,d592c14,10d2c98,53909a9,78a4269,06c6307,0847c41,5a77084,96f99b3,7bb8781,4907e9b,2a30248,8364ddd,ad67d8c,ec0c087,fa6a56b,a2c1ce6,91e9af0,7bd3f34,ef16581,1693a87,df3fc47,e11be41,2e39e8b,11c5ee7,1742d2f,8efc70e,9642776,6680828,c34edcb,7b2c5bd,1a2ccee,db995df,af0ccdd,addeaea,7704034,e72b12f,310dd9c,1c2afc1,44f44ca,f43b9d6,56e72b3,50ef80e,fc3b718,ee336d8,d12f922,46d8310,59812fd,f9d0dec,4372c79,81485ef,bd393d6,0c95c04]:- effect@4.0.0-rc.113
- @effect/platform-node-shared@4.0.0-rc.113
4.0.0-rc.112
Patch Changes
- Updated dependencies [
20cb4f2,44675cb,b6bf5e1,0b9f780,150e92c,6740db2,d57bba1,be75d5e,be75d5e,be75d5e,02a5146,15272a6,436f10d,058fb15,4d89bb8,480fb15,f77ec19,925b82a,7455246,118124d,a5f78d3,0dd7825,b722eca,811d579,043b587,8583727,d9d2cfc,5c4b7a0]:- effect@4.0.0-rc.112
- @effect/platform-node-shared@4.0.0-rc.112
4.0.0-rc.111
Patch Changes
- #6324
a29eb70Thanks @tim-smart! - Add scoped Redis pub/sub subscriptions that expose received messages through an Effect queue. - Updated dependencies [
0ce3b00,d846331,f93616f,16bf1ef,d568968,bc06292,e03ea90,9b10fc8,770c6d0,7425bcb,563815a,1e83ca1,550a41a,45d79c7,aac8584,7f87022,425457c,008c423,4f6ae04,b6b63e1,92922ee,859c02f,ffc8235,a29eb70,0be2303,b44636f,b19ccc7,ff98f0b,a47cbf1,39b55f8,c6c49c9,bf23ba7]:- effect@4.0.0-rc.111
- @effect/platform-node-shared@4.0.0-rc.111
4.0.0-rc.110
Patch Changes
- Updated dependencies [
6eebd0a,6eebd0a,d10ceb0,d10ceb0,d10ceb0,189b003,189b003,0a127b8,e491deb,f99c508,7e3f07c,a894fe1,d10ceb0,7e9923b,f064121,d10ceb0,b660bf0,f4fbe9c,d10ceb0,e811353,9761c3c,baa99fc,7fd79b2,a82ffc0,d10ceb0,4026e2d,397bf1e,d10ceb0,d10ceb0,3bf8d52]:- effect@4.0.0-rc.110
- @effect/platform-node-shared@4.0.0-rc.110
4.0.0-rc.109
Patch Changes
- Updated dependencies [
a0743f2,17892e7,4d8a230,2ae5a96,f21f9c9,18270dd,26db404,2670398,3702bed,ccae60e,6ff5396]:- effect@4.0.0-rc.109
- @effect/platform-node-shared@4.0.0-rc.109
4.0.0-rc.108
Patch Changes
- Updated dependencies [
dfb173e,005e090,c82c532,22b579f,3e19539,08a3c74,eb0bae0,97b544d,4f6d131,fad4b7c,accf447,31b27e4,8458951]:- effect@4.0.0-rc.108
- @effect/platform-node-shared@4.0.0-rc.108
4.0.0-beta.107
Patch Changes
- Updated dependencies [
596f3f9,9611ed4,8b91605,d901928,b32bdef,e74c302]:- effect@4.0.0-beta.107
- @effect/platform-node-shared@4.0.0-beta.107
4.0.0-beta.106
Patch Changes
- #7123
4bca71dThanks @fubhy! - HonoroffsetandbytesToReadwhen creating Deno Web file responses. - Updated dependencies [
2695168,6310a8c,c2071b1,7aff81a,a1d4057,abf77b0,6c60375,22f4897,615d1d5,3a86757,f4a9762,0bcf6ed,5f1775c,ba9cb63,42c810d,1416ccd,089313e,08d0d39,548908a,4b3460d,d170596,aea89d0,deed5fb]:- effect@4.0.0-beta.106
- @effect/platform-node-shared@4.0.0-beta.106
4.0.0-beta.105
Patch Changes
-
#7086
c91f401Thanks @tim-smart! - Preserve high-level filesystem error context forwriteFileand normalize DenoAlreadyExistserrors fromcopy. -
#7090
b206fa5Thanks @tim-smart! - ExposestdinIsTerminalandstdoutIsTerminaleffects through theStdioservice. -
Updated dependencies [
0418564,d334a85,f0be855,b206fa5,b938c8a,8525f05]:- effect@4.0.0-beta.105
- @effect/platform-node-shared@4.0.0-beta.105
4.0.0-beta.104
Minor Changes
Patch Changes
- #7080
c2c966dThanks @tim-smart! - HonorFileSystem.writeFileopen flags in the Deno implementation. - Updated dependencies [
1001bcc,993ba60,67faacd,b78acdf,fbb9ce5,722ea48,3058fd5,62d0575,99dd6b5,7963ce1,af14e75,24e22d2,647d14e,1434eec,a5278b1,6af04a5,cb6c837,d44cead,88c7632,abcbb2a,8f63cce,d56dfcf,a98cda9,6704bb8,6143de2,936b135,1bbae84,d795ee7,0a82d88,9215bc5,a1b5df2,92a9ac5,6bde7f2,a712131,2e6f760,aa05804,badd3bf,02b0265,3437e21,41a550d,17b5d50,96e5e95,e4d589e,ae4cf7b,6ef5f1a,e2ec131,2235a29,b32f4cb,7f4c095,5f3fb81,17f0b91,0cdadd7,39b57d7,5a6a573,59f5e99,45379d6,1949439,e443403,03af7e8,0f721d4,130b28d,c987a12,4158562,306014a,729a663,caf84b6,ce067f7,7a41f5a,781022a,39f1297,2db266b,2141e28,3c5e429,20ddc63,841b3ea,82a3fbf,eb9ee83,64dc7c7,84dc8ab,e508589,b4463f4,592dd36,85d2b44,32e4a69,13c5872,3454cdb,e930804,7f12d4b,181c9ef,dd9f891,433fb81,8459cdb,6124ab3,01bd954,ba2c3aa,0a45ef3,8459cdb,eaa7e71,db4c2cc,22f150a,90ffb08,d517692,01af079,32a59e8]:- effect@4.0.0-beta.104
- @effect/platform-node-shared@4.0.0-beta.104
4.0.0-beta.103
Patch Changes
-
#6682
cd98622Thanks @tim-smart! - Add a Deno-backed FileSystem layer. -
#6685
45e7810Thanks @tim-smart! - AddDenoHttpClient, re-exportingeffect/unstable/http/FetchHttpClientDeno’s
fetchis spec-compliant, so the core fetch-basedHttpClientworks on Deno unmodified. This module mirrorsBunHttpClientso the platform packages expose a consistent surface. -
#6725
d435467Thanks @tim-smart! - Add web-standard multipart request parsing helpers for Deno. -
#6724
7870557Thanks @tim-smart! - Add native Deno TCP, Unix, and TLS socket server adapters. -
#6721
35141f1Thanks @tim-smart! - Add native Deno TCP, Unix, and WebSocket integrations for Effect sockets. -
#6412
ec656dcThanks @lishaduck! - Add Deno platform integrations for paths, runtime execution, workers, and Web Storage. -
#6723
081f4d8Thanks @tim-smart! - add platform literal to HttpPlatform -
#6802
f1bc827Thanks @tim-smart! - Allow configuring cluster RPC serialization buffer limits. -
#6684
dbd6ea4Thanks @tim-smart! - Add a Deno Web Crypto implementation of theCryptoservice. -
#6688
504343bThanks @tim-smart! - Add a native DenoChildProcessSpawnerimplementation and shared process conformance coverage. -
#6715
75f340eThanks @tim-smart! - Add a DenoTerminalimplementation and keepNodeTerminalinput readers alive until stdin ends under Deno. -
#6700
d51329bThanks @tim-smart! - Add a native Deno implementation of theStdioservice. -
#6716
897b35cThanks @tim-smart! - Add the aggregate Deno platform services layer. -
#6720
87ca79eThanks @tim-smart! - Add a native DenoHttpPlatformlayer with resource-backed file responses. -
#6686
a149f89Thanks @tim-smart! - Add a native Deno Redis integration backed by@db/redis. -
#6730
6086309Thanks @tim-smart! - Add a native Deno HTTP server with multipart requests, file responses, and WebSocket upgrades. -
#6731
a3fabe2Thanks @tim-smart! - Add native Deno HTTP and WebSocket layers for Effect Cluster runners. -
#6728
e0426daThanks @tim-smart! - Add native Deno socket layers for Effect Cluster runners. -
#6898
c0a1534Thanks @tim-smart! - Add HTTP response compression support. Node.js, Bun, and Deno use asynchronousnode:zlibone-shot compression for byte-array bodies, preserving an exactContent-Length; stream and raw bodies remain streaming transforms. -
#6828
48f22a7Thanks @tim-smart! - Use layered storage for Context, makingContext.addO(1) and eliminating per-request service map clones in the HTTP servers. Docgen now omits@internaloption properties from generated signatures. -
#6701
9867b9fThanks @fubhy! - Removed explicit ./index entrypoints -
#6705
7bde6ccThanks @tylergibbs1! - Restore therecursiveoption forFileSystem.watch, with non-recursive watching as the default. -
Updated dependencies [
e56cd8f,f77c120,b2f95a9,04fd44a,b74333d,1c40b28,aeba0c8,b3901d2,4a0984a,fffd88b,f3f6c1e,ef07642,f1bc827,aeba0c8,081f4d8,5287b24,13d31cf,acee269,31170c1,205ebc7,ed0ebf8,a3fd084,ee29ddf,6086309,4a57af2,660875b,8e7c706,5f63adb,053bc42,c0a1534,f1e3a37,cedb01a,1747440,aeba0c8,aeba0c8,b4f1ee2,a4757f1,cd122b9,5de588b,3895b9c,89ce5f3,985de09,9800e3a,4dc35f6,e8eb62b,ecd9993,5ab9c08,f5cf965,a94cbed,9160ad7,aeba0c8,aeba0c8,52494be,5441c8e,c9b56ab,8ef7257,1519406,9716990,733f75b,48155c8,951d06b,d767b65,5d52d9d,f4151e1,e02fbb6,724ce09,dbe91f6,4c008d2,b650832,b46c92f,5335797,4b3460d,6301fd7,aebc5c6,52b2d7b,eec5744,24e0e93,aeba0c8,aeba0c8,aeba0c8,1a7ce81,48f22a7,c96b7f6,6d2a942,cc27b19,8f9499f,3eeea73,0a532e5,f398149,aeba0c8,ace903e,e8eb62b,aeba0c8,48f22a7,d48506d,aeba0c8,d48506d,d48506d,52262be,1284aa1,9867b9f,d0f1a22,979ce39,b6d3e67,adf6c6c,7314d60,aeba0c8,1acbd8b,7bde6cc,a959a8b]:- effect@4.0.0-beta.103
- @effect/platform-node-shared@4.0.0-beta.103