Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 1.62 KB

README.md

File metadata and controls

55 lines (42 loc) · 1.62 KB

gnunet-rs

This is a fork of kc1212's gsoc fork of Andrew Cann's gnunet-rs.

Short-term goals:

  • make it build on a recent rustc (using 1.43.1)
  • fix warnings
  • make it work with a recent gnunet release
  • make the tests pass
  • remove (most?) uses of unsafe
  • update dependencies
  • replace gj with futures-rs and async-std
  • use gnunet's testing framework to launch test peer(s)

Tests

Some tests require the gnunet system to be running, and some additional setup. Do something like the following:

gnunet-arm -s
gnunet-identity -c my_cool_name
gnunet-identity -s gns-master -e my_cool_name

If you don't run the last command above, some tests will fail with a "no default known" error. If you do run the last command above, some tests will fail with a "Premature EOF" error (TODO).

GNUnet bindings for Rust.

Note: This library is for interacting with a locally running GNUnet peer. It does not implement a peer itself. It is also FAR from complete. Only a few rudimentry features are implemented. You cannot, for example, use this for peer-to-peer communication (yet).

Features implemented so far:

  • Parsing GNUnet config files.
  • Retrieving peer info from the peerinfo service.
  • Performing GNS lookups.
  • Performing identity ego lookups.

Next on the list:

  • DHT bindings.
  • Cadet (peer-to-peer) bindings.
  • Datastore bindings.

See http://canndrew.org/rust-doc/gnunet for documentation. See examples directory for example code. Feedback and pull requests are encouraged!