6 hours ago
valkey

9.2.0-rc1

Valkey 9.2.0-rc1 - Released Wed 16 September 2026

Upgrade urgency LOW: This is the first release candidate of Valkey 9.2.0.

Behavior Changes

  • Active expiration of keys and hash fields now increments the dirty counter, so save points (and thus BGSAVE) may trigger more often by @enjoy-binbin (#3118)

New Features and Enhanced Behavior

  • Add ACL DIGEST command that returns a fingerprint of the ACL rules currently in effect, useful to verify what ACL LOAD applied by @melancholictheory (#4446)
  • Add forkless RDB snapshots, opt-in via the new forkless-infrastructure-enabled and bgsave-default-method configs, with new INFO persistence fields reporting the save method and progress by @JimB123 (#4460)
  • Add the XACKDEL and XDELEX stream commands with KEEPREF, DELREF and ACKED modes to acknowledge and delete messages once consumer groups no longer need them by @nickiaq (#4629)
  • Support a secondary server certificate via tls-alt-cert-file, tls-alt-key-file and tls-alt-key-file-pass, e.g. a post-quantum certificate alongside RSA, with matching INFO TLS fields by @pkhartsk (#3717)
  • Add ACL roles: named, reusable sets of ACL selectors managed with ACL SETROLE/DELROLE/GETROLE/ROLES and assigned to users with role:<name>, in commands, the ACL file and valkey.conf by @yang-z-o (#3967)
  • Add a maxmemory-scripts config to limit memory used by cached EVAL scripts, and mark SCRIPT LOAD as DENYOOM so it respects the global maxmemory limit by @enjoy-binbin (#866)
  • Add Path Hash, a new radix-tree-backed data type with PH* commands for exact lookup, longest-prefix matching, and prefix traversal over binary-safe paths by @yangbodong22011 (#4506)
  • Support whole-stream LZ4 compression of RDB files via the new rdbcompression lz4 option; the default per-string LZF behavior is unchanged by @sarthakaggarwal97 (#3531)
  • Add server-side hot key detection with new HOTKEYS GET/RESET commands, enabled by setting hotkeys-top-k by @alon-arenberg (#3708)
  • Add optional replication throttling (repl-throttling-enabled) that slows client writes when a replica falls behind, avoiding disconnects and full syncs by @harrylin98 (#4356)
  • Prioritize system-critical events (cluster heartbeats, replication, slot migration) over heavy client traffic, tunable via the new priority-preemptive-poll-interval-us config by @satheeshaGowda (#4076)
  • Reserve connection slots for administrative clients: connections from the CIDR ranges listed in the new priority-subnets config are tagged as prioritized, maxclients-reserved caps normal clients at maxclients minus that many slots, and INFO clients reports connected_priority_clients by @satheeshaGowda (#4005)
  • Add INCREX command to atomically increment a key by an integer or float while setting its expiration, with NX/XX conditions by @GavinDmello (#3253)

Performance and Efficiency Improvements

  • Speed up radix tree lookups and inserts by using SIMD-optimized memchr() for child-edge search by @charsyam (#3472)
  • Improve replica processing speed by parsing multiple commands from the replication stream at once by @enjoy-binbin (#3597)
  • Reduce memory usage by sharing pubsub pattern and WATCH key objects across clients subscribing to or watching the same name by @enjoy-binbin (#4072)
  • Large sorted sets are now backed by a B+ tree instead of a skiplist; OBJECT ENCODING reports btree instead of skiplist by @ranshid (#4359)
  • Save the cluster config file from a background thread when cluster-config-save-behavior is best-effort, avoiding main-thread latency spikes from slow disk I/O by @enjoy-binbin (#2555)
  • Speed up HMGET, SMISMEMBER and ZMSCORE on large hashtable-encoded keys with batched lookups that overlap memory accesses by @chzhoo (#4017)
  • Extend memory prefetching to hash, set and sorted set member lookups when io-threads are enabled, improving performance for 30 field/member commands on large keys by @roshkhatri (#3940)
  • MEMORY PURGE now also releases free pages from the glibc main arena back to the OS, reclaiming memory held by libc-internal allocations by @webbsssss (#3640)
  • Speed up command propagation to replicas by batching each command's RESP frame into a single replication buffer write by @hpatro (#4044)
  • Reduce lseek system calls during disk-based replication by seeking only when a write blocks or is partial by @enjoy-binbin (#4053)
  • Reduce event-loop overhead by refreshing cached daylight-saving info once per second instead of on every wakeup by @hpatro (#4086)
  • Speed up keyspace event notifications by skipping work when there are no subscribers and avoiding unnecessary allocations by @enjoy-binbin (#4285)
  • Speed up exact XTRIM MAXLEN = 0 by about 2.5x by clearing the whole stream in one step instead of removing entries individually by @sarthakaggarwal97 (#4161)
  • Cluster bus reads, writes, and inbound TLS accepts can now run on the shared I/O thread pool, with new CLUSTER INFO offload statistics by @hpatro (#3438)
  • Small hashes with field expiration now use the memory-efficient listpack encoding instead of always converting to a hashtable by @frostzt (#3212)
  • Reduce per-command overhead by skipping post-command bookkeeping when no propagation, module, or invalidation work is pending by @ahmetalicc (#4257)

Bug Fixes

  • MODULE LOAD is now rejected during async replication loading and atomic slot migration to avoid unexpected module behavior by @KIvanow (#3039)
  • Reject CLUSTER ADDSLOTS/DELSLOTS/ADDSLOTSRANGE/DELSLOTSRANGE/FLUSHSLOTS on replicas, preventing an assertion failure on a later CLUSTER REPLICATE by @enjoy-binbin (#4020)
  • Fix a crash when processing a heartbeat from a cluster node whose role is locally unknown, such as after loading an incomplete nodes.conf by @enjoy-binbin (#4091)
  • Fix wrong results or debug-build assertions in cluster mode when the server inspects keys outside the executing command's slot, such as WATCHed keys checked during EXEC by @nitaicaro (#4380)
  • Fix stream commands that mutate consumer-group or PEL state (XGROUP, XSETID, XREADGROUP, XACK, XCLAIM, XAUTOCLAIM) not triggering WATCH and client-side tracking invalidation by @Tarte12 (#3459)
  • Fix a server crash on FUNCTION DELETE or FUNCTION LOAD REPLACE after loading a library with function names differing only in case by @madolson (#3925)
  • Client-side tracking no longer records routing-only tokens such as the CLUSTERSCAN cursor as tracked keys by @nmvk (#3699)
  • Reject malformed slot entries in the cluster config file as a corrupt config instead of asserting or invoking undefined behavior by @enjoy-binbin (#4100)
  • Fix a TLS busy loop that consumed 100% CPU when a connection's read or write handler was removed while OpenSSL was waiting for the opposite event by @yairgott (#3510)
  • Client eviction no longer disconnects extra clients when a large client's close is deferred but its memory is already scheduled to be freed by @dhruv2x (#4152)
  • Fix a crash caused by a NULL pointer dereference when all timer events in an event loop are pending deletion by @royenheart (#4351)
  • Rework iteration over clients blocked on ready keys to simplify and harden an earlier use-after-free fix by @enjoy-binbin (#4472)
  • Fix a race in RDB string compression that could produce corrupt, unloadable RDB files when compression runs concurrently, without increasing copy-on-write by @dubey02 (#4539)
  • Fix dropped field TTLs and a possible crash when loading a hash with field expiration converts it to a hashtable mid-load (e.g. via RESTORE) by @madolson (#4669)
  • Reject a repeated CLUSTER SYNCSLOTS ESTABLISH on the same connection, which could lead to a use-after-free crash on disconnect by @Pyolar (#4670)
  • Fix wrong ZCOUNT results and incorrect ZREMRANGEBYSCORE deletions when members sharing a boundary score span multiple btree leaves by @rainsupreme (#4554)
  • Fix SORT key extraction so a STORE destination named like an option can no longer bypass ACL checks and write to an unauthorized key by @madolson (#4665)

Command and API Updates

  • MOVE accepts a new optional REPLACE argument to overwrite an existing key in the destination database by @bandalgomsu (#2993)
  • WAIT and WAITAOF now reject numreplicas values that are negative or exceed INT_MAX, fixing an integer overflow that broke blocking by @enjoy-binbin (#3407)
  • Add CONFIG INFO subcommand returning config metadata such as type, flags, valid enum values and numeric ranges by @nitaicaro (#3050)
  • Add the IFNE option to SET to set a key only when its current value differs from the given comparison value by @arshidkv12 (#3105)
  • Add IFEQ, IFNE, NX and XX conditions to EXEC, enabling optimistic locking for multi-key transactions without WATCH by @bandalgomsu (#4019)
  • Add an optional XX flag to SISMEMBER that returns -1 when the key does not exist, distinguishing a missing key from a missing member by @li-benson (#2972)
  • Handle NOT_KEY key-specs more defensively so COMMAND GETKEYS and ACL key checks consistently treat routing-only tokens as non-keys by @enjoy-binbin (#3675)
  • Fix DEBUG HELP to show the correct DELAY-RDB-CLIENT-FREE-SECONDS name and document the SET-DISABLE-DENY-SCRIPTS subcommand by @xiejing-dev (#4099)
  • Add XX option to the ZRANGE family of commands to distinguish a non-existent key (nil) from an empty result by @youngmore1024 (#2978)
  • Fix the reply schemas of the ZRANGE family of commands to allow the null reply returned with the XX option by @murphyjacob4 (#4275)
  • Fix the XPENDING reply schema to describe the summary reply returned when a consumer group has no pending messages by @sarthakaggarwal97 (#4653)

Cluster and Replication

  • Cluster replicas now redirect keyless commands like SCAN and FLUSHDB to the primary for clients with CAPA REDIRECT that have not sent READONLY by @yanamolo (#3505)
  • Changing cluster-require-full-coverage via CONFIG SET now updates the cluster state immediately instead of waiting for the next cron cycle by @enjoy-binbin (#3676)
  • Fix CLUSTER BUMPEPOCH getting stuck when a dead node holds an equal or abnormally high config epoch; a single bump now overtakes it by @enjoy-binbin (#4092)
  • Replicas now retry PSYNC when the primary replies -BUSY instead of downgrading to legacy SYNC, which broke WAIT, PSYNC and FAILOVER by @enjoy-binbin (#4140)
  • SYNC/PSYNC from a replica with a down primary link now consistently returns -NOMASTERLINK, avoiding an unnecessary full sync fallback by @enjoy-binbin (#4148)
  • Add cluster-replica-priority config so operators can rank which replicas are preferred during automatic cluster failover by @enjoy-binbin (#2204)
  • Speed up recovery from split-vote failover elections with a new FAILOVER_AUTH_NACK message that lets a replica detect an unwinnable election and immediately retry with a higher epoch by @enjoy-binbin (#3833)
  • Add optional per-target AUTH username password to CLUSTER MIGRATESLOTS, with credentials redacted from the slow log and MONITOR by @nemtsv (#3538)
  • Compress the full-sync RDB payload with LZ4 when rdbcompression lz4 is set and every attaching replica advertises support, reducing sync bandwidth with safe fallback to plaintext by @roshkhatri (#4075)
  • Add an if-empty value to cluster-replica-no-failover so a replica that has never received data from its primary refuses automatic failover, preventing silent data loss by @enjoy-binbin (#4425)
  • Add optional LZ4 streaming compression for steady-state replication via the new repl-compression config, negotiated per replica so older or opted-out replicas keep receiving plaintext by @roshkhatri (#3853)
  • Fix CLUSTERSCAN fingerprints to derive from the hash-seed config so cursors survive failover between nodes sharing a seed by @enjoy-binbin (#3679)
  • Replicas trigger a failover check immediately when cluster-replica-no-failover is disabled at runtime, instead of waiting for the next cron tick by @enjoy-binbin (#3827)
  • Validate node IDs and shard IDs received in cluster messages before applying them, dropping the link on invalid data to protect cluster state by @enjoy-binbin (#4065)
  • Drop the cluster link when a gossip section contains invalid node IDs, instead of keeping the connection to a corrupted sender alive by @enjoy-binbin (#4077)
  • Persist nodes.conf promptly when a node's address is updated through the gossip section by @enjoy-binbin (#4089)
  • Reject malformed node IDs in the open-slots RDB aux field instead of creating an illegal cluster node by @enjoy-binbin (#4098)
  • Strip the redundant LIMIT option when rewriting XADD/XTRIM for propagation, so the rewritten command is valid for tools that replay it by @cjx-zar (#4063)
  • Persist non-default cluster-replica-priority to nodes.conf so it survives restarts instead of waiting for the next gossip round by @enjoy-binbin (#4454)
  • Clear a stale primary-failure gossip flag on replicas so later failovers don't incorrectly skip the election delay by @charsyam (#4533)
  • Fix a node staying stuck in PFAIL when its PING is lost while the peer's own traffic keeps the cluster link alive by @enjoy-binbin (#4171)
  • CLUSTER SYNCSLOTS FINISH now rejects clients outside the slot migration stream, preventing misuse of the import state machine by @enjoy-binbin (#4330)

Configuration

  • commandlog-request-larger-than and commandlog-reply-larger-than now accept memory units such as 10mb by @enjoy-binbin (#2648)
  • cluster-announce-ip now must be a valid IP address or hostname, rejecting values like ip:port that broke cluster bus addressing by @AlisinaDevelo (#4055)
  • Reject an empty tls-ca-cert-dir at startup and CONFIG SET time instead of silently accepting it and failing every client handshake later by @yang-z-o (#3522)
  • Document the database-level ACL rules (db=, alldbs, resetdbs) in valkey.conf and clarify the reset rule description by @enjoy-binbin (#3808)
  • CONFIG REWRITE now preserves module load order, so modules with dependencies load correctly after a restart by @Taeknology (#3769)
  • Document in valkey.conf that unixsocketgroup requires the chown syscall to be allowed under syscall-filtering sandboxes by @moko-poi (#3730)

Module API Changes

  • Add ValkeyModule_ScanKeyRawBorrowed to scan hash, set and sorted set keys without allocating a string per element by @KarthikSubbarao (#4403)
  • Fix loading of legacy Redis modules that export RedisModule_OnLoad via a linker version script by @roshkhatri (#3374)
  • Module global defrag callbacks now receive a time limit and a resumable cursor, making ValkeyModule_RegisterDefragFunc usable for large module data by @Aksha1812 (#4487)
  • Add ValkeyModule_IncrExternalMemory/DecrExternalMemory so modules can report memory allocated outside the server allocator toward used_memory and maxmemory by @bandalgomsu (#4128)
  • Correct ValkeyModule_FreeModuleUser, ValkeyModule_ACLAddLogEntry and ValkeyModule_ACLAddLogEntryByUserName declarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676)

Observability and Logging

  • Client memory usage now includes watched key and pubsub channel/pattern names, making it visible in CLIENT INFO tot-mem and counted for maxmemory-clients by @enjoy-binbin (#3362)
  • CONFIG RESETSTAT now also resets the IO-thread prefetch and ACL access-denied statistics by @enjoy-binbin (#2891)
  • Latency report now recommends 'madvise' for disabling Transparent Huge Pages, consistent with the startup check by @enjoy-binbin (#3947)
  • Log when a cluster primary ignores an MFSTART manual failover message from an unknown node or a non-replica, helping diagnose failover timeouts by @enjoy-binbin (#4058)
  • Log a warning when a TLS certificate has an invalid notBefore or notAfter field on OpenSSL 4.0 builds by @pkhartsk (#4064)
  • Gossip corruption warnings now log the actual entry with the invalid node ID instead of the first gossip entry by @enjoy-binbin (#4101)
  • Produce crash stack traces on musl-based systems like Alpine Linux via a libbacktrace fallback by @hanxizh9910 (#3581)
  • Always log the "possibly failing" notice when a node enters PFAIL, including on voting primaries by @enjoy-binbin (#4186)
  • EXEC transactions are now recorded in the slowlog and commandlog when their total execution time crosses the threshold by @michellee-10 (#4267)
  • Add last_successful_sync_duration_ms to INFO replication, reporting how long the replica's last full sync took by @satheeshaGowda (#4197)
  • Fix signal mask parsing on 32-bit systems so the crash handler can collect thread stack traces by @sarthakaggarwal97 (#4415)
  • Add total_cluster_links_established_inbound/outbound counters to CLUSTER INFO to help detect cluster link flapping by @enjoy-binbin (#4169)
  • RDMA connection and resource setup failures are now logged with detailed system error information by @quanyeyang (#4586)
  • Include the LRU list's duplicated script SHA copies in EVAL script memory reporting (used_memory_scripts_eval) by @enjoy-binbin (#4587)
  • Log the module version alongside the module name when a module is loaded, so the loaded version is visible in the log by @enjoy-binbin (#4566)
  • Detect changes to the alternate TLS key file (tls-alt-key-file) so certificate auto-reload picks them up by @pkhartsk (#4663)
  • Report tls_server_cert_serial and expiry INFO fields for the certificate actually loaded from tls-cert-file instead of whichever one OpenSSL slots first by @madolson (#4664)

CLI and Tools

  • valkey-cli reads the VALKEYCLI_HOST and VALKEYCLI_PORT environment variables to set the default host and port by @Dietr1ch (#3402)
  • valkey-benchmark can load CSV/TSV datasets and inject their fields into commands via __field:name__ placeholders by @VoletiRam (#2823)
  • valkey-cli supports the VALKEYCLI_USER environment variable as an alternative to the --user option by @jdheyburn (#4126)
  • valkey-cli --rdb now exits with an error instead of reporting success when trimming the RDB EOF marker fails, avoiding a silently corrupt file by @gluxier (#3945)
  • Fix valkey-benchmark crash (out-of-bounds read) when a repeat count is given with no command following it by @lightsigma96 (#4142)
  • valkey-benchmark -r now accepts keyspace sizes above INT_MAX (up to 999,999,999,999) with proper input validation by @michellee-10 (#4252)
  • valkey-benchmark now rejects a repeat count with no command after it with a clear error instead of hanging forever sending zero requests by @dhruv2x (#4215)
  • valkey-benchmark multi-threaded mode scales further by removing cross-thread contention in key generation, latency recording, and counters by @rainsupreme (#4332)

Build and Tooling

  • Add REUSE-compliant machine-readable licensing with per-file license clarity, enabling SPDX SBOM generation and correct license detection by @zuiderkwast (#3968)
  • Fix clean or highly parallel builds failing with a missing release.h for valkey-cli, valkey-benchmark, and unit tests by @poiuj (#3683)
  • Use PRIVATE link dependencies in CMake so Valkey's CMake files can be safely integrated into other projects by @eifrah-aws (#3658)
  • Pass CPPFLAGS to bundled dependencies and the src Makefile so packaging hardening flags apply to the whole build by @Vonng (#4318)
  • Raise the minimum required CMake version to 3.24 to match features already used by the build by @Baraa-Hasheesh (#4232)

Contributors

  • Abhishek Kumar @dubey02
  • abmathur-ie @abmathur-ie
  • Aditya Teltia @AdityaTeltia
  • Ahmad Belbeisi @ahmadbelb
  • Ahmet Alıç @ahmetalicc
  • Akash Kumar @akashkgit
  • AkshaThakkar1812 @Aksha1812
  • Alina Liu @asagege
  • Alisina Karimi @AlisinaDevelo
  • Alon Arenberg @alon-arenberg
  • Amariah Abishai @AmariahAK
  • Arshid @arshidkv12
  • Avi Fenesh @avifenesh
  • bandalgomsu @bandalgomsu
  • Bara' Hasheesh @Baraa-Hasheesh
  • Benson-li @li-benson
  • Binbin @enjoy-binbin
  • Björn Svensson @bjosv
  • bodong.ybd @yangbodong22011
  • Bonnie Chan @BChan-0
  • Brad Bebee @beebs-systap
  • charsyam @charsyam
  • chenshi @chenshi5012
  • chzhoo @chzhoo
  • cjx-zar @cjx-zar
  • Daejun Kim @djk1027
  • Daniil Kashapov @dvkashapov
  • Deepak Nandihalli @deepakrn
  • dgershko @dgershko
  • Dhruv Chauhan (chdh) @dhruv2x
  • Dietrich Daroch @Dietr1ch
  • Dragos Andriciuc @Andriciuc
  • eifrah-aws @eifrah-aws
  • FAN PEI @fanpei91
  • Feng Ruohang @Vonng
  • Gavin D'Mello @GavinDmello
  • gluxier @gluxier
  • Hanxi Zhang @hanxizh9910
  • Harkrishn Patro @hpatro
  • Harry Lin @harrylin98
  • hieu2102 @hieu2102
  • Jacob Murphy @murphyjacob4
  • Jeff Duffy @jaduffy
  • Jim Brunner @JimB123
  • jjuleslasarte @jjuleslasarte
  • Joe Heyburn @jdheyburn
  • Joseph Heck @heckj
  • Josh Soref @jsoref
  • Jun Yeong Kim @junyeong0619
  • justinfung @justinfung
  • jzy1688 @jzy1688
  • KarthikSubbarao @KarthikSubbarao
  • KimHuiSu @Tarte12
  • Kristiyan Ivanov @KIvanow
  • lcxn123 @lcxn123
  • lovelypiska @chx9
  • Lucas Yang @lucasyonge
  • Luke Palmer @lukepalmer
  • Madelyn Olson @madolson
  • martinrvisser @martinrvisser
  • Md Aakib Alam Ansari @0xAakibAlam
  • michellee-10 @michellee-10
  • nanyan @nanyan0312
  • Nick Iaquinto @nickiaq
  • Nikhil Manglore @Nikhil-Manglore
  • nitaicaro @nitaicaro
  • Ping Xie @PingXie
  • pkhartsk @pkhartsk
  • Quanye Yang @quanyeyang
  • Raghav Muddur @nmvk
  • Rain Valentine @rainsupreme
  • Ran Shidlansik @ranshid
  • Recoordinate @latent-9
  • Ricardo Dias @rjd15372
  • Rick Ramsay @rickrams
  • Roshan Khatri @roshkhatri
  • Sakshi Yadav @ydsakshi
  • sananes @yaronsananes
  • Sarthak Aggarwal @sarthakaggarwal97
  • Satheesha CH Gowda @satheeshaGowda
  • Saurabh K @smkher
  • secwall @secwall
  • Shun Takahashi @moko-poi
  • Smail KOURTA @skourta
  • Sourav Singh Rawat @frostzt
  • Stav Ben Shahar @stavBenShahar
  • Stefan Wang @1fanwang
  • sunliqiang @Pyolar
  • sushil paneru @sushilpaneru1
  • Taeknology @Taeknology
  • Tjaden Hess @tjade273
  • tomhanks @xiejing-dev
  • Tristan Su @foobar
  • Vadym Khoptynets @poiuj
  • Vaibhav Gupta @webbsssss
  • Vasiliy Koshkin @melancholictheory
  • Vasily Nemtsov @nemtsv
  • Viktor Söderqvist @zuiderkwast
  • VoletiRam @VoletiRam
  • Yair Gottdenker @yairgott
  • Yana Molodetsky @yanamolo
  • Yang Zhao @yang-z-o
  • Yash Jadhav @lightsigma96
  • youngmore1024 @youngmore1024
  • yulazariy @yulazariy
  • zackcam @zackcam
  • zhenwei pi @pizhenwei
  • Zhijun Liao @zhijun42
  • 皇心 @royenheart
8 hours ago
rustfs

RustFS 1.0.1-preview.1 (preview)

What's Changed

Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0...1.0.1-preview.1

10 hours ago
node

2026-09-16, Version 26.9.0 (Current), @aduh95

Notable Changes

  • [d414624dce] - (SEMVER-MINOR) crypto: add a generic MAC API (Filip Skokan) #65553
  • [7ac458f802] - (SEMVER-MINOR) crypto: discover ciphers from OpenSSL providers (Filip Skokan) #65484
  • [7c7e95a3bd] - (SEMVER-MINOR) crypto: discover hashes from OpenSSL providers (Filip Skokan) #65484
  • [2d2f4f6d1a] - (SEMVER-MINOR) ffi: enable module by default (Matteo Collina) #65475
  • [657415c6df] - (SEMVER-MINOR) lib: implement node:bench (James M Snell) #65606
  • [ebcfec2f0c] - (SEMVER-MINOR) perf_hooks: implement Histogram meanCI API (James M Snell) #65606
  • [e1913630c3] - (SEMVER-MINOR) perf_hooks: add CBOR export/import for histogram exchange (James M Snell) #65434
  • [8e9151c9f2] - (SEMVER-MINOR) src: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) #65352
  • [889854f18b] - (SEMVER-MINOR) src,lib: implement experimental DTLS API (James M Snell) #63182
  • [5198142c59] - (SEMVER-MINOR) vfs: integrate with CJS and ESM module loaders (Matteo Collina) #63653
  • [5af9d72e7f] - (SEMVER-MINOR) worker: add support for Web Workers (Aviv Keller) #64894

Commits

  • [59dcad3f44] - (SEMVER-MINOR) benchmark: implement node:bench version of bench tools (James M Snell) #65606
  • [6bdb6dd8fa] - benchmark: fix max-regressions detection in compare.js (James M Snell) #65587
  • [49d40091ba] - benchmark: add --analyze option to benchmark/scatter.js (James M Snell) #65594
  • [bd40a9a19a] - benchmark: add crypto class benchmarks (Filip Skokan) #65518
  • [6bff2238f5] - buffer: pad aligned allocations by a multiple of 8 (Lazizbek Ergashev) #65605
  • [37d12946dd] - buffer: prevent abort on indexOf with lone surrogate needle (Rafael Gonzaga) #65430
  • [02f8eb3b2d] - build: add --shared-perfetto flag (Antoine du Hamel) #65614
  • [fe7032ec41] - build: enable V8 gdb/lldb plugin support (Chengzhong Wu) #65786
  • [109f2caf80] - build: allow linking shared dependencies in the GN build (Shelley Vohr) #65797
  • [55213fd8a8] - build: enable the V8 sandbox in shared-cage builds (Shelley Vohr) #62237
  • [120929a1b3] - build: add --shared-highway configure flag (Antoine du Hamel) #65686
  • [c99af0942b] - build: add --shared-abseil configure flag (Antoine du Hamel) #65682
  • [431c2bf0eb] - build: define V8_CONTIGUOUS_COMPRESSED_RO_SPACE for shared cage (Shelley Vohr) #65464
  • [b6b5764c6e] - build: remove obsolete configure flags (Chengzhong Wu) #65456
  • [a623ee29d9] - build,src: make --use-largepages a no-op (Joyee Cheung) #65389
  • [2f494cb7aa] - crypto: fix multi-prime RSA JWKs (Filip Skokan) #65649
  • [501d8ac815] - crypto: cache valid ECDH key pairs (Filip Skokan) #65615
  • [3fd905ea8f] - crypto: add strict mode to --force-fips (Filip Skokan) #65645
  • [54b3cdb805] - crypto: add FIPS indicator diagnostics channel (Filip Skokan) #65645
  • [3e6e931fc9] - crypto: fix public PKCS8 export error (한국) #65609
  • [d414624dce] - (SEMVER-MINOR) crypto: add a generic MAC API (Filip Skokan) #65553
  • [eef579047c] - crypto: validate JWK usages before key_ops (Filip Skokan) #65550
  • [9a9b137a24] - crypto: fix private SPKI export error (Filip Skokan) #65550
  • [9941fb5dab] - crypto: fix RSA-PSS oversized salt handling (Filip Skokan) #65550
  • [09b431596a] - crypto: correct CCM decryption FIPS error message (kyungrae) #65450
  • [e6b34e6f7a] - crypto: harden X509Certificate state (Filip Skokan) #65518
  • [a884b6ccbc] - crypto: optimize key slot caching (Filip Skokan) #65518
  • [fb512086d3] - crypto: add null checks for OPENSSL_INIT_new() (Nora Dossche) #63457
  • [656504ffc0] - crypto: prevent Hmac.digest() from returning uninitialized memory (Matteo Collina) #65112
  • [15e7884732] - crypto: avoid throwing CryptoKey brand checks (Filip Skokan) #65503
  • [3302bec74a] - crypto: avoid throwing KeyObject brand checks (Filip Skokan) #65503
  • [7ac458f802] - (SEMVER-MINOR) crypto: discover ciphers from OpenSSL providers (Filip Skokan) #65484
  • [7c7e95a3bd] - (SEMVER-MINOR) crypto: discover hashes from OpenSSL providers (Filip Skokan) #65484
  • [0539e90110] - deps: update googletest to 283c17563fe7a1111cd7f581aa5d541e8baeff2f (Node.js GitHub Bot) #65833
  • [e34af820da] - deps: update simdjson to 4.6.11 (Node.js GitHub Bot) #65834
  • [5fb7ffebc2] - deps: update zlib to 1.3.2.1-motley-285e94b (Node.js GitHub Bot) #65835
  • [05cdf1db62] - deps: V8: backport 1a0089053443 (Jakob Linke) #65764
  • [8910f7914a] - deps: V8: backport c9c0abfa51f0 (Jakob Linke) #65764
  • [e7fd388424] - deps: V8: backport ebd15783b7ba (Marja Hölttä) #65764
  • [82715158b8] - deps: V8: backport f3d4d458fe59 (Olivier Flückiger) #65702
  • [7003159885] - diagnostics_channel: lazily create tracing context (Romain Lanz) #65513
  • [a97def782f] - doc: clarify node:bench significance policy (James M Snell) #65631
  • [c74091647d] - doc: clarify isolation modes for node:bench (James M Snell) #65631
  • [3ef81a676c] - doc: clarify measurement integrity details of node:bench (James M Snell) #65631
  • [6b565d7b2c] - doc: clarify security triage dispositions and permission boundaries (Rafael Gonzaga) #65436
  • [724981287c] - (SEMVER-MINOR) doc: move histogram.burnRate to correct location in doc (James M Snell) #65434
  • [f8b627c09b] - doc: fix default limit of maxHeadersCount (Aryn H) #65472
  • [aa3d94fc1d] - doc: fix return types for sync methods (Chiang Fong Lee) #58575
  • [fe9f452ddd] - doc: document REPL DEP0185 throws and uncaught-exception behavior (Adrián Estrada) #64993
  • [6b84ee66fa] - errors: validate constructor name (Christian Aurich) #65607
  • [ed1b629901] - events: fix weak listener retention overwrite (Aryan) #64024
  • [7b4c17f723] - ffi: throw on missing memory helper arguments (Soul Lee) #65500
  • [cf78d4260e] - ffi: include SharedArrayBuffer in error message (Donghoon Kang) #65735
  • [2d2f4f6d1a] - (SEMVER-MINOR) ffi: enable module by default (Matteo Collina) #65475
  • [bdcb6def4e] - ffi: validate DynamicLibrary getter receivers (Trivikram Kamat) #65415
  • [5d24a8fe37] - fs: copy directory trees for fs.cp() on the thread pool (Shelley Vohr) #65488
  • [40bdf32d91] - fs: give directories created by cpSync the source directory's mode (Shelley Vohr) #65488
  • [6ac1bc040f] - fs: write files in one thread pool round trip (Shelley Vohr) #65489
  • [b4b89c08c1] - fs: handle recursive watch setup races (Filip Skokan) #65699
  • [54a1311d9e] - fs: apply nocase to literal glob exclude patterns (Yusuke Hayashi) #64817
  • [2130460831] - fs: improve performance of recursive directory read (Aviv Keller) #65524
  • [ab7f4c88b7] - fs: do not descend into symlinks for ** unless following symlinks (RafaelGSS) #65435
  • [e990324e7a] - fs: watch directories, not files, in recursive fs.watch fallback (Shelley Vohr) #65486
  • [b6db21972a] - fs: preserve directory timestamps in cp (Abhinandan Kumar) #65540
  • [d418ca140e] - fs: fix recursive watch error handling (Filip Skokan) #65635
  • [ea372bf9c9] - fs: cancel in-flight stat on abort (Mert Can Altin) #63142
  • [458664073e] - fs: fix rmSync error messages for non-ASCII paths (Yeaseen) #61233
  • [34b38235c3] - fs: add maxDepth option to glob (Alexander Lichter) #64003
  • [e3cc0d9313] - http: fast-forward teardown of unread messages (Matteo Collina) #65732
  • [f9175a212c] - http: coalesce chunked writes during auto-corking (GetThatCookie) #64987
  • [b4a7cd3efb] - http2: fix write deadlock exposed by larger window sizes (Tim Perry) #65440
  • [b7e97f6cfd] - http2: error for incomplete reads on RST, auto-drain, deprecate aborted (Tim Perry) #63249
  • [d62989dbdf] - http2: fix async context loss when trailers carry END_STREAM (Orgad Shaneh) #63814
  • [8aba314f87] - https: limit proxy CONNECT response headers (Matteo Collina) #64545
  • [bea74e1cb5] - lib: put node:bench behind an --experimental-bench flag (James M Snell) #65920
  • [2835523960] - lib: fixup node:bench handling of --require option (James M Snell) #65631
  • [aae83d87a4] - lib: improve diagnostic message support (James M Snell) #65631
  • [ba7baed423] - lib: have runFile honor permissions and accept URL/Buffer paths (James M Snell) #65631
  • [55103db988] - lib: add runFile api to node:bench (James M Snell) #65631
  • [0a4c50eb76] - lib: add context.diagnostic api to node:bench (James M Snell) #65631
  • [476e25e864] - lib: add bench:plan event to node:bench (James M Snell) #65631
  • [67cf0e556f] - lib: clarify mean in node:bench docs (James M Snell) #65631
  • [f85f72ad42] - lib: improve node:bench stream handling (James M Snell) #65631
  • [b32b09f56b] - lib: add runId, fileRunId, entryFile, namePath to node:bench (James M Snell) #65631
  • [4b9b53f958] - (SEMVER-MINOR) lib: add node:bench explicit createRunner (James M Snell) #65606
  • [d9f18171f0] - (SEMVER-MINOR) lib: complete the implementation of node:bench and cli (James M Snell) #65606
  • [c39e20e9ca] - (SEMVER-MINOR) lib: implement bench/reporters (James M Snell) #65606
  • [657415c6df] - (SEMVER-MINOR) lib: implement node:bench (James M Snell) #65606
  • [46863a7f9c] - lib: use Float16Array from primordials (Antoine du Hamel) #65702
  • [cbd0948138] - lib: defer source map payload decoding until first use (Shelley Vohr) #65490
  • [1ddb1c8934] - lib: optimize async context frame activation (Tim Perry) #65519
  • [02f6feef7e] - lib: use validateArray for array arguments (JunHwan Choi) #65344
  • [962795ab8c] - lib: apply minor dtls cleanups (James M Snell) #63539
  • [c07b2ab8a9] - lib,benchmark: address multiple review issues (James M Snell) #65631
  • [54a5e25f72] - module: derive builtinModules from enabled builtin set (Jungwon Sohn) #65418
  • [c93a90cf12] - net: fix BlockList.fromJSON for IPv4-mapped IPv6 rules (Daijiro Wachi) #64125
  • [506d23b76f] - net: recognize bare IPv6 loopback addresses in isLoopback (Daijiro Wachi) #63619
  • [81cd6d7b78] - net: improve dtls cert verification (James M Snell) #64314
  • [51d094e26b] - node-api: make object property arrays const (Yilong Li) #65621
  • [875c7ecee2] - node-api: enter env context for async callbacks (Shelley Vohr) #65406
  • [ebcfec2f0c] - (SEMVER-MINOR) perf_hooks: implement Histogram meanCI API (James M Snell) #65606
  • [09b333bcc5] - perf_hooks: add missing resource timing attributes (greenhead) #65017
  • [e1913630c3] - (SEMVER-MINOR) perf_hooks: add CBOR export/import for histogram exchange (James M Snell) #65434
  • [67a78317dd] - permission: do not enforce fs and addons in audit mode (Issac) #65659
  • [19e69e5f72] - permission: support URL and Uint8Array as has()/drop() reference (Seungmin Nam) #65492
  • [168af4d8d7] - permission: block FileHandle fsync and fdatasync (Rafael Gonzaga) #65431
  • [855fff682f] - quic: stop guarding ngtcp2_recv_stop_sending callback field (René) #65688
  • [d30df2a3e1] - quic: reuse TLS pause machinery to drop event deferral & improve 0RTT (Tim Perry) #65522
  • [fce1b6a482] - quic: remove unused fin flag from blob reader wakeup (trivenay) #65315
  • [c721aabfb7] - quic: apply multiple fixes to flow control signaling (James M Snell) #65309
  • [2c552cd32c] - quic: release stream arenas before cleanup (Trivikram Kamat) #65410
  • [487662717b] - sea: mount bundled assets as a virtual file system (Matteo Collina) #65675
  • [0ec15a2a54] - sea: keep ELF segments on separate pages in --build-sea output (Shelley Vohr) #65564
  • [1627fd6561] - sqlite: re-validate database state after reading options (Trevor Burnham) #65595
  • [18c3867d19] - sqlite: run backup completion in callback scope (Filip Skokan) #65666
  • [a77d738683] - sqlite: copy changeset before applying it (Matteo Collina) #65286
  • [b5f0558c84] - sqlite: reject closing a session from a callback (Trevor Burnham) #65454
  • [5f95032859] - sqlite: keep sessions alive across SQLite callbacks (Trevor Burnham) #65465
  • [2ce0e2eb10] - sqlite: throw on disposal of an in-use session (Guilherme Araújo) #65449
  • [f66ed89136] - src: fix use-after-free in CleanupHookThunkRun (Caleb Everett) #65630
  • [14613fdc3e] - (SEMVER-MINOR) src: fixup histogram and options linting issues (James M Snell) #65606
  • [6db3f662cf] - src: fix startup snapshot reproducibility of InternalFieldInfo (Chengzhong Wu) #65684
  • [8e9151c9f2] - (SEMVER-MINOR) src: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) #65352
  • [760337aa5b] - src: fix live lock between environments with blocked requests (Ilyas Shabi) #65520
  • [f2a588c385] - src: apply IsolateSettings when using a snapshot (Shelley Vohr) #65407
  • [2fd50ae915] - src: add re-entrancy guard to TriggerUncaughtException (Temuulen Undrakhbayar) #64327
  • [e260fd146c] - src: reuse cached strings in CompileSerializeMain (agape1225) #65453
  • [0650dca863] - src: add missing vector include (Filip Skokan) #65622
  • [6e9d44d1fe] - src: disable V8 external memory reasonable size check (Paul Bouchon) #65589
  • [9c46e56303] - src: report libuv error when openAsBlob cannot stat (Paul Bouchon) #65517
  • [a0aaff6b07] - src: list scripts when --run has no command (James Ross) #64606
  • [469590c155] - src: fixup manual new/delete usages (James M Snell) #65348
  • [5902acf031] - src: make the options structs smaller with packed bits (James M Snell) #65145
  • [0c24639a5a] - (SEMVER-MINOR) src, lib: add stats to dtls (James M Snell) #63182
  • [652fbc286e] - (SEMVER-MINOR) src,lib: add dtls interop tests (James M Snell) #63182
  • [889854f18b] - (SEMVER-MINOR) src,lib: implement experimental DTLS API (James M Snell) #63182
  • [76538d519c] - stream: use webidl validation semantics for args (James M Snell) #65658
  • [649a4aba93] - stream: ensure that stateful transforms preserve this (James M Snell) #65658
  • [23220992c0] - stream: fix nested async flushing with infinite sources (James M Snell) #65658
  • [3ad1338139] - stream: ensure from() observes returned rejecting promise correctly (James M Snell) #65658
  • [cafdee6369] - stream: apply source normalization once at call time (James M Snell) #65658
  • [edb83cb620] - stream: make consumer signals on longer alter source precedence (James M Snell) #65658
  • [56bdd765df] - stream: make pipeTo source normalization independent of Writer (James M Snell) #65658
  • [037c07af2b] - stream: pre-aborted pipeTo now applies dest failure handling (James M Snell) #65658
  • [7308492d48] - stream: ensure pre-existing writes drain before EOF and end() waits (James M Snell) #65658
  • [756773477b] - stream: ensure async dispoal after endSync awaits for drain (James M Snell) #65658
  • [042b951312] - stream: ensure factory signals remain active through closing (James M Snell) #65658
  • [2dc09ca9ca] - stream: canWrite and ondrain now reflect physical capacity (James M Snell) #65658
  • [9192fbb6dd] - stream: skip unobserved 'readable' emission at EOF (Matteo Collina) #65749
  • [dc25a61e7a] - stream: avoid per-chunk promises in webstream adapters (Matteo Collina) #65548
  • [82ae196af6] - stream: address stream/iter review feedback (James M Snell) #65652
  • [3b37b48592] - stream: replace object sentinel with symbol (James M Snell) #65652
  • [b6424b6612] - stream: ensure pipeToSync requires synchronous close (James M Snell) #65652
  • [830fc81acf] - stream: cancel active stream/iter pulls (James M Snell) #65652
  • [30606908de] - stream: fix merge settlement tagging and falsy error tracking (James M Snell) #65652
  • [7319198755] - stream: ensure full-close semantics when closed (James M Snell) #65652
  • [bf5acb783f] - stream: defend against re-entrancy in writev (James M Snell) #65652
  • [b01594f93a] - stream: ensure stability of stored metadata (James M Snell) #65652
  • [7bfd81ab09] - stream: fixup writer to terminate on consumer return/throw (James M Snell) #65652
  • [dc2483c38d] - stream: ensure iterator cleanup on done, reject, etc (James M Snell) #65652
  • [f6fac6f7f0] - stream: fixup cancelation handling in pull() (James M Snell) #65652
  • [dfe0617e71] - stream: fix early drain after Utf8Stream reopen (Matteo Collina) #65633
  • [900fae0a24] - test: split test-bench-cli to try deflaking it (James M Snell) #65919
  • [31f4bd73b2] - test: make node:bench test samples survive a coarse clock (Shelley Vohr) #65780
  • [e0fa1893c3] - test: do not dump core in external memory limit test (Shelley Vohr) #65780
  • [00ad283b8d] - test: zero-fill buffers before the string length limit check (Christian Aurich) #65755
  • [70763fcc46] - test: expand test coverage of node:bench (James M Snell) #65631
  • [5a38e6b115] - (SEMVER-MINOR) test: fix node:bench test timing (James M Snell) #65606
  • [536ae0e24b] - (SEMVER-MINOR) test: improve node:bench test coverage (James M Snell) #65606
  • [eec66d529c] - (SEMVER-MINOR) test: update bench tests to not fail on no-crypto (James M Snell) #65606
  • [ce7b349de5] - test: bump WPT webidl and interfaces (Filip Skokan) #65679
  • [ec96f8dc23] - test: update WPT for url to c23755a144 (Node.js GitHub Bot) #65651
  • [ebe2ac248b] - test: fix recursive fs.watch error fixture (Filip Skokan) #65683
  • [a19912ee8f] - test: update streams WPT (Jeong SeokChan) #65638
  • [14b5dfc63d] - test: remove console.log call in node_run_list (Antoine du Hamel) #65572
  • [3f67df139c] - test: expect node:ffi to be enabled by default (Matteo Collina) #65636
  • [b9ee2e67bf] - (SEMVER-MINOR) test: use native builder for legacy SEA tests (Filip Skokan) #65553
  • [53a29d0894] - test: use common spawnSync helpers in more tests (greenhead) #65552
  • [5c680a50f4] - test: add coverage for removeEventListener boolean capture (Lazizbek Ergashev) #65245
  • [6f99474912] - test: deflake fastutf8stream destroy and reopen tests (Christian Aurich) #65554
  • [2342b2bf30] - test: cover Readable.from() sync iterator errors (jakecastelli) #65515
  • [1e455a4ffe] - test: support inspecting WPTs in child processes (Filip Skokan) #65510
  • [1f7cab588e] - test: document WPT runner workflows (Filip Skokan) #65510
  • [d39a902cec] - test: simplify test-worker-heap-profile.js (Donghoon Kang) #65372
  • [90d1b863f7] - test: keep WPT backend checks alive (Filip Skokan) #65320
  • [be60c34b52] - (SEMVER-MINOR) test: enable multi-global WPTs (Filip Skokan) #64894
  • [d04cfcda8e] - (SEMVER-MINOR) test: add opt-in process WPT runner (Filip Skokan) #64894
  • [715c21f805] - (SEMVER-MINOR) test: accomodate multi-global tests in WPT{Runner,TestSpec,Report} (Filip Skokan) #64894
  • [9aa8489a01] - test: fix lint in dtls tests (Matteo Collina) #64902
  • [6a3d8a6d9f] - tls: read the peer certificate chain without consuming it (Tony Gies) #65602
  • [2e519f8fef] - tls,quic: commonize TLS cert handling between tls, dtls & quic (Tim Perry) #64711
  • [2266c14051] - tools: add GHA workflow to test vendored Perfetto (Antoine du Hamel) #65614
  • [19779f121f] - tools: fix the list of globals in ESLint config files (Antoine du Hamel) #65281
  • [b57db8dfd3] - typings: add types for performance binding (Jungwon Sohn) #65574
  • [371e2260f4] - typings: add encodeIntoResults to EncodingBinding (greenhead) #65350
  • [417cdd8a77] - typings: add typing for permission binding (Seungmin Nam) #65385
  • [a82cc7097f] - url: align URLPatternInit dictionary conversion with WebIDL (Piyush Yadav) #65498
  • [0e8f7b96b0] - util: canonicalize namespaced tags in inspect() (René) #63257
  • [acd2bb10ce] - v8: add setHeapProfileNearHeapLimit (Ilyas Shabi) #64676
  • [d0535b1041] - vfs: load native addons from a mounted file system (Philipp Dunkel) #65680
  • [ea6f70ba41] - vfs: fix rename over non-empty directory (Christian Aurich) #65613
  • [b4f6b3798a] - vfs: add ZipProvider (Philipp Dunkel) #64915
  • [5198142c59] - (SEMVER-MINOR) vfs: integrate with CJS and ESM module loaders (Matteo Collina) #63653
  • [38192126e2] - worker: start worker threads from the built-in snapshot (Shelley Vohr) #65336
  • [56144ea80a] - worker: add ref/unref to web workers (Aviv Keller) #65507
  • [7231c13b8a] - (SEMVER-MINOR) worker: add wpt tests for Web Workers (Aviv Keller) #64894
  • [5af9d72e7f] - (SEMVER-MINOR) worker: add support for Web Workers (Aviv Keller) #64894
  • [069a1b1200] - zlib: avoid waiting for paused ZIP iterators (Trivikram Kamat) #65278
13 hours ago
ClickHouse
18 hours ago
openobserve

Release v1.0.1

📦 Download Binaries from https://openobserve.ai/downloads

What's Changed

Full Changelog: https://github.com/openobserve/openobserve/compare/v1.0.0...v1.0.1

20 hours ago
rustfs

RustFS 1.0.0

What's Changed

Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.6...1.0.0

20 hours ago
zinc

v1.0.0-beta3

What's Changed

New Contributors

Full Changelog: https://github.com/zincsearch/zincsearch/compare/v1.0.0-beta2...v1.0.0-beta3