Home

Awesome

<p align="center"> <img src="./tlsn-banner.png" width=1280 /> </p>

MIT licensed Apache licensed Build Status

Website | Documentation | API Docs | Discord

TLSNotary

Data provenance and privacy with secure multi-party computation

⚠️ Notice

This project is currently under active development and should not be used in production. Expect bugs and regular major breaking changes.

License

All crates in this repository are licensed under either of

at your option.

Branches

Directory

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.

Development

[!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).

Contribution

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.