Rust Audio

LV2 crate direction and management

I think it is pretty obvious that there is interest from this community in a Rust LV2 crate, at least to be able to create safe LV2 plugins in Rust, and also maybe in the mid/long-term as a backend for an API-independent plugin interface.
Therefore, I’m making this topic to discuss how we should integrate the development of this crate into this community. Feel free to ask more questions than the ones I’ve raised here!

Note this is not a topic to discuss the LV2 crate’s implementation or design decisions however, I’ll make another topic for that. :slight_smile:

Maintainers

While I have a bunch of ideas for the implementation of the LV2 crate (and designing stuff is what I really like to do), I don’t want to be the only maintainer. First because of the bus factor issue, and also because I cannot be always available to maintain the project, mainly due to my job and other real-life issues.

Obviously I first suggest @Janonard to join in as a co-maintainer, since he already made his initial implementation of an LV2. But if somebody else wants to step up and join, feel free! :smiley:

Source code hosting

I really want this crate to be a community effort in the middle-to-long-run, so I think it would make sense for it to be hosted under the Rust-DSP github group, alongside the vst crate for instance.
Are there any oppositions to this idea?

LV2 Crate on crates.io

The last issue I wanted to tackle is the fact that, as @Janonard already mentioned in his reddit post, there is already the lv2 crate on crates.io. However it is not maintained anymore, and it seems to not be very advanced (the creator themselves presents it as a “beginner’s programming exercise”).

Perhaps we could contact the author and ask them to give the crate’s ownership to this group?
Otherwise we would have to name the crate lv2rs, which I believe is a bit of an antipattern in crate naming (and looks quite ugly in my opinion), though it isn’t that big of a deal in the end.

1 Like

It looks like I’m in a similar situation like you; I too have to much work around to be the only maintainer, but I would gladly share that task with you!

As with the source code hosting, we could simply move my code over to the group, that would be no problem at all.

I’m also with you regarding the lv2 crate, we should definitely contact the maintainer and ask for the name. This is especially important because people will search for “lv2” on crates.io, see that it does not fit their needs and think that LV2 for Rust is not done yet. Who should contact the maintainer?

1 Like

Maybe I should express or only present the approach I used to get lv2rs started: The general goal is to “translate” the official LV2 book to Rust with the individual milestones being the chapters of the book. lv2rs currently supports the first three examples and the current state of the translation is hosted on a GitHub page.

Should we stick with that goal? This would mean that the next version would only include the Time, followed by a version containing UI, Patch, State, Worker, Log and Parameters.

1 Like

I suppose how we handle the merging (moving the existing repo or making a new one) depends on how much of each prototype we end up using, though this discussion is better handled here I think.

I like using the official LV2 book as early milestones for the development, though I don’t think it is a good idea to release intermediate versions on crates.io, as considering the very early/draft state of the crate, everything is pretty much guaranteed to change and break.

I’ll shoot them an email soon. :slight_smile:

2 Likes

I sent them an email asking whether they would be open to give us the ownership of the crate, here is their answer (transferred here with their approval):

Hi!

Yes, we are open to that, but I would like to wait and see how your
project develops.

Currently I see a github repo “lv2rs” with its first commit issued in
February 2019. As far as I can see, the project has exactly one contributor.

All of this looks very promising. However, before handing over any
ownership, we would wait for a more substantial community
effort/adoption of your project.

Does this sound reasonable? What do you think?

I just told them this is definitely reasonable, considering we don’t need to make crates.io releases while we’re prototyping and discussing initial designs. But in the end, it should be all good to publish the root crate under the lv2 name. :slight_smile:

3 Likes