Skip to content

Latest commit

 

History

History
46 lines (27 loc) · 1.49 KB

README.md

File metadata and controls

46 lines (27 loc) · 1.49 KB

IPNS Utilities 🛠️

Work in Public. This is a work in progress, not ready for production use. Pull Requests welcome.

  • Fork/Clone
  • Create new feat/fix branch
  • Make changes
  • Add tests
  • Submit PR

Crates

  • ipns-entry: [~Complete] The crate for encoding and decoding IPNS records. Encode IPNS Record data into signed CBOR and Protobuf bytes. Decode and verify protobuf IPNS records in Rust. Built in accordance with the IPNS spec.

  • ipns-server: [WIP] Libp2p server that spins up Kad-DHT and IPNS record publishing.

  • ipns-interop-test: [TODO] A crate for testing IPNS interop with Go and JS. This crate is used in the interop test.

  • ipns-publish-persist: [TODO] A crate for ongoing publishing and persisting IPNS records to a datastore.

Usage

See the tests for example usage.

Examples

cargo run --example ipns-entry

Tests

cargo test --workspace

Docs

cargo doc --workspace --no-deps --open

Build from Source

To build, you will need your env var PROTOC= set to the bin location where protoc is saved, as this uses prost to generate the Rust files from Proto files.

This is done in the build step using ./build.rs.

The generated rust files are saved by prost to the target/../build/ipns-entry-*/out/ directory.