Skip to content

backkem/go-lp2p

Repository files navigation

Local Peer-to-Peer API playground

This repo contains experiments to help inform the design of the Local Peer-to-Peer API proposal. Do not use any of this code yet, it not final, tested nor secure.

Examples

Check out the examples or run them on Replit:

Run on Replit

Open points

  • LP2P API
    • Initial implementation & example.
    • User agent PSK present & consume
    • DataChannel API & examples
    • WebTransport API & examples
    • User agent peer listing & selection
  • OSP(C)
    • discovery, listen & dial
    • data-channel protocol extension
    • WebTransport Protocol interaction
      • Over OSP connection
      • Over dedicated QUIC connection
    • implement actual PAKE algorithm
  • Various
    • Abstract LP2P API from underlying transport (to allow others like Wi-Fi Direct)
    • Lots of cleanup

Coding conventions

The lp2p package augments a web API and favors similarity to the web API over idiomatic Go. Note that async functions are implemented as blocking. The other packages such as ospc should be idiomatic Go.

About

Local Peer-to-Peer API playground

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published