go-lp2p

module
v0.0.0-...-e5d8244 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: MIT

README

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.

Directories

Path Synopsis
examples
Package lp2p provides an implementation of the Local Peer-To-Peer API.
Package lp2p provides an implementation of the Local Peer-To-Peer API.
internal/useragent
Package ua bundles the user agent logic.
Package ua bundles the user agent logic.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL