All Versions
31
Latest Version
Avg Release Cycle
128 days
Latest Release
191 days ago

Changelog History
Page 1

  • v1.1.1 Changes

    May 23, 2025

    ๐Ÿš‘ Hotfix for Node-API versions lower than 5 (#1106).

  • v1.1.0 Changes

    May 23, 2025

    v1.1.0

  • v1.1.0-alpha.2 Changes

    May 02, 2025

    ๐Ÿ”– Version 1.1.0-alpha.2

    ๐Ÿ’ฅ Breaking Changes (unstable features only)

    • Convert snake_case to camelCase when exporting functions (#1084)
    • โœ‚ Remove FromArgs impl on T: TryFromJs and add cx.{arg, arg_opt} (#1096)

    Other

    • ๐Ÿ˜Œ Relax lifetime constraints on With (#1086)
    • โž• Add JsBox::{deref, as_inner} to get long-lived reference to JsBox contents (#1087)
    • โž• Add extractors for TypedArrays (#1089)
    • โž• Add extractors for common container types (#1091)
  • v1.0.0 Changes

    February 23, 2024

    Commitment to Compatibility

    โฌ†๏ธ The release of Neon 1.0 marks our commitment to backwards-compatibility: starting with 1.0.0, Neon users can be confident that future upgrades to Neon 1.x versions should never require code changes (with the possible exception of safety bugfixes, which we expect to be rare). We also do not anticipate releasing new major versions often and do not have any plans to do so for now.

    ๐Ÿ’ฅ Breaking Changes

    • โœ‚ Remove the generic parameter from JsFunction (#989)
    • JsArray::new takes a usize instead of a u32 (#988)
    • Made Context::global read a key and added Context::global_object (#987)
    • ๐Ÿšš Deprecated feature flags were removed

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fix unhandledRejection with JsPromise::to_future (#1008)
    • Typo in cargo-cp-artifact help (#998)
    • Typo in README (#1012)

    Other

    #1010

    • ๐Ÿ˜Œ Relaxed error behavior on missing Node-API symbols. Neon will panic on first use instead of aborting the process at module load time.
    • โฌ†๏ธ Bumped dependency versions
    • ๐Ÿ”„ Changed to edition 2021
    • โšก๏ธ Updated support matrix to Node 18, 20, and 21
  • v1.0.0-alpha.4 Changes

    April 14, 2023

    ๐Ÿ“„ Patch to enable new feature flags in docs.rs.

  • v1.0.0-alpha.3 Changes

    April 14, 2023

    ๐Ÿ’ฅ Breaking Changes

    • โœ‚ Removed Managed trait

    ๐Ÿ‘Œ Improvements

    • โž• Added JsBigInt (#963).
    • โž• Added UTF-16 functions to JsString (#944).
    • ๐Ÿ˜Œ Relaxed Send constraints (#979)
    • ๐Ÿ‘ Lifecycle support for 32-bit (#977)
    • โž• Added sys feature (#970)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix a scope leak in release builds (#952).

    ๐Ÿ“„ Docs

    • Examples added for many types ((#942)).

    cargo-cp-artifact

    ๐Ÿ 0.1.8 fixes sending additional arguments on Windows (#972).

  • v1.0.0-alpha.2 Changes

    November 11, 2022

    ๐Ÿ’ฅ Breaking Changes

    neon::object::This

    #918

    ๐Ÿšš Trait neon::object::This has been removed. This was primarily added for use with the declare_types! macro to generate classes. The macro was removed and This is no longer needed. Additionally, the This argument on JsFunction was found to be invalid because it asserted at compile time a type for this that could change at runtime. (Note that this was not unsound because the type would be checked by Node-API and result in a panic.)

    JsFunction::this

    #918

    JsFunction::this was changed to perform a downcast and be fallible. This is in line with similar APIs (e.g., Object::get). Additionally, an infallible version, JsValue::this_value was added that does not perform a downcast.

    โž• Added Feature flag for external buffers

    #937

    Electron began using pointer compression on JavaScript values that is incompatible with external buffers. As a preventative measure, JsArrayBuffer::external and JsBuffer::external have been placed behind a feature flag that warns of Electron incompatibility.

    ๐Ÿ‘Œ Improvements

    • Lifetimes were relaxed on execute_scoped to allow valid code to compile. (#919)
    • โž• Added a from_slice helper on TypedArray (#925)
    • JsTypedArray construction and type aliases (#909)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed a panic on VM shutdown when using Channel (#934)
    • Type tags were added to JsBox to prevent undefined behavior when multiple native add-ons are used (#907)

    ๐Ÿ“„ Docs

    • ๐Ÿ“š Significantly improved documentation of TypedArray (#909)
    • โœ‚ Removed unused values in Channel docs (#925)

    cargo-cp-artifact

    ๐ŸŽ 0.1.7 includes a fix to unlink .node files before copying to address common code signing errors on macOS (#921).

  • v1.0.0-alpha.1 Changes

    July 11, 2022

    ๐Ÿš€ Pre-release of a major milestone for Neon. 1.0.

    ๐Ÿ’ฅ Breaking Changes

    Major

    • โœ‚ Removed the legacy backend; only Node-API is supported going forward (#881)
    • โœ‚ Removed neon::result::JsResultExt in favor of more general neon::result::ResultExt (#904)

    Minor

    • Length APIs (argument, argument_ops, len) use usize instead of i32 (#889)
    • ๐Ÿ—„ Deprecate feature flags for accepted RFCs (#872)
    • neon::meta::version returns semver@1 version instead of 0.9 (#912)

    ๐Ÿ”‹ Features

    • โž• Add Object.freeze and Object.seal (#891)
    • Futures RFC (#872) Implementation (#874)

      • Await JoinHandle from sending an event on a Channel
      • Adapt JsPromise to JsFuture
    • API for thread-local data (i.e., instance data) (#902)

    • โž• Add Object::call_with() convenience method to call a method on an object (#879)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ˜Œ Relax the lifetime constraints on TypedArray borrows (#877)
    • ๐Ÿ‘ Allowing missing symbols at load time to support bun (#914)
    • Prevent a panic when an async event is called after the JavaScript runtime has stopped (#913)
    • ๐Ÿ›  Fix a soundness hole in JsArrayBuffer::external and JsBuffer::external (#897)

    ๐Ÿ“„ Docs

    • ๐Ÿ›  Fixed mistake in Object::get docs (#903)
    • ๐Ÿ›  Fixed link in README to migration guide (#895)

    Internal

    • ๐Ÿšš Moved cargo-cp-artirfact into the monorepo (#905)
    • โฌ‡ Decreased the size of the Neon build matrix (#893)
    • โœ‚ Removed scope abstraction from legacy backend (#888)
    • ๐Ÿ‘Œ Improved the monorepo structure of neon (#884)
  • v0.10.1 Changes

    May 23, 2022

    ๐Ÿ›  Fix a soundness hole in JsArrayBuffer::external
    and JsBuffer::external (#897).

    Thanks to @Cassy343 for finding the issue!

    In previous versions of Neon, it was possible to create a JsArrayBuffer or JsBuffer that references data without the 'static lifetime.

    pubfnsoundness\_hole(mutcx:FunctionContext)->JsResult\<JsArrayBuffer\>{letmutdata =vec![0u8,1,2,3];// Creating an external from `&mut [u8]` instead of `Vec\<u8\>` since there is a blanket impl// of `AsMut\<T\> for &mut T`letbuf =JsArrayBuffer::external(&mutcx,data.as\_mut\_slice());// `buf` is still holding a reference to `data`!drop(data);Ok(buf)}