Skip to content
/ mshrt Public

a mesh router written in Rust inspired by yggdrasil, but intended to be extensible to use cases byond an internet overlay network

Notifications You must be signed in to change notification settings

sharph/mshrt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mshrt

meshrt is a mesh router inspired by yggdrasil, but intended to be extensible to use cases beyond an internet overlay network.

Features

  • Connect to other nodes via UDP
  • Connect to other nodes via WebSocket
  • Post quantum confidentiality (resistant to store-now-decrypt-later) via ML-KEM
  • tun interface with mesh routable IPv6 address derived from node's public key

Usage

mshrt 0.1.0
Sharp Hall <sharp@sharphall.org>

USAGE:
    mshrt [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config <config>                        Sets a custom config file
    -C, --ws_connect <connect_addresses>         A comma separated list of addresses to connect to
    -l, --ws_listen <listen_addresses>           A comma separated list of bind addresses
    -p, --private_key <private_key>              base64 encoded private key
        --tun <tun>                              Run tun interface
    -U, --udp_connect <udp_connect_addresses>    A comma separated list of addresses to connect to
    -u, --udp_listen <udp_listen_address>        The UDP address to bind to

Example

Machine A (1.2.3.4)

mshrt -u 0.0.0.0:1111 --tun true

Machine B (2.3.4.5)

mshrt -u 0.0.0.0:1111 -U 1.2.3.4:1111 --tun true

Machine C (3.4.5.6)

mshrt -u 0.0.0.0 -U 2.3.4.5:1111 --tun true

Machine C should now be able to communicate to Machine A over the IPv6 address it prints on startup. It will also display a private key so that the machine's identity can be persisted across executions with --private_key <private_key>.

Future plans

  • Support really big networks through sharding and subset networks
  • Better link monitoring and route choosing
  • Connect to other nodes via meshtastic?

About

a mesh router written in Rust inspired by yggdrasil, but intended to be extensible to use cases byond an internet overlay network

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages