Skip to content

Latest commit

 

History

History
142 lines (96 loc) · 5.2 KB

README.md

File metadata and controls

142 lines (96 loc) · 5.2 KB

crypto-layer-node

Warning

Currently this node plugin crashes quite ungracefully. (See [#Debugging])

Warning

File storage works with fs locks and closing is sluggish. Closing and reopening a provider with the same file store might result in an db lock error.

Crypto Layer TS interface for nodejs.

This project was bootstrapped by create-neon.

Building crypto-layer-node

Building crypto-layer-node requires a supported version of Node and Rust.

To run the build, run:

npm i
npm run build

This command uses the @neon-rs/cli utility to assemble the binary Node addon from the output of cargo.

Debugging

  • Compile the library with debug:

    npm run debug
    
  • Activate logging:

    RUST_LOG=trace
    $env:RUST_LOG="trace"

    Available levels are trace, debug, info, warn and error.

    It is possible to filter according to modules (see the docs).

  • Activate full backtrace:

    RUST_BACKTRACE=full
    $env:RUST_BACKTRACE="full"

Available Scripts

In the project directory, you can run:

npm run build

Builds the Node addon (index.node) from source, generating a release build with cargo --release.

Additional cargo build arguments may be passed to npm run build and similar commands. For example, to enable a cargo feature:

npm run build -- --feature=beetle

npm run debug

Similar to npm run build but generates a debug build with cargo.

npm run cross

Similar to npm run build but uses cross-rs to cross-compile for another platform. Use the CARGO_BUILD_TARGET environment variable to select the build target.

npm run release

Initiate a full build and publication of a new patch release of this library via GitHub Actions.

npm run dryrun

Initiate a dry run of a patch release of this library via GitHub Actions. This performs a full build but does not publish the final result.

npm test

Runs the unit tests written with jest.

The project must be compiled with npm run debug (recommended) or npm run build beforehand.

Consider running the tests with logging and full backtrace:

RUST_LOG=info RUST_BACKTRACE=full npm test

Project Layout

The directory structure of this project is:

node-plugin/
├── Cargo.toml
├── README.md
├── lib/
├── src/
|   ├── index.mts
|   └── index.cts
├── crates/
|   └── crypto-layer-ts/
|       └── src/
|           └── lib.rs
├── platforms/
├── package.json
└── target/
Entry Purpose
Cargo.toml The Cargo manifest file, which informs the cargo command.
README.md This file.
lib/ The directory containing the generated output from tsc.
src/ The directory containing the TypeScript source files.
index.mts Entry point for when this library is loaded via ESM import syntax.
index.cts Entry point for when this library is loaded via CJS require.
crates/ The directory tree containing the Rust source code for the project.
lib.rs Entry point for the Rust source code.
platforms/ The directory containing distributions of the binary addon backend for each platform supported by this library.
package.json The npm manifest file, which informs the npm command.
target/ Binary artifacts generated by the Rust build.

Learn More

Learn more about: