gRPC bindings for various lnd versions
Project description
lncm/lnd-rpc
This repo aims to make grpc communication with (any version of) lnd
trivial.
Currently Go, and Python are supported.
Go
While lnd
natively provides .go
files for grpc communication, importing the entirety of lnd
sometimes causes issues with dependencies (ex. the infamous btcd
), etc. We aim to solve it by having zero/minimal dependencies, and providing direct access to each version individually.
tl;dr: Just use ex. github.com/lncm/lnd-rpc/v0.9.0/invicesrpc
in your source
Python
This repo also holds the source (and scrips necessary to generate) the contents of lnd-rpc
PyPI package. To use it install the version of the version you want to use, and
tl;dr
This repo helps with:
- download - download all
lnd
.proto
's, and their dependencies - generate-go - generate
.go
sources for available.proto
files - generate-python - generate
.py
sources for available.proto
files
Each of these can be done in two ways:
- Run the script directly
- Via
docker run
Download
./script/download
downloads all .proto
files, and all their dependencies unless a specific version is provided.
Run directly
./scripts/download --help
download v1.0.0
Download all .proto files necessary to build lnd's gRPC client libraries
Usage: ./scripts/download [options] LND_VERSION
Where LND_VERSION is in a form: [v]MAJOR.MINOR.PATCH (ex: v0.9.0), or "all" to download all versions
Options:
-h, --help, help Show this help message
-G, --no-google Skip download of google/api/* and google/protobuf/*
-S, --strip-version Don't include lnd version in the path (only works if LND_VERSION != "all")
-o, --output Download to a specified dir (will be created, if doesn't exist)
Examples:
./scripts/download all # Download all lnd versions, and all google/* protos
./scripts/download --no-google v0.4.2 # Only download protos for lnd v0.4.2, and no google/* protos
./scripts/download -G -S -o=~/last-lnd/ v0.9.0 # Only download protos for lnd v0.9.0, and save them to last-lnd/
# in user's HOME directory w/o the /LND_VERSION/ segment in path
github: github.com/lncm/lnd-rpc/
Docker
NOTE: this one requires DOCKER_BUILDKIT=1
due to usage of --target=
# Build with:
DOCKER_BUILDKIT=1 docker build . \
--target=protos-downloader
--tag=lnd-rpc-downloader
# Run with:
docker run --rm -it \
--volume=$(pwd)/:/protos/ \
lnd-rpc-downloader # [VERSION|all]
Generate Go
./scripts/generate-go
generates .go
files for all available versions, unless a specific version is provided.
Run directly
./scripts/generate-go --help
generate-go v1.0.0
Compile all .proto definitions into importable .go files
Usage: generate-go [options] LND_VERSION
Where LND_VERSION is in a form: [v]MAJOR.MINOR.PATCH (ex: v0.9.0), or "all" to generate for all versions
Options:
-h, --help, help Show this help message
-S, --strip-version Don't include lnd version in the path (only works if LND_VERSION != "all")
-o, --output Save generated files to a specified dir (created, if doesn't exist)
Examples:
./generate-go all
./generate-go -o /tmp/last/ v0.9.0
github: github.com/lncm/lnd-rpc/
Docker
docker build . \
--build-arg="LANG=go" \
--tag=lnd-rpc-go
docker run --rm -it \
--volume=$(pwd):/data/go/ \
lnd-rpc-go # [VERSION|all]
Generate Python
./scripts/generate-python
generates .py
files for all available versions, unless a specific version is provided.
NOTE: All generated versions are published to PyPi using this workflow
Run directly
./scripts/generate-python --help
generate-python v1.0.0
Compile all .proto definitions into .py files
Usage: generate-python [options] LND_VERSION
Where LND_VERSION is in a form: [v]MAJOR.MINOR.PATCH (ex: v0.9.0), or "all" to generate for all versions
Options:
-h, --help, help Show this help message
-S, --strip-version Don't include lnd version in the path (only works if LND_VERSION != "all")
-o, --output Save generated files to a specified dir (created, if doesn't exist)
Examples:
./generate-python all
./generate-python -o /tmp/last/ v0.9.0
github: github.com/lncm/lnd-rpc/
Docker
docker build . \
--build-arg="LANG=python" \
--tag=lnd-rpc-python
docker run --rm -it \
--volume=$(pwd):/data/python/ \
lnd-rpc-python # [VERSION|all]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for lnd_rpc-0.8.0.post4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca7d8654c4bc8b5b8411d4bcb09d82b509a9af9187203ad9095641001973e8ec |
|
MD5 | 9ef2acee4efb058a7a7bf42cbdc0da88 |
|
BLAKE2b-256 | b3f93ad5f21d679bcb29ebe5f8292689b14b066cbdbebbd40b5f3538f5ad323d |