Socket
Book a DemoInstallSign in
Socket

@cipherstash/jseql-ffi

Package Overview
Dependencies
Maintainers
0
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cipherstash/jseql-ffi

This project was bootstrapped by [create-neon](https://www.npmjs.com/package/create-neon).

0.5.0
latest
npmnpm
Version published
Weekly downloads
53
5200%
Maintainers
0
Weekly downloads
 
Created
Source

jseql-ffi

This project was bootstrapped by create-neon.

Building

Building requires a supported version of Node and Rust.

To run the build, run:

$ npm run build

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

Exploring

After building jseql-ffi, you can explore its exports at the Node console. CS_CLIENT_ID and CS_CLIENT_KEY must be set in your environment for the call to newClient() to succeed.

$ npm i
$ npm run build
$ node
> const addon = require(".");
> const client = await addon.newClient();
> const ciphertext = await addon.encrypt(client, "plaintext", "column_name");
> const plaintext = await addon.decrypt(client, ciphertext);
> console.log({ciphertext, plaintext});

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 by calling cargo test. You can learn more about adding tests to your Rust code from the Rust book.

Project Layout

The directory structure of this project is:

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

Releasing

Releases are handled by GitHub Actions using a workflow_dispatch event trigger. The release workflow was generated by Neon.

The release workflow is responsible for:

  • Building and publishing the main @cipherstash/jseql-ffi package as well as the native packages for each platform (e.g. @cipherstash/jseql-ffi-darwin-arm64).
  • Creating the GitHub release.
  • Creating a Git tag for the version.

To perform a release:

  • Navigate to the "Release" workflow page in GitHub.
  • Click on "Run workflow".
  • Select the branch to release from. Use the default of "main" unless you want to do a pre-release version or dry run from a branch.
  • Select whether or not to do a dry run. Dry runs are useful for verifying that the build will succeed for all platforms before doing a full run with a publish.
  • Choose a version to publish. The options are similar to npm version. Select "custom" in the dropdown and fill in the "Custom version" text box if you want to use a semver string instead of the shorthand (patch, minor, major, etc.).
  • Click "Run workflow".

Note that we currently don't have any automation around release notes or a changelog. However, you can add release notes after running the workflow by editing the release on GitHub.

Learn More

Learn more about:

FAQs

Package last updated on 19 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.