user47827: I know LDK (rust-lightning) has been doing a lot of language bindings work to support various languages (C, Go, Java, Swift etc).
c-lightning is now working on language bindings itself so you can build say c-lightning plugins in Rust.
How does this language bindings work compare to the approach LDK has been taking?

user47827: This was answered during a c-lightning developer call on January 10th 2022. The transcript is anonymized by default.

There we are talking about different bindings. These are the bindings that we use for our RPC interface. I think when rust-lightning is talking about bindings they are talking much more about having a C API that they can compile into their own apps. Whereas this is inter daemon communication or daemon with plugin or daemon with front end. The C API that rust-lightning is building is most likely to be consumed by a binary directly. For example if you are building a Java application or an Android application you will most likely be using GNI to talk to rust-lightning instead of some other Java code. I think they are referring to that. Whereas this is mostly inter daemon and inter process communication. We have a connection or a file descriptor where we write stuff out.


47827: <p>I know <a href="https://github.com/lightningdevkit" rel="nofollow noreferrer">LDK</a> (rust-lightning) has been doing a lot of language bindings work to support various languages (C, Go, Java, Swift etc).</p>
<p>c-lightning is now <a href="https://github.com/ElementsProject/lightning/pull/5010" rel="nofollow noreferrer">working</a> on language bindings itself so you can build say c-lightning plugins in Rust.</p>
<p>How does this language bindings work compare to the approach LDK has been taking?</p>
 47827: <p>This was answered during a c-lightning developer call on January 10th 2022. The <a href="https://github.com/bitcointranscripts/bitcointranscripts/blob/master/c-lightning/2022-01-10-developer-call.md" rel="nofollow noreferrer">transcript</a> is anonymized by default.</p>
<blockquote>
<p>There we are talking about different bindings. These are the bindings that we use for our RPC interface. I think when rust-lightning is talking about bindings they are talking much more about having a C API that they can compile into their own apps. Whereas this is inter daemon communication or daemon with plugin or daemon with front end. The C API that rust-lightning is building is most likely to be consumed by a binary directly. For example if you are building a Java application or an Android application you will most likely be using GNI to talk to rust-lightning instead of some other Java code. I think they are referring to that. Whereas this is mostly inter daemon and inter process communication. We have a connection or a file descriptor where we write stuff out.</p>
</blockquote>
