https://github.com/mosure/bevy_r_place
p2p r/place clone
https://github.com/mosure/bevy_r_place
bevy canvas libp2p native quic web webrtc
Last synced: 8 months ago
JSON representation
p2p r/place clone
- Host: GitHub
- URL: https://github.com/mosure/bevy_r_place
- Owner: mosure
- License: apache-2.0
- Created: 2025-01-20T17:13:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-01T20:26:49.000Z (over 1 year ago)
- Last Synced: 2025-06-18T21:15:46.517Z (about 1 year ago)
- Topics: bevy, canvas, libp2p, native, quic, web, webrtc
- Language: Rust
- Homepage: https://mosure.github.io/bevy_r_place?mainnet=true
- Size: 46.6 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# bevy_r_place 🖼️
[](https://raw.githubusercontent.com/mosure/bevy_r_place/main/LICENSE-MIT)
[](https://crates.io/crates/bevy_r_place)
p2p r/place clone, view the [web demo on mainnet](https://mosure.github.io/bevy_r_place?mainnet=true)

## features
- [X] local libp2p
- [X] headless bootstrap node
- [X] default mainnet and network selection
- [X] published image
- [X] LAN auto-discovery
- [ ] prometheus/opentelemetry metrics /w grafana frontend
- [ ] swarm visualization
- [ ] solana implementation
## native client
```bash
git clone https://github.com/mosure/bevy_r_place
cd bevy_r_place
cargo run
```
## host a node
new nodes will automatically connect to mainnet, to host your own network, specify `--bootstrap-node` flag
```bash
docker run ghcr.io/mosure/bevy_r_place:main
```
## metrics
### opentelemetry
see: https://libp2p.github.io/rust-libp2p/metrics_example/index.html
> TODO: native client `metrics` feature flag
### graph visualization
> TODO: swarm topology viewer
## TLS
required for proper WSS and WebRTC function
### local setup
- `mkcert -install`
- `mkcert 127.0.0.1`
- `openssl x509 -in ./127.0.0.1.pem -outform der -out ./certs/certificate.der`
- `openssl rsa -in ./127.0.0.1-key.pem -outform der -out ./certs/private_key.der`
- `cargo run -- --bootstrap --headless --certificate-chain-path ./certs/certificate.der --private-key-path ./certs/private_key.der --webrtc-pem-certificate-path ./certs/webrtc.pem`