| .. | ||
| dist/node | ||
| examples | ||
| go | ||
| tools | ||
| .envrc | ||
| .gitmodules | ||
| 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 | ||
| LICENSE | ||
| lnrpc.c | ||
| lnsocket.c | ||
| lnsocket.h | ||
| lnsocket_internal.h | ||
| lnsocket_lib.js | ||
| lnsocket_pre.js | ||
| lnsocket_wasm.c | ||
| Makefile | ||
| package.json | ||
| README.md | ||
| sha256.c | ||
| sha256.h | ||
| sha512.c | ||
| sha512.h | ||
| shell.nix | ||
| test.c | ||
| TODO | ||
| typedefs.h | ||
| varint.c | ||
| varint.h | ||
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