├── .github └── workflows │ └── rust.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── crates ├── native │ ├── Cargo.toml │ └── src │ │ ├── lib.rs │ │ └── main.rs ├── protocol │ ├── Cargo.toml │ ├── build.rs │ ├── docs │ │ └── rfcs │ │ │ └── 2023-decentralized-fast-pubsub.md │ └── src │ │ ├── addr.rs │ │ ├── lib.rs │ │ ├── network.rs │ │ ├── protobuf │ │ └── message.proto │ │ ├── pubsub.rs │ │ ├── pubsub │ │ └── channel.rs │ │ ├── router.rs │ │ ├── router │ │ ├── channel.rs │ │ ├── metric.rs │ │ └── path.rs │ │ └── runner.rs └── web │ ├── .gitignore │ ├── Cargo.toml │ ├── Trunk.toml │ ├── index.html │ ├── index.scss │ └── src │ ├── lib.rs │ └── main.rs └── docs └── imgs └── network.excalidraw.png /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["crates/*"] 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/README.md -------------------------------------------------------------------------------- /crates/native/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/native/Cargo.toml -------------------------------------------------------------------------------- /crates/native/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/native/src/lib.rs -------------------------------------------------------------------------------- /crates/native/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() {} 2 | -------------------------------------------------------------------------------- /crates/protocol/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/Cargo.toml -------------------------------------------------------------------------------- /crates/protocol/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/build.rs -------------------------------------------------------------------------------- /crates/protocol/docs/rfcs/2023-decentralized-fast-pubsub.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/docs/rfcs/2023-decentralized-fast-pubsub.md -------------------------------------------------------------------------------- /crates/protocol/src/addr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/addr.rs -------------------------------------------------------------------------------- /crates/protocol/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/lib.rs -------------------------------------------------------------------------------- /crates/protocol/src/network.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/network.rs -------------------------------------------------------------------------------- /crates/protocol/src/protobuf/message.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/protobuf/message.proto -------------------------------------------------------------------------------- /crates/protocol/src/pubsub.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/pubsub.rs -------------------------------------------------------------------------------- /crates/protocol/src/pubsub/channel.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/pubsub/channel.rs -------------------------------------------------------------------------------- /crates/protocol/src/router.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/router.rs -------------------------------------------------------------------------------- /crates/protocol/src/router/channel.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/router/channel.rs -------------------------------------------------------------------------------- /crates/protocol/src/router/metric.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/router/metric.rs -------------------------------------------------------------------------------- /crates/protocol/src/router/path.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/router/path.rs -------------------------------------------------------------------------------- /crates/protocol/src/runner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/protocol/src/runner.rs -------------------------------------------------------------------------------- /crates/web/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /crates/web/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/Cargo.toml -------------------------------------------------------------------------------- /crates/web/Trunk.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/Trunk.toml -------------------------------------------------------------------------------- /crates/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/index.html -------------------------------------------------------------------------------- /crates/web/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/index.scss -------------------------------------------------------------------------------- /crates/web/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/src/lib.rs -------------------------------------------------------------------------------- /crates/web/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/crates/web/src/main.rs -------------------------------------------------------------------------------- /docs/imgs/network.excalidraw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giangndm/decentralized-p2p-streaming/HEAD/docs/imgs/network.excalidraw.png --------------------------------------------------------------------------------