Open mitchmindtree opened 4 years ago
* Is the ideal goal for `cubeb-rs` to eventually become a pure-Rust (down to the platform API) port and replacement to the `cubeb` C++ library for eventual use within gecko?
I guess the answer is yes, at least on the major platforms like Windows, Mac OSX, and Linux. But it takes time to convert the cubeb implementation from C/C++ to Rust on different platforms. @kinetiknz might be a better person to answer this.
* Are you interested in seeing `cubeb-rs` used in projects unrelated to the rest of the Mozilla ecosystem? E.g. as the audio backend for a creative coding framework like nannou? Do you have any interest in non-Mozilla devs contributing
IIRC, the main cubeb project is currently used as part of the dolphin project, which is unrelated to the gecko engine.
In addition to what Chun-Min said:
Are you interested in seeing
cubeb-rs
used in projects unrelated to the rest of the Mozilla ecosystem?
Certainly. As I said during the meetup I'm using it myself for other things (personal projects). We know various other people and projects use it as well.
E.g. as the audio backend for a creative coding framework like nannou?
cubeb
will work very well for this. In particular, low-latency input/output with tight latency reporting for all platforms allows for very nice audio/visual synchronization.
Do you have any interest in non-Mozilla devs contributing?
We've been accepting patches to cubeb
from non-Mozilla devs more or less since it's creation. Whether it is new backends, new features for existing backends, bug fixes, build fixes for configuration different from what we have/the CI has, etc. I don't expect this to be different for the rust bits of cubeb
.
Note that you can see that it's all a bit of a mess right now, with various repos under the developer's account, etc. This is going to be consolidated in a way that makes more sense, hopefully in the short term.
Chun-Min and Paul covered most of it, I think. The plan is for cubeb-rs to eventually be pure Rust down to the platform APIs. The existing Rust backends currently live at https://github.com/djg/cubeb-pulse-rs and https://github.com/ChunMinChang/cubeb-coreaudio-rs. I'll be rewriting the WASAPI backend soon, starting in a couple of months. Also, I'm working on making https://github.com/mozilla/cubeb the master repository for all cubeb-related projects in the very near future.
Contributions and use of cubeb outside of Gecko is very welcome. You can find us on Matrix in https://chat.mozilla.org/#/room/#media:mozilla.org if you'd like to chat in realtime (timezones permitting).
Thank you all for the quick response! This all sounds really promising, it certainly seems like we share the same set of goals.
I think the first area in which I could start helping significantly might be repo accessibility and documentation. I would be happy to begin submitting PRs for README.md
s, CI, examples
and API documentation. This might be a nice way for me to familiarise with the code-base while also making the project friendlier to newcomers.
@kinetiknz I might start opening issues/PRs at this repository in the meantime, but I'm happy to move them over to mozilla/cubeb once you make the transfer!
That sounds great, thank you!
I wrote djg/cubeb-rs as an experiment and mainly for djg/audioipc-2 to talk to cubeb. There's a lot of language barrier crossing that currently happens:
audioipc (Rust) <=> cubeb-rs (Rust) <=> cubeb (C++) <=> cubeb-pulse-rs (Rust) <=> pulseaudio (C)
Hi folks! I was made aware of the
cubeb
andcubeb-rs
projects by @padenot after his excellent WebAudio talk at Native Instruments last night. It's exciting to see the Mozilla cross platform audio backend peeking into Rust, I only wish I came across the project sooner.I am currently one of the main maintainers/developers of the CPAL project, a project that seems to have very similar goals to cubeb though is far less mature and less battle-tested. I am also one of the founders of nannou, a creative coding framework for Rust. We recently received a grant to work on CPAL and improve the state of cross-platform audio in Rust. We've made a few improvements already over the past month or two, but even after the rest of the work we currently have planned we would still be a long way from the exhaustive set of features and backends that
cubeb
currently supports.While I think CPAL is making decent progress,
cubeb
with its experienced team and Mozilla backing has piqued my interest, and I wonder if our efforts would be better combined incubeb-rs
.This brings me to some questions:
cubeb-rs
to eventually become a pure-Rust (down to the platform API) port and replacement to thecubeb
C++ library for eventual use within gecko? Or is the intention forcubeb-rs
to remain as a set of bindings to the C++cubeb
library?cubeb-rs
used in projects unrelated to the rest of the Mozilla ecosystem? E.g. as the audio backend for a creative coding framework like nannou? Do you have any interest in non-Mozilla devs contributing?Thanks for your time!