npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wasm-xchacha-poly

v0.1.0

Published

`wasm-xchacha20poly1305-wrapper` is a WebAssembly wrapper for the XChaCha20Poly1305 encryption algorithm. This library enables developers to use the powerful encryption capabilities of the Chacha20Poly1305 cryptographic algorithm in web applications.

Downloads

6

Readme

wasm-xchacha20poly1305-wrapper

wasm-xchacha20poly1305-wrapper is a WebAssembly wrapper for the XChaCha20Poly1305 encryption algorithm. This library enables developers to use the powerful encryption capabilities of the Chacha20Poly1305 cryptographic algorithm in web applications.

Features

  • WebAssembly wrapper for XChacha20Poly1305 encryption algorithm
  • Functions directly callable from JavaScript
  • Input validation for data and keys
  • Designed for web applications that require strong encryption and decryption

Getting Started

Prerequisites

Ensure the following tools are installed on your system:

  • Rust (latest stable version)
  • wasm-pack

Installation

  1. Clone the repository:
git clone https://github.com/dumitory-dev/wasm-xchacha20poly1305-wrapper.git
  1. Build the WebAssembly package:
cd wasm-xchacha20poly1305-wrapper
wasm-pack build --target web
  1. The compiled WebAssembly module will be available in the pkg directory.

Usage

Include the generated JavaScript and WebAssembly files in your web application:

<script type="module">
import { encrypt, decrypt, encrypt_async, decrypt_async } from './pkg/wasm_xchacha20poly1305_wrapper.js';

async function run() {
 const plaintext = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100]); // Hello, World
 const key = new Uint8Array(32); // Use a properly generated 256-bit key for real-world applications

 // Synchronous encryption
 const ciphertext = encrypt(plaintext, key);
 console.log('Ciphertext:', ciphertext);

 // Synchronous decryption
 const decrypted = decrypt(ciphertext, key);
 console.log('Decrypted:', decrypted);

 // Asynchronous encryption
 const asyncCiphertext = await encrypt_async(plaintext, key);
 console.log('Async Ciphertext:', asyncCiphertext);

 // Asynchronous decryption
 const asyncDecrypted = await decrypt_async(asyncCiphertext, key);
 console.log('Async Decrypted:', asyncDecrypted);
}

run();
</script>

Running Tests

To run the tests for the library, execute the following command in the project's root directory:

cargo test

This command will run all the unit tests defined in the Rust source code.

Running Benchmarks

To run benchmarks for the library, you need to install the criterion crate:

cargo install cargo-criterion

After installing cargo-criterion, you can run the benchmarks with the following command:

cargo criterion

This command will run all the benchmark tests and generate an HTML report in the target/criterion/report directory.

License

This project is licensed under the terms of the MIT license. For a copy, see https://opensource.org/licenses/MIT.