ghamza-jd / jarust Goto Github PK
View Code? Open in Web Editor NEWA janus client SDK in Rust ๐ฆ
A janus client SDK in Rust ๐ฆ
An issue to track the development of the Audio Bridge Plugin. Some features are omitted and could be added later on (for example, play_file
).
Janus docs: https://janus.conf.meetecho.com/docs/audiobridge.html
Capture the task handle and cancel it when necessary.
Current we have an abstract transport, which abstract the network transport and have a very generic functionality like send
Here we want to abstract the janus specific transport, so for example we can decorate the message on the transport rather than on the connection. Also, this will help in decoupling the JaSession and JaHandle from JaConnection. And the transaction generation can be their, so JaConnection can have a single responsibility.
currently jaconnectio, jasesseion, jahandle, and jarouter exposes their inners. We should encapsulate them
In addition to the unit tests and integration tests, add e2e tests that spawns a janus server and test the library
Add a request timeout and close pending transactions when timing out.
Add a retry mechanism that requires several retrials and several x amount of units (x seconds, or x milliseconds).
Replace the bounded channels with unbounded ones.
Later on, if we want to support bounded channels we can make it correct rather than the current implementation
The transaction manager only closes transactions on particular cases.
But other cases like a lost message will keep the transaction pending.
Propositions:
std::sync::Mutex
over tokio::sync::Mutex
when possible (when we don't hold the mutex between await points)server_info
, detach
, ...)Video room docs: https://janus.conf.meetecho.com/docs/videoroom
Inner connection is being leaked, remove the pub
Arbitrary channel sizes are spread across the codebase. It is better to make them parameterized and leave it to the client to decide. Or at least put some rules in place.
Example:
mpsc::channel(10);
mpsc::channel(100);
mpsc::channel(32);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.