i2p_client

Crates.ioi2p_client
lib.rsi2p_client
version0.2.9
sourcesrc
created_at2020-03-04 01:28:10.949854
updated_at2020-04-14 20:31:05.381139
descriptionA SAMv3 I2P client for the local I2P router instance.
homepagehttps://resolvingarchitecture.io
repositoryhttps://github.com/resolvingarchitecture/i2p-client
max_upload_size
id215167
size64,054
Brian Taylor (objectorange)

documentation

https://github.com/resolvingarchitecture/i2p-client

README

Resolving Architecture

Clarity in Design

I2P Client

A client for a local I2P instance. Can be ran within the Service Bus as a Service.

build Crate Info API Docs

License PGP

commits repo size

num lang top lang Rustc Version 1.42+

Info | Docs | Changelog

Donate

Request BTC/XMR/ZEC address for a donation at brian@resolvingarchitecture.io.

Notes

!! WIP - not stable until version 1.0 !!

I2P-RS version use attempted but not fully working as of 1st Qtr 2020.

Please read version notes on I2P SAM:

v1, v2, v3

Goals

*[ ] 1.0.0 - Minimal Useful Functionality *[x] 0.1.0 - Minimal CLI: Handshake and Session creation *[x] 0.2.0 - Basic I/O: Send/Receive Datagrams *[ ] 0.3.0 - Service Bus Support: service_bus crate implementing Service trait *[ ] 0.4.0 - EEP Site Support: requesting EEPSite pages persisting locally (started but unsure how to make request/reply using SAM interface) *[ ] 0.5.0 - Router Control: I2P Control integration *[ ] 0.6.0 - Test Suite *[ ] 0.7.0 - Example CLI use cases *[ ] 0.8.0 - Example Service use cases *[ ] 0.9.0 - Determine if local I2P router installed *[ ] 0.10.0 - Determine local I2P router status *[ ] 0.11.0 - Auto-install I2P router *[ ] 0.12.0 - README.md completed *[ ] 0.13.0 - All code documented *[ ] 0.14.0 - All examples documented

*[ ] 2.0.0 SAMv3.0 Compliance

*[ ] 3.0.0 SAMv3.1 Compliance

*[ ] 4.0.0 SAMv3.2 Compliance *[ ] 4.1.0 - Ping/Pong

*[ ] 5.0.0 SAMv3.3 Compliance

Crates.io

!! WIP - not stable until version 1.0 !!

Setup - Ubuntu 18.04

  1. Download & Install I2P Router
    sudo apt-add-repository ppa:i2p-maintainers/i2p
    sudo apt-get update
    sudo apt-get install I2P
    
  2. Start I2P Router from the commandline, wait for the html console to launch, then wait for active peers to reach at least 10
    i2prouter start
    
  3. Stop I2P Router
    i2prouter stop
    
  4. Enable SAMv3 port by changing parameter clientApp.0.startOnLoad from false to true in file 01-net.i2p.sam.SAMBridge-clients.config located in your home directory at: .i2p/clients.config.d/ (your home directory on Linux: /home/username)
  5. Install Rust
    sudo apt update
    sudo apt upgrade
    curl https://sh.rustup.rs -sSf | sh
    
  6. Restart terminal
  7. Verify Rust installed
     rustc --version
    
  8. Install build essentials
    sudo apt install build-essential
    
  9. install crate
    cargo install i2p_client
    

Demo

Utilities

  1. CLI Help:

    ~/.cargo/bin/i2p_client
    
  2. Generate Pub/Priv keys:

    ~/.cargo/bin/i2p_client gen --sig_type EDDSA_SHA512_ED25519
    

Send/Receive

  1. Receiver:
    ~/.cargo/bin/i2p_client --alias Bob receive
    
  2. Sender:
    ~/.cargo/bin/i2p_client --alias Alice send --message 'hello Bob, sincerely Alice' --to [Bob's local destination here - the one with AAAA on end - size=516]
    

Note: Initial session creation can take a few minutes waiting on tunnels; 1st message may not get through, try another

Commit count: 69

cargo fmt