Gosling is a protocol specification and reference library implementation for said protocol. The protocol is meant to solve the problem of building anonymous, metadata-resistant, and secure peer-to-peer applications using tor onion services.
It is meant to generalize (and improve upon) the authentication scheme used by Ricochet-Refresh clients use to talk to each other. Details can be found in the protocol specification here:
Libgosling currently has the following build dependencies:
Cargo will automatically download and build the required Rust crates. The list of current dependencies can be found in Cargo.toml
The functional tests additionally depend on:
- boost >= 1.66
The reference implementation is a work-in-progress and the API is not yet fully stable.
You will need to initialize the git submodules by:
$ git submodule update --init
All of the usual cmake build types can be generated by invoking make
from the out
directory:
- Debug - No optimization, asserts enabled, debug symbols
- MinSizeRel - Optimize for size, no asserts, no symbols
- Release - Optimize for speed, no asserts, no symbols
- RelWithDebInfo - Optimize for speed, no asserts, debug symbols
Further information can be found in the cmake documentation:
From within one of the generated target directories, the projects may be built by:
$ make
and tests may then by run by:
$ make test
Creation of innovative free software needs support. We thank the NGI Assure Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 957073