Open ROBERT-MCDOWELL opened 1 year ago
do you think your project can be compiled in wasm to be used in browsers?
Currently, this repo has dependancies on bytes
, byteorder
(from amf-rs
).
If you need to compile this in wasm
, make sure all of dependancies should be no_std
.
byteorder
support it (Reference). so, need to apply to amf-rs
But, problem is bytes
. that is not support no_std
. so for build this library for wasm, need to replace bytes
by no_std
library for handling bytes (for example, serde_bytes?)
it would be very nice to implement rtmfp too
When I searched to find topic. I interested to RTMFP
too.
but, I thought it has more complexity.
for example, handling NAT hole punching or flow control.
I've started this project as simple, easy explain for understand streaming background.
If implement rtmfp
(UDP-based P2P protocol), need to implement flow control and congestion control.
(although it exist on RTMP protocol, that not captured in real-life usage)
My main objective is readable simple implementation with some writing blog post.
even though I stopped posting for a long time.
- currently i thought
rtmp-ingress
should be rewrite, due to too monolithic and bad architecture for production(not tuned for storages).
I've experienced UDP-based P2P contents serving protocol project in 8 years ago. at that time, I've come to realize it needs more deeper explain require like computer network lectures.
As I think, For in-depth knowledge required projects must comes with requirements and constraints. but, as a side (toy) project, it is very weired and just seems like code golf.
WebRTC implements QUICK protocol which is UDP and very close to RTMFP. dunno if RTMFP can be built on top of QUICK or webtransport (HTTP3) can be also a solution) but for now low level UDP/TCP socket are not possible in browsers unless to bypass the sandbox using a special config approved by the client. webtransport is not p2p and only client-server though. however my skills in WASM are limited but what I know is there is various way to modify the sandbox to allow some feature to run in browsers.
btw, you are very welcome to join the Ruffle project which is Flash plugin in Wasm Rust running pretty well after 3 years of dev, but still needs 10% API for AVM1 to code and 40% AVM2, including network and streaming classes. https://github.com/ruffle-rs/ruffle
Hi, it would be very nice to implement rtmfp too, I can provide some rtmfp C++ or python integration if you wish. do you think your project can be compiled in wasm to be used in browsers?