Website | Documentation | API Docs | Discord
Data provenance and privacy with secure multi-party computation
This project is currently under active development and should not be used in production. Expect bugs and regular major breaking changes.
All crates in this repository are licensed under either of
at your option.
main
- Default branch — points to the latest release.
- This is stable and suitable for most users.
dev
- Development branch — contains the latest PRs.
- Developers should submit their PRs against this branch.
- examples: Examples on how to use the TLSNotary protocol.
- tlsn-prover: The library for the prover component.
- tlsn-verifier: The library for the verifier component.
- notary: Implements the notary server and its client.
- components: Houses low-level libraries.
This repository contains the source code for the Rust implementation of the TLSNotary protocol. For additional tools and implementations related to TLSNotary, visit https://github.com/tlsnotary. This includes repositories such as tlsn-js
, tlsn-extension
, explorer
, among others.
Important
Note on Rust-to-WASM Compilation: This project requires compiling Rust into WASM, which needs clang
version 16.0.0 or newer. MacOS users, be aware that Xcode's default clang
might be older. If you encounter the error No available targets are compatible with triple "wasm32-unknown-unknown"
, it's likely due to an outdated clang
. Updating clang
to a newer version should resolve this issue.
For MacOS aarch64 users, if Apple's default clang
isn't working, try installing llvm
via Homebrew (brew install llvm
). You can then prioritize the Homebrew clang
over the default macOS version by modifying your PATH
. Add the following line to your shell configuration file (e.g., .bashrc
, .zshrc
):
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
If you run into this error:
Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the `OPENSSL_DIR` environment variable for the
compilation process.
Make sure you have the development packages of OpenSSL installed (libssl-dev
on Ubuntu or openssl-devel
on Fedora).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.