Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate neon to 0.10.1 #65

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Oct 1, 2023

This PR contains the following updates:

Package Type Update Change
neon (source) dependencies minor 0.3.1 -> 0.10.1

Release Notes

neon-bindings/neon (neon)

v0.10.1

Compare Source

Fix a soundness hole in JsArrayBuffer::external
and JsBuffer::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 JsArrayBuffer or JsBuffer that references data without the 'static lifetime.

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)
}

v0.10.0

Compare Source

See the Neon 0.10 Migration Guide for more details about new features and breaking changes.

Features

Minor Improvements

Fixes

Internal Improvements

v0.9.1

Compare Source

v0.9.0

Compare Source

Performance

Channel, formerly EventQueue, 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), calling cx.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

EventQueue and EventQueueError have been renamed to Channel and ChannelError respectively 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

Fixes

v0.8.3

Compare Source

v0.8.2

Compare Source

v0.8.1

Compare Source

v0.8.0

Compare Source

Fixes

Features

Improvements

Housekeeping

v0.7.1

Compare Source

Features
Fixes

v0.7.0

Compare 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 panic message will inform the user.

Threadsafe Functions

A prerelease version of EventQueue for calling into the main JavaScript thread from Rust threads can be enabled with the event-queue-api feature flag. The API is considered unstable and may change in the future until the RFC is merged.

v0.6.0

Compare Source

The cx.try_catch(..) API has been updated to return T: Sized instead of T: 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 from try_catch closures.

N-API

v0.5.3

Compare Source

Bug Fixes

Upgrade node-gyp (https://github.com/neon-bindings/neon/pull/623)

  • Fix Windows Node 15
  • Fix Apple M1

Features

Added neon::main macro as a replacement for register_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)

v0.5.2

Compare Source

CLI

Added support for additional arguments passed to cargo build. Resolves https://github.com/neon-bindings/neon/issues/471.

neon build --release -- --features awesome

N-API

v0.5.1

Compare Source

Performance

  • smallvec is used for collecting arguments and yields a small performance gain when calling JsFunction

Broader Support

Thanks to @​staltz, neon now builds for both iOS and Android with nodejs-mobile.

v0.5.0

Compare Source

Re-publish

Versions 0.4.1 and 0.4.2 included a breaking change in neon-runtime. At the time, this was considered acceptable because neon-runtime is considered an internal crate and not part of the public API. However, it was discovered, after publishing, that neon-serde, a commonly used crate in the neon ecosystem, contained a direct dependency on neon-runtime. In order to best support users, versions 0.4.1 and 0.4.2 were "yanked" and re-published as 0.5.0.

Additionally, the team is working with the authors of neon-serde to remove the dependency on neon-runtime to prevent future issues.

Bug Fixes

v0.4.2

Compare Source

Unpublished / Yanked

Bug Fixes

  • Fix memory leak and race condition in EventHandler

v0.4.1

Compare Source

Unpublished / Yanked

Features

Try Catch

Added the cx.try_catch API of RFC 29. This feature is behind the try-catch-api feature flag.

Bug Fixes

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.

v0.4.0

Compare Source

v0.3.3

Compare Source

Hot fix for neon build in projects with many dependencies.

v0.3.2

Compare Source

Bug fixes and Small Features

  • Disable node module registration on test build, allowing cargo test to be used on neon modules
  • Added support for alternate CARGO_TARGET_DIR locations (e.g., workspaces)
  • Added macros to neon::prelude to improve ergonomics in Rust 2018
  • Link win_delay_hook when building with electron-build-env, fixing Windows Electron
  • Fixed missing __cxa_pure_virtual on Linux
  • Copy native files into OUT_DIR and build there to fix cargo publish and 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-cli to neon-build. This is more idiomatic, but makes neon-build required for macOS builds where it was unnecessary before.

Since neon-build has been included in the project template since 0.1 this 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-runtime and n-api feature flags for toggling neon runtime
  • Moved the legacy runtime to nodejs-sys crate
  • Stubbed required n-api implementation
  • Added feature flag to neon-cli to help configuring n-api projects

Configuration

📅 Schedule: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants