<div dir="auto"><div dir="auto" style="font-family:sans-serif;font-size:18.048px">Sorry there are two skipped messages below.</div><div dir="auto" style="font-family:sans-serif;font-size:18.048px"><br></div><span style="font-family:sans-serif;font-size:18.048px">I meant the functions like "atom-header-begin" and such, can't remember the exact name at the moment. I forgot indeed that even those are header-only, so there is nothing to link against. </span><div dir="auto" style="font-family:sans-serif;font-size:18.048px"><br></div><div dir="auto" style="font-family:sans-serif;font-size:18.048px">So this "header-only collection of functions" (library?) is not part of LV2 proper? I.e. those don't need to be translated to Rust, right? Only the ones implemented by the plugin and called by the host? I think it makes more sense now.<div dir="auto"><br></div><div dir="auto">I'll keep tinkering around and get back in a couple of months. </div><div dir="auto"><br></div><div dir="auto">Thanks to all for the help, I learned something.</div><font color="#888888"></font><div dir="auto"><br></div><div dir="auto"><font color="#888888">Stefan</font></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Dec 5, 2016 22:35, "David Robillard" <<a href="mailto:d@drobilla.net">d@drobilla.net</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, 2016-12-05 at 09:19 +0700, Stefan Riha wrote:<br>
> Wow, I guess that would be great. I could imagine that there is a general<br>
> trend to safety in the future for low level languages. I recently read<br>
> something about efforts to create a safer language very close to C, but<br>
> can't find the link. Anyway, all of those would probably benefit.<br>
><br>
> From the comments on SO I learned that it's legitimate, apparently even<br>
> desirable to provide a rust library that "exposes the raw C API". I guess<br>
> the strategy is to provide something low level every Rust developer can<br>
> agree upon, and leveraging that to create high level APIs in a second<br>
> stage. There can then be multiple high level APIs, perhaps focusing on<br>
> different use cases or following different opinions on how it should look<br>
> like. The point is all of them can use the same low level library, which<br>
> also takes care of pulling in the underlying C dependencies.<br>
><br>
> This partly resolved my question. I should focus on low level, it's doable<br>
> for a beginner and suitable for me, basically just copying.<br>
><br>
> Speaking of underlying C dependencies:<br>
> I probably should make an actual *wrapper* to the LV2 library. For now I<br>
> re-wrote the functions, don't actually link to the library. If i remember<br>
> correctly the C-LV2 is not even a dependency for the Rust-LV2. It's<br>
> tempting not to wrap, because most of the functions are so short (I only<br>
> implemented the most essential ones though). Wouldn't it be better to have<br>
> a dependency, perhaps to require a specific C-LV2 version, so Rust users<br>
> know which functionality they can expect.<br>
><br>
> Do you have an opinion on that?<br>
<br>
I'm not sure what library you're referring to.  There is no "LV2<br>
library".  The headers (and there are only headers in LV2) just define<br>
the API that the plugin uses.<br>
<br>
There's a bunch of libraries for hosts to do the discovery and whatnot,<br>
but that's a different side of the problem.<br>
<br>
> Sorry if I'm hijacking, these are really rather basic Rust questions I<br>
> suppose.<br>
<br>
You can't hijack off list ;)<br>
<br>
--<br>
dr<br>
<br>
<br>
</blockquote></div></div>