mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-12 16:55:37 +02:00
## Description Whew, some stuff is still not re-implemented, but it's working! Rabbit's gonna explode with the amount of changes I reckon 😅 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a peer-to-peer relay system using libp2p with enhanced stream forwarding, room state synchronization, and mDNS peer discovery. - Added decentralized room and participant management, metrics publishing, and safe, size-limited, concurrent message streaming with robust framing and callback dispatching. - Implemented asynchronous, callback-driven message handling over custom libp2p streams replacing WebSocket signaling. - **Improvements** - Migrated signaling and stream protocols from WebSocket to libp2p, improving reliability and scalability. - Simplified configuration and environment variables, removing deprecated flags and adding persistent data support. - Enhanced logging, error handling, and connection management for better observability and robustness. - Refined RTP header extension registration and NAT IP handling for improved WebRTC performance. - **Bug Fixes** - Improved ICE candidate buffering and SDP negotiation in WebRTC connections. - Fixed NAT IP and UDP port range configuration issues. - **Refactor** - Modularized codebase, reorganized relay and server logic, and removed deprecated WebSocket-based components. - Streamlined message structures, removed obsolete enums and message types, and simplified SafeMap concurrency. - Replaced WebSocket signaling with libp2p stream protocols in server and relay components. - **Chores** - Updated and cleaned dependencies across Go, Rust, and JavaScript packages. - Added `.gitignore` for persistent data directory in relay package. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com> Co-authored-by: Philipp Neumann <3daquawolf@gmail.com>
117 lines
5.2 KiB
Modula-2
117 lines
5.2 KiB
Modula-2
module relay
|
|
|
|
go 1.24
|
|
|
|
require (
|
|
github.com/libp2p/go-libp2p v0.41.1
|
|
github.com/libp2p/go-libp2p-pubsub v0.13.1
|
|
github.com/libp2p/go-reuseport v0.4.0
|
|
github.com/multiformats/go-multiaddr v0.15.0
|
|
github.com/oklog/ulid/v2 v2.1.1
|
|
github.com/pion/ice/v4 v4.0.10
|
|
github.com/pion/interceptor v0.1.38
|
|
github.com/pion/rtp v1.8.15
|
|
github.com/pion/webrtc/v4 v4.1.1
|
|
google.golang.org/protobuf v1.36.6
|
|
)
|
|
|
|
require (
|
|
github.com/benbjohnson/clock v1.3.5 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/containerd/cgroups v1.1.0 // indirect
|
|
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
|
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
|
|
github.com/docker/go-units v0.5.0 // indirect
|
|
github.com/elastic/gosigar v0.14.3 // indirect
|
|
github.com/filecoin-project/go-clock v0.1.0 // indirect
|
|
github.com/flynn/noise v1.1.0 // indirect
|
|
github.com/francoispqt/gojay v1.2.13 // indirect
|
|
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
|
|
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/google/gopacket v1.1.19 // indirect
|
|
github.com/google/pprof v0.0.0-20250501235452-c0086092b71a // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/websocket v1.5.3 // indirect
|
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
|
github.com/huin/goupnp v1.3.0 // indirect
|
|
github.com/ipfs/go-cid v0.5.0 // indirect
|
|
github.com/ipfs/go-log/v2 v2.6.0 // indirect
|
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
|
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
|
|
github.com/koron/go-ssdp v0.0.6 // indirect
|
|
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
|
|
github.com/libp2p/go-flow-metrics v0.3.0 // indirect
|
|
github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
|
|
github.com/libp2p/go-msgio v0.3.0 // indirect
|
|
github.com/libp2p/go-netroute v0.2.2 // indirect
|
|
github.com/libp2p/go-yamux/v5 v5.0.0 // indirect
|
|
github.com/libp2p/zeroconf/v2 v2.2.0 // indirect
|
|
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/miekg/dns v1.1.66 // indirect
|
|
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
|
|
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
|
|
github.com/minio/sha256-simd v1.0.1 // indirect
|
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
|
github.com/multiformats/go-base32 v0.1.0 // indirect
|
|
github.com/multiformats/go-base36 v0.2.0 // indirect
|
|
github.com/multiformats/go-multiaddr-dns v0.4.1 // indirect
|
|
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
|
|
github.com/multiformats/go-multibase v0.2.0 // indirect
|
|
github.com/multiformats/go-multicodec v0.9.0 // indirect
|
|
github.com/multiformats/go-multihash v0.2.3 // indirect
|
|
github.com/multiformats/go-multistream v0.6.0 // indirect
|
|
github.com/multiformats/go-varint v0.0.7 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/onsi/ginkgo/v2 v2.23.4 // indirect
|
|
github.com/opencontainers/runtime-spec v1.2.1 // indirect
|
|
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
|
|
github.com/pion/datachannel v1.5.10 // indirect
|
|
github.com/pion/dtls/v2 v2.2.12 // indirect
|
|
github.com/pion/dtls/v3 v3.0.6 // indirect
|
|
github.com/pion/logging v0.2.3 // indirect
|
|
github.com/pion/mdns/v2 v2.0.7 // indirect
|
|
github.com/pion/randutil v0.1.0 // indirect
|
|
github.com/pion/rtcp v1.2.15 // indirect
|
|
github.com/pion/sctp v1.8.39 // indirect
|
|
github.com/pion/sdp/v3 v3.0.13 // indirect
|
|
github.com/pion/srtp/v3 v3.0.4 // indirect
|
|
github.com/pion/stun v0.6.1 // indirect
|
|
github.com/pion/stun/v3 v3.0.0 // indirect
|
|
github.com/pion/transport/v2 v2.2.10 // indirect
|
|
github.com/pion/transport/v3 v3.0.7 // indirect
|
|
github.com/pion/turn/v4 v4.0.2 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/prometheus/client_golang v1.22.0 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.64.0 // indirect
|
|
github.com/prometheus/procfs v0.16.1 // indirect
|
|
github.com/quic-go/qpack v0.5.1 // indirect
|
|
github.com/quic-go/quic-go v0.52.0 // indirect
|
|
github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66 // indirect
|
|
github.com/raulk/go-watchdog v1.3.0 // indirect
|
|
github.com/rogpeppe/go-internal v1.13.1 // indirect
|
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
|
github.com/wlynxg/anet v0.0.5 // indirect
|
|
go.uber.org/automaxprocs v1.6.0 // indirect
|
|
go.uber.org/dig v1.19.0 // indirect
|
|
go.uber.org/fx v1.24.0 // indirect
|
|
go.uber.org/mock v0.5.2 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go.uber.org/zap v1.27.0 // indirect
|
|
golang.org/x/crypto v0.38.0 // indirect
|
|
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
|
|
golang.org/x/mod v0.24.0 // indirect
|
|
golang.org/x/net v0.40.0 // indirect
|
|
golang.org/x/sync v0.14.0 // indirect
|
|
golang.org/x/sys v0.33.0 // indirect
|
|
golang.org/x/text v0.25.0 // indirect
|
|
golang.org/x/tools v0.33.0 // indirect
|
|
lukechampine.com/blake3 v1.4.1 // indirect
|
|
)
|