neon
A safe abstraction layer for Node.js.
1.1.1
13M downloads/mo
#2656 most downloaded on crates.io
neon-bindings/neon
What this package is like to depend on
Last release 8 months ago
05 Dec 2025
Ships fairly regularly
a new release about every 4 months
Most releases are documented
notes for 33 of 48 stable releases
7 versions withdrawn
withdrawn after publishing
11 years old
83 releases · first in 2015
1 release in the last 12 months
see the full history below
Release timeline
83 releases · Dec 2015 to Dec 2025Releases
latest 60 of 83-
1.2.0-alpha.005 Dec 2025 pre-release -
1.1.123 May 2025 -
1.1.023 May 2025Release notes
Open source →Continued Commitment to Compatibility
Our strong commitment to compatibility since the 1.0 release remains unchanged. New functionality that has not yet stabilized is published under feature flags, so the only breaking changes that we expect to publish are those that affect the unstable features, or, as always, safety bugfixes.
Version 1.1.1
Hotfix for Node-API versions lower than 5 (https://github.com/neon-bindings/neon/pull/1106).
Version 1.1.0
New Features
Bugfixes
- Fix panic when borrowing empty buffer or typed array (https://github.com/neon-bindings/neon/pull/1058)
- Fix build script behavior based on cargo diagnostics format change (https://github.com/neon-bindings/neon/pull/1039)
Version 1.1.0-alpha.2
Breaking Changes (unstable features only)
- Convert snake_case to camelCase when exporting functions (https://github.com/neon-bindings/neon/pull/1084)
- Remove
FromArgsimpl onT: TryFromJsand addcx.{arg, arg_opt}(https://github.com/neon-bindings/neon/pull/1096)
Other
- Relax lifetime constraints on
With(https://github.com/neon-bindings/neon/pull/1086) - Add
JsBox::{deref, as_inner}to get long-lived reference to JsBox contents (https://github.com/neon-bindings/neon/pull/1087) - Add extractors for TypedArrays (https://github.com/neon-bindings/neon/pull/1089)
- Add extractors for common container types (https://github.com/neon-bindings/neon/pull/1091)
Version 1.1.0-alpha.1
Breaking Changes (unstable features only)
TryIntoJsandTryFromJstakeCxinstead of genericContext(https://github.com/neon-bindings/neon/pull/1062)
Bugfixes
- Fix panic when borrowing empty buffer or typed array (https://github.com/neon-bindings/neon/pull/1058)
Other
- More reliable checking for
Resulttypes in#[export](https://github.com/neon-bindings/neon/pull/1057) - Allow users to take
Cxinstead of genericContext(https://github.com/neon-bindings/neon/pull/1048) - Introduce
WithforTryIntoJs(https://github.com/neon-bindings/neon/pull/1059) - Add tokio async runtime support to
#[export](https://github.com/neon-bindings/neon/pull/1055) - Add
TryIntoJsandTryFromJsfor common container types (https://github.com/neon-bindings/neon/pull/1066) - Allow
Cxin exported functions (https://github.com/neon-bindings/neon/pull/1068)
Version 1.1.0-alpha.0
Bugfixes
- Fix build script behavior based on cargo diagnostics format change (https://github.com/neon-bindings/neon/pull/1039)
Other
- Added Extractors API (https://github.com/neon-bindings/neon/pull/1024)
- Added
#[export]macro (https://github.com/neon-bindings/neon/pull/1025) - Added
npm init neon --lib(https://github.com/neon-bindings/neon/pull/1014 and https://github.com/neon-bindings/neon/pull/1041)
-
1.1.0-alpha.202 May 2025 pre-releaseRelease notes
Open source →Version 1.1.0-alpha.2
Breaking Changes (unstable features only)
- Convert snake_case to camelCase when exporting functions (#1084)
- Remove
FromArgsimpl onT: TryFromJsand addcx.{arg, arg_opt}(#1096)
Other
-
1.1.0-alpha.107 Oct 2024 pre-releaseNothing published for this version
-
1.1.0-alpha.031 May 2024 pre-releaseNothing published for this version
-
1.0.023 Feb 2024Release notes
Open source →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::newtakes ausizeinstead of au32(#988)- Made
Context::globalread a key and addedContext::global_object(#987) - Deprecated feature flags were removed
Bug fixes
- Fix
unhandledRejectionwithJsPromise::to_future(#1008) - Typo in
cargo-cp-artifacthelp (#998) - Typo in README (#1012)
Other
- 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
Release notes
Open source →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(https://github.com/neon-bindings/neon/pull/989) JsArray::newtakes ausizeinstead of au32(https://github.com/neon-bindings/neon/pull/988)- Made
Context::globalread a key and addedContext::global_object(https://github.com/neon-bindings/neon/pull/987) - Deprecated feature flags were removed
Bug fixes
- Fix
unhandledRejectionwithJsPromise::to_future(https://github.com/neon-bindings/neon/pull/1008) - Typo in
cargo-cp-artifacthelp (https://github.com/neon-bindings/neon/pull/998) - Typo in README (https://github.com/neon-bindings/neon/pull/1012)
Other
https://github.com/neon-bindings/neon/pull/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
- Remove the generic parameter from
-
1.0.0-alpha.414 Apr 2023 pre-release -
1.0.0-alpha.314 Apr 2023 pre-releaseRelease notes
Open source →Breaking Changes
- Removed
Managedtrait
Improvements
- Added
JsBigInt(#963). - Added UTF-16 functions to
JsString(#944). - Relaxed
Sendconstraints (#979) - Lifecycle support for 32-bit (#977)
- Added
sysfeature (#970)
Bug Fixes
- Fix a scope leak in release builds (#952).
Docs
- Examples added for many types ((#942)).
cargo-cp-artifact0.1.8fixes sending additional arguments on Windows (#972).Release notes
Open source →Breaking Changes
- Removed
Managedtrait
Improvements
- Added
JsBigInt(https://github.com/neon-bindings/neon/pull/963). - Added UTF-16 functions to
JsString(https://github.com/neon-bindings/neon/pull/944). - Relaxed
Sendconstraints (https://github.com/neon-bindings/neon/pull/979) - Lifecycle support for 32-bit (https://github.com/neon-bindings/neon/pull/977)
- Added
sysfeature (https://github.com/neon-bindings/neon/pull/970)
Bug Fixes
- Fix a scope leak in release builds (https://github.com/neon-bindings/neon/pull/952).
Docs
- Examples added for many types ((https://github.com/neon-bindings/neon/pull/942)).
cargo-cp-artifact0.1.8fixes sending additional arguments on Windows (https://github.com/neon-bindings/neon/pull/972). - Removed
-
1.0.0-alpha.211 Nov 2022 pre-releaseRelease notes
Open source →Breaking Changes
neon::object::ThisTrait
neon::object::Thishas been removed.Thiswas primarily added for use with thedeclare_types!macro to generate classes. The macro was removed andThisis no longer needed. Additionally, theThisargument onJsFunctionwas found to be invalid because it asserted at compile time a type forthisthat could change at runtime. (Note that this was not unsound because the type would be checked by Node-API and result in apanic.)JsFunction::thisJsFunction::thiswas 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_valuewas added that does not perform a downcast.Added Feature flag for external buffers
Electron began using pointer compression on JavaScript values that is incompatible with external buffers. As a preventative measure,
JsArrayBuffer::externalandJsBuffer::externalhave been placed behind a feature flag that warns of Electron incompatibility.Improvements
- Lifetimes were relaxed on
execute_scopedto allow valid code to compile. (#919) - Added a
from_slicehelper onTypedArray(#925) JsTypedArrayconstruction and type aliases (#909)
Bug Fixes
- Fixed a panic on VM shutdown when using
Channel(#934) - Type tags were added to
JsBoxto prevent undefined behavior when multiple native add-ons are used (#907)
Docs
- Significantly improved documentation of
TypedArray(#909) - Removed unused values in
Channeldocs (#925)
cargo-cp-artifact0.1.7includes a fix to unlink.nodefiles before copying to address common code signing errors on macOS (#921).Release notes
Open source →Breaking Changes
neon::object::Thishttps://github.com/neon-bindings/neon/pull/918
Trait
neon::object::Thishas been removed.Thiswas primarily added for use with thedeclare_types!macro to generate classes. The macro was removed andThisis no longer needed. Additionally, theThisargument onJsFunctionwas found to be invalid because it asserted at compile time a type forthisthat could change at runtime. (Note that this was not unsound because the type would be checked by Node-API and result in apanic.)JsFunction::thishttps://github.com/neon-bindings/neon/pull/918
JsFunction::thiswas 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_valuewas added that does not perform a downcast.Added Feature flag for external buffers
https://github.com/neon-bindings/neon/pull/937
Electron began using pointer compression on JavaScript values that is incompatible with external buffers. As a preventative measure,
JsArrayBuffer::externalandJsBuffer::externalhave been placed behind a feature flag that warns of Electron incompatibility.Improvements
- Lifetimes were relaxed on
execute_scopedto allow valid code to compile. (https://github.com/neon-bindings/neon/pull/919) - Added a
from_slicehelper onTypedArray(https://github.com/neon-bindings/neon/pull/925) JsTypedArrayconstruction and type aliases (https://github.com/neon-bindings/neon/pull/909)
Bug Fixes
- Fixed a panic on VM shutdown when using
Channel(https://github.com/neon-bindings/neon/pull/934) - Type tags were added to
JsBoxto prevent undefined behavior when multiple native add-ons are used (https://github.com/neon-bindings/neon/pull/907)
Docs
- Significantly improved documentation of
TypedArray(https://github.com/neon-bindings/neon/pull/909) - Removed unused values in
Channeldocs (https://github.com/neon-bindings/neon/pull/925)
cargo-cp-artifact0.1.7includes a fix to unlink.nodefiles before copying to address common code signing errors on macOS (https://github.com/neon-bindings/neon/pull/921). - Lifetimes were relaxed on
-
1.0.0-alpha.111 Jul 2022 pre-releaseRelease notes
Open source →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::JsResultExtin favor of more generalneon::result::ResultExt(#904)
Minor
- Length APIs (
argument,argument_ops,len) useusizeinstead ofi32(#889) - Deprecate feature flags for accepted RFCs (#872)
neon::meta::versionreturnssemver@1version instead of0.9(#912)
Features
- Add
Object.freezeandObject.seal(#891) - Futures RFC (#872) Implementation (#874)
- Await
JoinHandlefrom sending an event on aChannel - Adapt
JsPromisetoJsFuture
- Await
- 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
TypedArrayborrows (#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::externalandJsBuffer::external(#897)
Docs
Internal
Release notes
Open source →Pre-release of a major milestone for Neon. 1.0.
Breaking Changes
Major
- Removed the legacy backend; only Node-API is supported going forward (https://github.com/neon-bindings/neon/pull/881)
- Removed
neon::result::JsResultExtin favor of more generalneon::result::ResultExt(https://github.com/neon-bindings/neon/pull/904)
Minor
- Length APIs (
argument,argument_ops,len) useusizeinstead ofi32(https://github.com/neon-bindings/neon/pull/889) - Deprecate feature flags for accepted RFCs (https://github.com/neon-bindings/neon/pull/872)
neon::meta::versionreturnssemver@1version instead of0.9(https://github.com/neon-bindings/neon/pull/912)
Features
- Add
Object.freezeandObject.seal(https://github.com/neon-bindings/neon/pull/891) - Futures RFC (https://github.com/neon-bindings/neon/pull/872) Implementation (https://github.com/neon-bindings/neon/pull/874)
- Await
JoinHandlefrom sending an event on aChannel - Adapt
JsPromisetoJsFuture
- Await
- API for thread-local data (i.e., instance data) (https://github.com/neon-bindings/neon/pull/902)
- Add Object::call_with() convenience method to call a method on an object (https://github.com/neon-bindings/neon/pull/879)
Bug Fixes
- Relax the lifetime constraints on
TypedArrayborrows (https://github.com/neon-bindings/neon/pull/877) - Allowing missing symbols at load time to support bun (https://github.com/neon-bindings/neon/pull/914)
- Prevent a panic when an async event is called after the JavaScript runtime has stopped (https://github.com/neon-bindings/neon/pull/913)
- Fix a soundness hole in
JsArrayBuffer::externalandJsBuffer::external(https://github.com/neon-bindings/neon/pull/897)
Docs
- Fixed mistake in
Object::getdocs (https://github.com/neon-bindings/neon/pull/903) - Fixed link in README to migration guide (https://github.com/neon-bindings/neon/pull/895)
Internal
- Moved
cargo-cp-artirfactinto the monorepo (https://github.com/neon-bindings/neon/pull/905) - Decreased the size of the Neon build matrix (https://github.com/neon-bindings/neon/pull/893)
- Removed scope abstraction from legacy backend (https://github.com/neon-bindings/neon/pull/888)
- Improved the monorepo structure of neon (https://github.com/neon-bindings/neon/pull/884)
-
1.0.0-alpha.011 Jul 2022 pre-release withdrawnNothing published for this version
-
0.10.123 May 2022Release notes
Open source →Fix a soundness hole in
JsArrayBuffer::external
andJsBuffer::external(#897).Thanks to @Cassy343 for finding the issue!
In previous versions of Neon, it was possible to create a
JsArrayBufferorJsBufferthat references data without the'staticlifetime.pub fn soundness_hole(mut cx: FunctionContext) -> JsResult<JsArrayBuffer> { let mut data = 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` let buf = JsArrayBuffer::external(&mut cx, data.as_mut_slice()); // `buf` is still holding a reference to `data`! drop(data); Ok(buf) }
Release notes
Open source →Fix a soundness hole in
JsArrayBuffer::externalandJsBuffer::external(https://github.com/neon-bindings/neon/pull/897).Thanks to @Cassy343 for finding the issue!
In previous versions of Neon, it was possible to create a
JsArrayBufferorJsBufferthat references data without the'staticlifetime.pub fn soundness_hole(mut cx: FunctionContext) -> JsResult<JsArrayBuffer> { let mut data = 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` let buf = JsArrayBuffer::external(&mut cx, data.as_mut_slice()); // `buf` is still holding a reference to `data`! drop(data); Ok(buf) } -
0.10.007 Mar 2022Nothing published for this version
-
0.10.0-alpha.308 Dec 2021 pre-releaseNothing published for this version
-
0.10.0-alpha.217 Sep 2021 pre-releaseNothing published for this version
-
0.10.0-alpha.130 Aug 2021 pre-releaseNothing published for this version
-
0.10.0-alpha.030 Aug 2021 pre-release withdrawnNothing published for this version
-
0.9.126 Aug 2021Release notes
Open source →- Expose the
Finalizetrait asneon::types::Finalizeso that docs are visible - Improved docs and build scripts in
create-neonto make release builds more discoverable (https://github.com/neon-bindings/neon/pull/771) - Update
nanto fix an Electron 13 incompatibility (https://github.com/neon-bindings/neon/pull/778)
- Expose the
-
0.9.1-legacy26 Aug 2021 pre-releaseNothing published for this version
-
0.9.026 Jul 2021Release notes
Open source →Performance
Channel, formerlyEventQueue, are now cloneable. Clones share a backing queue to take advantage of an optimization in Node threadsafe functions. Additionally, when specifying Node API 6 or higher (napi-6), callingcx.channel()will return a shared queue (https://github.com/neon-bindings/neon/pull/739).The change may cause a performance regression in some pathological use cases (https://github.com/neon-bindings/neon/issues/762).
Deprecation
EventQueueandEventQueueErrorhave been renamed toChannelandChannelErrorrespectively to clarify their function and similarity to Rust channels. The types are available as deprecated aliases (https://github.com/neon-bindings/neon/pull/752).Docs
- Document error causes for
Channel::try_senddocs (https://github.com/neon-bindings/neon/pull/767) - Document
neon::object(https://github.com/neon-bindings/neon/pull/740)
Fixes
- Fix usage of a removed API in legacy buffers (https://github.com/neon-bindings/neon/pull/769)
- Document error causes for
-
0.8.302 Jun 2021Release notes
Open source →- Fix crash caused by non-thread safety in napi_threadsafefunction on early termination (https://github.com/neon-bindings/neon/pull/744)
- Fix memory leak in
Root(https://github.com/neon-bindings/neon/pull/750)
-
0.8.3-napi02 Jun 2021 pre-releaseNothing published for this version
-
0.8.218 May 2021Release notes
Open source →- More docs improvements
- Added a deprecation warning to
neon new(https://github.com/neon-bindings/neon/pull/722)
-
0.8.2-napi18 May 2021 pre-releaseNothing published for this version
-
0.8.130 Apr 2021Release notes
Open source →- Fix
legacy-backendfor Node 16 (https://github.com/neon-bindings/neon/pull/715) - Various docs improvements
- Fix
-
0.8.1-napi30 Apr 2021 pre-releaseNothing published for this version
-
0.8.023 Mar 2021Release notes
Open source →Fixes
as_sliceandas_mut_sliceproperly handle anullpointer from an empty buffer (https://github.com/neon-bindings/neon/pull/681)- Global drop queue added to avoid panics on N-API 6+ when dropping a
Root(https://github.com/neon-bindings/neon/pull/700)
Features
- Added
neon::reflect::eval(https://github.com/neon-bindings/neon/pull/692) - Added
create-neonfor creating an N-API project (https://github.com/neon-bindings/neon/pull/690) - Added details to the
README.mdgenerated bycreate-neon(https://github.com/neon-bindings/neon/pull/697)
Improvements
- Switched N-API tests to
cargo-cp-artifact(https://github.com/neon-bindings/neon/pull/687) - Added
impl<T: Finalize> Finalize for Option<T>(https://github.com/neon-bindings/neon/pull/680) - Added a N-API migration guide (https://github.com/neon-bindings/neon/pull/685)
Housekeeping
- Lint fixes (https://github.com/neon-bindings/neon/pull/609)
- Lint CI enforcement and
cargo fmt(https://github.com/neon-bindings/neon/pull/698)
-
0.8.0-napi23 Mar 2021 pre-releaseNothing published for this version
-
0.7.104 Feb 2021Release notes
Open source →Features
- Added
JsDateto N-API backend (https://github.com/neon-bindings/neon/pull/639) - Implement
JsBuffer::unitializedfor N-API backend (https://github.com/neon-bindings/neon/pull/664)
Fixes
- Do not panic if a
Rootis leaked after the event loop has stopped (https://github.com/neon-bindings/neon/pull/677) - Stubs for features that will not be implemented in the N-API backend are removed (https://github.com/neon-bindings/neon/pull/663)
- Fix doc URL link (https://github.com/neon-bindings/neon/pull/663)
- Added
-
0.7.1-napi04 Feb 2021 pre-releaseNothing published for this version
-
0.7.005 Jan 2021Release notes
Open source →N-API
Version Selection
Neon supports a large number of different Node versions which may have different N-API requirements. Neon now supports selecting the minimum required N-API version required by a module. For example, for N-API Version 4:
neon = { version = "0.7", default-features = false, features = ["napi-4"] }If the Neon module is loaded in an older version of Node that does not support that N-API version, a
panicmessage will inform the user.Threadsafe Functions
A prerelease version of
EventQueuefor calling into the main JavaScript thread from Rust threads can be enabled with theevent-queue-apifeature flag. The API is considered unstable and may change in the future until the RFC is merged. -
0.7.0-napi.306 Jan 2021 pre-releaseNothing published for this version
-
0.7.0-napi.205 Jan 2021 pre-releaseNothing published for this version
-
0.7.0-napi.105 Jan 2021 pre-releaseNothing published for this version
-
0.7.0-napi05 Jan 2021 pre-releaseNothing published for this version
-
0.6.009 Dec 2020Release notes
Open source →The
cx.try_catch(..)API has been updated to returnT: Sizedinstead ofT: Value(https://github.com/neon-bindings/neon/pull/631). This API is strictly more powerful and allows users to return both JavaScript and Rust values fromtry_catchclosures.N-API
- N-API symbols are now loaded dynamically (https://github.com/neon-bindings/neon/pull/646)
- Build process for N-API is greatly simplified by leveraging dynamic loading (https://github.com/neon-bindings/neon/pull/647)
-
0.6.0-napi09 Dec 2020 pre-releaseNothing published for this version
-
0.5.324 Nov 2020Release notes
Open source →Bug Fixes
Upgrade
node-gyp(https://github.com/neon-bindings/neon/pull/623)- Fix Windows Node 15
- Fix Apple M1
Features
Added
neon::mainmacro as a replacement forregister_module!(https://github.com/neon-bindings/neon/pull/636)Known Issues
Builds occassionally fail with Windows, Node 15 and npm 7 (https://github.com/neon-bindings/neon/issues/642)
-
0.5.3-napi24 Nov 2020 pre-releaseNothing published for this version
-
0.5.216 Nov 2020Release notes
Open source →CLI
Added support for additional arguments passed to
cargo build. Resolves https://github.com/neon-bindings/neon/issues/471.neon build --release -- --features awesomeN-API
- Improved arguments performance
- Add redirect and
NPM_CONFIG_DISTURLsupport
-
0.5.128 Oct 2020Release notes
Open source →Performance
smallvecis used for collecting arguments and yields a small performance gain when callingJsFunction
Broader Support
Thanks to @staltz, neon now builds for both iOS and Android with nodejs-mobile.
-
0.5.1-napi28 Oct 2020 pre-releaseNothing published for this version
-
0.5.012 Oct 2020Release notes
Open source →Re-publish
Versions
0.4.1and0.4.2included a breaking change inneon-runtime. At the time, this was considered acceptable becauseneon-runtimeis considered an internal crate and not part of the public API. However, it was discovered, after publishing, thatneon-serde, a commonly used crate in theneonecosystem, contained a direct dependency onneon-runtime. In order to best support users, versions0.4.1and0.4.2were "yanked" and re-published as0.5.0.Additionally, the team is working with the authors of
neon-serdeto remove the dependency onneon-runtimeto prevent future issues.Bug Fixes
- Fix stack overflow in
DowncastErrorDisplayimpl (https://github.com/neon-bindings/neon/pull/606)
- Fix stack overflow in
-
0.4.223 Sep 2020 withdrawnRelease notes
Open source →Unpublished / Yanked
Bug Fixes
- Fix memory leak and race condition in
EventHandler
- Fix memory leak and race condition in
-
0.4.2-napi.223 Sep 2020 pre-releaseNothing published for this version
-
0.4.2-napi.123 Sep 2020 pre-release withdrawnNothing published for this version
-
0.4.2-napi23 Sep 2020 pre-release withdrawnNothing published for this version
-
0.4.118 Sep 2020 withdrawnRelease notes
Open source →Unpublished / Yanked
Features
Try Catch
Added the
cx.try_catchAPI of RFC 29. This feature is behind thetry-catch-apifeature flag.Bug Fixes
- Pass
async_contexttonode::MakeCallback(https://github.com/neon-bindings/neon/pull/498) - Cache bust neon if node version changes (https://github.com/neon-bindings/neon/pull/388)
- Fix debug builds in windows (https://github.com/neon-bindings/neon/pull/400)
- Fix cross compiling architectures (https://github.com/neon-bindings/neon/pull/491)
- Fix neon new hanging on Windows (https://github.com/neon-bindings/neon/pull/537)
CI Improvements
The Neon Project now uses Github Actions thanks to @lhr0909! As part of this change, CI now runs on all of our supported platforms (macOS, Windows, linux) and Node versions.
- Pass
-
0.4.014 Feb 2020Nothing published for this version
-
0.4.0-napi.114 Feb 2020 pre-releaseNothing published for this version
-
0.4.0-napi14 Feb 2020 pre-releaseNothing published for this version
-
0.3.322 Oct 2019 -
0.3.3-napi25 Oct 2019 pre-releaseNothing published for this version
-
0.3.218 Oct 2019Release notes
Open source →Bug fixes and Small Features
- Disable node module registration on test build, allowing
cargo testto be used on neon modules - Added support for alternate
CARGO_TARGET_DIRlocations (e.g., workspaces) - Added macros to
neon::preludeto improve ergonomics in Rust 2018 - Link
win_delay_hookwhen building withelectron-build-env, fixing Windows Electron - Fixed missing
__cxa_pure_virtualon Linux - Copy native files into
OUT_DIRand build there to fixcargo publishand follow best practices - Eliminated
mem::uniitialized()usage, reducing warnings and fixing an instance of undefined behavior
Potentially Breaking
The macOS link arguments were moved from
neon-clitoneon-build. This is more idiomatic, but makesneon-buildrequired for macOS builds where it was unnecessary before.Since
neon-buildhas been included in the project template since0.1this change was not deemed significant enough to warrant a major revision.N-API
Neon 0.3.2 lays the groundwork for the next major revision. Development of Neon against an ABI stable Node API (N-API) will occur on main.
- Added
legacy-runtimeandn-apifeature flags for toggling neon runtime - Moved the legacy runtime to
nodejs-syscrate - Stubbed required
n-apiimplementation - Added
featureflag toneon-clito help configuringn-apiprojects
- Disable node module registration on test build, allowing
-
0.3.122 Aug 2019 -
0.3.022 Aug 2019Nothing published for this version
-
0.2.025 Jul 2018Nothing published for this version
-
0.1.2303 Jun 2018Release notes
Open source →- Optimization in
Scopestructures, thanks to @maciejhirsz (#282) - Fixed a memory leak in the
TaskAPI, thanks to @kjvalencik (#291) - Add support for Node 10, thanks to @mhsjlw and @nomadtechie (#314)
- Optimization in
-
0.1.2224 Nov 2017Release notes
Open source →- Reinstate
JsInteger(although it's deprecated) for now, to be removed in 0.2. (#279)
- Reinstate