commando.html5/node_modules/lnsocket/README.md

83 lines
2 KiB
Markdown
Raw Normal View History

2023-03-10 17:36:16 +00:00
# lnsocket
A simple C library for sending messages over the lightning network
Thanks to Rusty and the clightning project for much of this code, I have
adapted it to be more library friendly.
## Motivation
I wanted a way to send custom messages to my lightning node, such as RPC.
Building this as a simple C library will allow you to speak the lightning
network in native applications, like on mobile.
## Dependencies
You'll need `libtool`, `autoconf`, and `automake` for the `libsodium` &
`secp256k1` submodules, but otherwise there are no dependencies.
You'll need `emscripten` for the `wasm` build.
## Building
$ make
### iOS
$ make ios
This will build `lnsocket.a`, `libsodium.a` and `libsecp256k1.a` under
`target/ios` for `arm64` and `ios-sim-x86`.
### WASM/JS/Web
$ make js
This will build `lnsocket.js` and `lnsocket.wasm` in `target/js` so that you
can connect to the lightning network from your browser via websockets. See
[examples/websockets.js](examples/websockets.js) for a demo.
### NodeJS
$ npm install --save lnsocket
See [examples/node.js](examples/node.js)
### Go
There is a Go version of lnsocket written using lnd's brontide[^3].
You can import it via:
import "github.com/jb55/lnsocket/go"
It is currently used in fiatjaf's makeinvoice go library[^4] if you want an
example of its usage.
## C Examples
* See [test.c](test.c) for a ping/pong example
* See [lnrpc.c](lnrpc.c) for an RPC example
## Contributing
Send patches to `jb55@jb55.com`
$ git config format.subjectPrefix 'PATCH lnsocket'
$ git config sendemail.to 'William Casarin <jb55@jb55.com>'
$ git send-email --annotate HEAD^
See git-send-email.io[^1] for configuring your mailer
You can open a PR on github[^2] as well
[^1]: https://git-send-email.io/
[^2]: https://github.com/jb55/lnsocket
[^3]: https://github.com/lightningnetwork/lnd/tree/master/brontide
[^4]: https://github.com/fiatjaf/makeinvoice/blob/d523b35084af04883f94323dc11a50c2a99d253d/makeinvoice.go#L366