a0bc2d79de | ||
---|---|---|
.. | ||
dist/node | ||
examples | ||
go | ||
tools | ||
.envrc | ||
.gitmodules | ||
LICENSE | ||
Makefile | ||
README.md | ||
TODO | ||
bech32.c | ||
bech32.h | ||
bigsize.c | ||
bigsize.h | ||
commando.c | ||
commando.h | ||
compiler.h | ||
configurator.c | ||
crypto.c | ||
crypto.h | ||
cursor.h | ||
endian.h | ||
error.c | ||
error.h | ||
export.h | ||
handshake.c | ||
handshake.h | ||
hkdf.c | ||
hkdf.h | ||
hmac.c | ||
hmac.h | ||
index.js | ||
lnrpc.c | ||
lnsocket.c | ||
lnsocket.h | ||
lnsocket_internal.h | ||
lnsocket_lib.js | ||
lnsocket_pre.js | ||
lnsocket_wasm.c | ||
package.json | ||
sha256.c | ||
sha256.h | ||
sha512.c | ||
sha512.h | ||
shell.nix | ||
test.c | ||
typedefs.h | ||
varint.c | ||
varint.h |
README.md
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 for a demo.
NodeJS
$ npm install --save lnsocket
See examples/node.js
Go
There is a Go version of lnsocket written using lnd's brontide1.
You can import it via:
import "github.com/jb55/lnsocket/go"
It is currently used in fiatjaf's makeinvoice go library2 if you want an example of its usage.
C Examples
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.io3 for configuring your mailer
You can open a PR on github4 as well