Description

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:

Dependencies

Libgosling currently has the following dependencies:

  • rust
  • cmake >= 3.16.6

Building

The reference implementation is currently a work-in-progress and not fully implemented.

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