| dist | ||
| zkgroup | ||
| .gitignore | ||
| index.ts | ||
| libzkgroup-x64.dll | ||
| libzkgroup-x64.dylib | ||
| libzkgroup-x64.so | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Library for the Signal Private Group System.
Work in progress. Subject to change without notice, use outside Signal not yet recommended.
Overview
This library provides zero-knowledge group functionality through several layers of APIs. From lower-level to higher-level:
-
internal.rsprovides the actual Rust implementations, based on Rust structures. -
simpleapi.rsprovides wrapper functions around internal.rs functions that useserdeto serialize/deseralize byte arrays into Rust structures. -
ffiapi.rsandffiapijava.rsprovide wrapper functions aroundsimpleapi.rsfunctions to export them via C and JNI, respectively. -
The subdirectories under
fficontain code in various host languages for accessing the exported functions:-
Under
cis azkgroup.hheader file. -
Under
androidis aZKGroup.javafile and instructions for building an aar. -
Under
nodeis some example code for declaring the FFI functions in javascript.
-
Setup
The rust-toolchain.toml file should get things automatically setup for you provided you are using rustup. See it for the toolchain and channel and targets in use for this build.
Building Rust
Run ./gradlew tasks and see make tasks under the "Rust tasks" group.