The EventHandler
API is a new feature for scheduling work on the javascript main thread from other threads. Big thanks to @geovie for the RFC and implementation.
This feature is currently unstable and gated by a event-handler-api
feature flag.
- New project template updated for Rust 2018
- Workaround for nodejs/node-gyp#1933
- Docs build fixed
- Temporarily disable static tests which keep breaking CI
- Context/Isolate threading
- Scopes
- Strings
- Primitive values (numbers, undefined, null, boolean)
Hot fix for neon build
in projects with many dependencies.
- 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 withelectron-build-env
, fixing Windows Electron - Fixed missing
__cxa_pure_virtual
on Linux - Copy native files into
OUT_DIR
and build there to fixcargo publish
and follow best practices - Eliminated
mem::uniitialized()
usage, reducing warnings and fixing an instance of undefined behavior
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.
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 master.
- Added
legacy-runtime
andn-api
feature flags for toggling neon runtime - Moved the legacy runtime to
nodejs-sys
crate - Stubbed required
n-api
implementation - Added
feature
flag toneon-cli
to help configuringn-api
projects
- Build v0.3 project templates by default in the CLI
- Correctly fail the build if custom build command fails
- Fix breaking changes with v8
GetFunction
- Moved
nan
fromdevDependencies
todependencies
inneon-runtime
- Changed neon crate type from
dylib
tocdylib
- Ensure that neon module loading is not optimized away
- Added support for
CARGO_BUILD_TARGET
environment variable
See the Neon 0.2 Migration Guide for documentation on migrating your projects from the Neon 0.1.x series to Neon 0.2, and please let us know if you need help!
- Release automation (#318)
- New
ArrayBuffer
views API -- see RFC 5 (#306) - VM 2.0 -- see RFC 14 (#306)
- New
JsString
constructor -- see RFC 21 (#322) - Eliminated
JsInteger
,JsVariant
,callee()
-- see RFC 22 (#323) - Renamed
Key
toPropertyKey
and its method names -- see RFC 22 (#323) - Module reorganization -- see RFC 20 (#324)
- New
JsError
API -- see RFC 23 (#325) - Eliminated
ToJsString
API -- see RFC 22 (#326) - Eliminated
NEON_NODE_ABI
env var -- see RFC 22 (#327) - Default to release builds -- see RFC 22 (#328)
- Made
Buffer
construction safe by default (#329, #331) - Made
Throw
not implementstd::error::Error
to avoid accidental suppression, thanks to @kjvalencik (#334) - Fixed a bug causing unnecessary rebuilds, thanks to @kjvalencik (#343)
- Fixed a soundness bug in the
Task
API, thanks to @kjvalencik (#335)
- Optimization in
Scope
structures, thanks to @maciejhirsz (#282) - Fixed a memory leak in the
Task
API, thanks to @kjvalencik (#291) - Add support for Node 10, thanks to @mhsjlw and @nomadtechie (#314)
- Reinstate
JsInteger
(although it's deprecated) for now, to be removed in 0.2. (#279)
- Fix a bug that was causing annoying unnecessary rebuilds (#242).
- New API for getting the global object (#249).
- Background task API (#214).
- Fixes to Windows builds (#221, #227), thanks to @hone's tenacious troubleshooting.
- TypeScript upgrade fixes (neon-bindings/neon-cli#62, neon-bindings/neon-cli#65).
- CLI bugfix (neon-bindings/neon-cli#59).
- JsArrayBuffer (#210).
- CLI bugfix (neon-bindings/neon-cli#57).
- CLI bugfix (neon-bindings/neon-cli#56).
- Better Electron support in CLI's build process.
- Better support for Electron via the artifacts file (neon-bindings/neon-cli#52).
- Ensure failing tests break the build (#191)
- Catch Rust panics and convert them to JS exceptions (#192)
- Implement
Error
forThrow
(#201) - Clean up the CLI and allow
neon build
to optionally take module names (neon-bindings/neon-cli#48).
- More robust build scripts for neon-runtime, fixing Homebrew node installations (see #189)
- Optimized rooting protocol
- Eliminate rustc warnings
- Lots of internal API docs
- Windows support! 🎉
- Renamed
neon-sys
toneon-runtime
- Depend on
neon-build
as a build dependency (see neon-bindings/neon-cli#46).
- Exposed
This
trait to allow user-level abstractions involvingFunctionCall
- Bump version to match Neon so they can be kept in sync from now on.
- Generate a
build.rs
to make Windows work (see neon-bindings/neon-cli#42 and neon-bindings/neon-cli#44).
- Added
JsError
API with support for throwing all standard error types - Test harness and CI integration!! 🎉 🎉 🎉
- API to call JS functions from Rust
- API to new JS functions from Rust
- Added generalized
as_slice
andas_mut_slice
methods toCSlice
API. - Fixed a soundness issue with Locks.
- The
JsTypeError
type is gone, and replaced by the more generalJsError
type. neon::js::error::JsTypeError::throw(msg)
is nowneon::js::error::JsError::throw(neon::js::error::kind::TypeError, msg)