Skip to content
I2P router implementation in Rust
Rust Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Test i2pseeds.su3 parsing Oct 10, 2018
examples Example router.toml Oct 23, 2018
src cargo update Dec 16, 2019
.gitignore Initial blank project Sep 2, 2017
.travis.yml Remove code coverage from Travis CI Nov 10, 2019 Readme, license, CoC etc. Sep 2, 2017
Cargo.toml config 0.10 Dec 16, 2019
LICENSE.txt Explore the netDB for RouterInfos Nov 23, 2018

Ire: the I2P Rust engine Build Status codecov

Ire is a Rust implementation of an I2P router, designed to participate in the global, decentralised I2P network.

Development Status

Ire is in pre-alpha; much of the internal architecture still needs to be defined and implemented.

Implemented Features

  • Cryptographic primitives
    • Signing
      • ECDSA_SHA256_P256
      • ECDSA_SHA384_P384
      • ECDSA_SHA512_P521
      • Ed25519
    • Verifying
      • DSA
      • ECDSA_SHA256_P256
      • ECDSA_SHA384_P384
      • ECDSA_SHA512_P521
      • RSA_SHA256_2048
      • RSA_SHA384_3072
      • RSA_SHA512_4096
      • Ed25519
    • ElGamal
    • AES256
  • I2NP
    • Message parsing
    • Message handling
  • NetDB
    • Local storage
    • Persistence to disk
    • Reseeding
    • Lookups
    • Expiry
    • Exploration
    • Publishing
    • Floodfill
  • Transports
    • Transport manager
    • NTCP
      • Handshake
      • Session tracking
      • Automatic session creation
    • NTCP2
      • Handshake
      • Session tracking
      • Automatic session creation
    • SSU


The binary implements a router, along with a basic client that can be used to test the various transports:

  1. Create a router.toml file and configure the router. See examples/router.toml for available configuration options.

  2. Run the router:

$ RUST_LOG=ire=debug cargo run --features cli --release router router.toml
  1. Generate keys for the client:
$ cargo run --features cli --release cli gen client.router.keys.dat
  1. Run a client:
$ RUST_LOG=ire=debug cargo run --features cli --release cli client client.router.keys.dat [NTCP|NTCP2]

Code of Conduct

We abide by the Contributor Covenant and ask that you do as well.

For more information, please see


Bug reports and pull requests are welcome on GitHub at


Copyright (c) 2017 The Ire Developers. See LICENSE.txt for further details.

You can’t perform that action at this time.