[pulseaudio-discuss] [announce] Rust bindings!

Arun Raghavan arun at arunraghavan.net
Wed Jun 13 13:27:07 UTC 2018



On Wed, 13 Jun 2018, at 12:59 PM, Tanu Kaskinen wrote:
> On Tue, 2018-06-12 at 19:03 +0100, jnqnfe at gmail.com wrote:
> > On Tue, 2018-06-12 at 11:22 +0300, Tanu Kaskinen wrote:
> > > On Mon, 2018-05-28 at 19:37 +0100, jnqnfe at gmail.com wrote:
> > > > Hi everyone!
> > > > 
> > > > Back in February I released 'binding' and 'sys' crates for using
> > > > pulseaudio from Rust code. I had intended to make an announcement
> > > > here
> > > > at the time, but I failed to do so, so I'm doing it now.
> > > > 
> > > > fyi, the 'sys' crates provide a simple description of the C
> > > > interface;
> > > > The 'binding' crates take this further, providing a cleaner/safer
> > > > Rust
> > > > interface.
> > > > 
> > > > I have provided separate crates for each PA system library (per
> > > > Rust
> > > > guidelines for 'sys' crates), thus totalling six in all:
> > > > 
> > > > [binding crates]
> > > >  - libpulse-binding: https://crates.io/crates/libpulse-binding
> > > >  - libpulse-simple-binding: https://crates.io/crates/libpulse-simpl
> > > > e-bi
> > > > nding
> > > >  - libpulse-mainloop-glib-binding: https://crates.io/crates/libpuls
> > > > e-gl
> > > > ib-binding
> > > > [sys crates]
> > > >  - libpulse-sys: https://crates.io/crates/libpulse-sys
> > > >  - libpulse-simple-sys: https://crates.io/crates/libpulse-simple-sy
> > > > s
> > > >  - libpulse-mainloop-glib-sys: https://crates.io/crates/libpulse-ma
> > > > inlo
> > > > op-glib-sys
> > > > 
> > > > The 'binding' crates include plenty of documentation (taken from
> > > > the C
> > > > API). This can be built locally of course (cargo doc), but is also
> > > > available online at docs.rs, example: https://docs.rs/libpulse-bind
> > > > ing/
> > > > 
> > > > Long term I hope that the owners of the PA project itself would
> > > > like to
> > > > take over ownership and maintenance. Even longer term hopefully we
> > > > will
> > > > see PA itself converting to Rust - fyi the PA projects has my full
> > > > consent to use this work of mine in converting PA itself.
> > > 
> > > Cool, thanks for the bindings! I'm afraid you'll have to keep
> > > maintaining the bindings yourself for the foreseeable future - I
> > > don't
> > > really want to take more work for myself at this point (I can of
> > > course
> > > only talk only for myself, but I don't expect the other maintainers
> > > to
> > > be enthusiastically adopting the bindings either). That said,
> > > converting PA to Rust might very well be a good idea. From what I've
> > > heard about combining Rust with C, such conversion could be done
> > > gradually.
> > 
> > Ok no problem :)
> > 
> > I am very glad to hear that you are open to a Rust conversion. I'm very
> > busy at the moment, but I have given a little thought to it over the
> > past few days; perhaps I will try to tackle it at some point.
> 
> No hurry :) Note that I can't alone make the decision to start
> converting to Rust. Not everyone might have as good perception of the
> language as me (and that perception isn't based on actually trying to
> use the language), and not everyone might want to learn it. Arun and
> Georg, how do you feel about the prospect of gradually converting the
> codebase to Rust some day?

I'm 100% behind it. :)

-- Arun


More information about the pulseaudio-discuss mailing list