A secure, private, and decentralized chat app built on Nostr, using the MLS protocol under the hood.
White Noise aims to be the most secure private chat app on Nostr, with a focus on privacy and security. Under the hood, it uses the Messaging Layer Security (MLS) protocol to manage group communications in a highly secure way. Nostr is used as the transport protocol and as the framework for the ongoing conversation in each chat.
This crate is the core library that powers our Flutter app. It is front-end agnostic and will allow for CLI and other interfaces to operate groups in the future.
White Noise is an implementation of the NIP-EE spec.
Coming soon
White Noise is a standard rust crate. Check it out and use it like you would any other crate.
- Clone the repo:
git clone https://github.com/parres-hq/whitenoise.gitandcd whitenoise.
In addition, there are extensive integration tests in the codebase that run through much of the API and functions. Run it with the following
just int-testCheck formatting, clippy, and docs with the following:
just checkCheck all those things and run tests with precommit
just precommitTo get started contributing you'll need to have the Rust toolchain installed (version 1.90.0 or later) and Docker.
- Clone the repo:
git clone https://github.com/parres-hq/whitenoise.gitandcd whitenoise. - Install recommended development tools:
just install-tools(optional but recommended) - Start the development services (two Nostr relays; nostr-rs-relay and strfry, and a blossom server):
Or if using older Docker versions:
docker compose up -d
docker-compose up -d
- Now you can run the integration tests with
just int-test.
We recommend installing additional cargo tools for enhanced development experience:
just install-toolsThis installs:
- cargo-nextest: Faster parallel test runner
- cargo-audit: Security vulnerability scanner
- cargo-outdated: Check for outdated dependencies
- cargo-llvm-cov: Code coverage reporting
- cargo-msrv: Verify minimum Rust version
- cargo-deny: License and dependency checker
- cargo-expand: Macro expansion tool
See docs/DEVELOPMENT_TOOLS.md for detailed usage instructions.
Before submitting PRs, please run the precommit command:
just precommitOr for a quicker check (without integration tests):
just precommit-quickAvailable development commands:
just check # Run format, clippy, and doc checks
just fmt # Format code
just test # Run all tests (uses nextest if available)
just test-cargo # Force cargo test (slower)
just coverage # Generate coverage report
just audit # Security audit
just outdated # Check for outdated dependencies
just deny-check # Check licenses and dependenciesWhite Noise is free and open source software, released under the Gnu AGPL v3 license. See the LICENSE file for details.