27 releases (6 breaking)

Uses old Rust 2015

0.12.2 Oct 16, 2019
0.11.5 Sep 20, 2019
0.9.10 Jul 26, 2019
0.8.6 Feb 25, 2019
0.2.0 Aug 10, 2018

#12 in #nat-traversal

25 downloads per month
Used in 2 crates

MIT license

425KB
11K SLoC

Build Status

carrier is a generic secure message system for IoT

read a intro here: https://devguard.io/intro.html

  • based on the NOISE protocol framework
  • with http2 like semantics based on the QUIC transport spec
  • connect to any device using just its Ed25519 public id
  • peer to peer with assisted nat traversal
  • certificate chains to support sane human to many many devices authorizations
  • mqtt like pub/sub over anonymous encrypted shadows

features:

  • NOISE
  • Ed25519 as identity
  • async
  • hash routing
  • keepalives, timeouts and rekeying
  • nat traversal
  • udp
  • cert chains
  • high level channels
  • GRPC
  • pty
  • stream shell executable from archon
  • cli
  • ebpf routing
  • staking
  • self-updating
  • shadow broker
  • pubsub

testing lossy networks

sudo ifconfig lo:1 10.0.0.1/8

#add delay (this crashes my kernel)
sudo tc qdisc add dev lo:1 root netem delay 100ms 20ms distribution normal

#add loss
sudo tc qdisc add dev lo:1 root netem loss 30%


#deutsche bahn wifi
sudo tc qdisc add dev lo:1 root netem loss 30% delay 100ms 300ms distribution normal




#delete qc rules
sudo tc qdisc del dev lo:1 root

the wireshark dissector can be used with wireshark -X lua_script:wireshark.lua

Dependencies

~16–27MB
~433K SLoC