Skip to content

Commit

Permalink
docs: Document which platforms are currently supported
Browse files Browse the repository at this point in the history
  • Loading branch information
cdecker committed Jul 4, 2023
1 parent a567d65 commit 110a295
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ nav:
- Self-Hosting: tutorials/self-hosting.md
- Reference:
- Overview: reference/index.md
- Client Libraries: reference/client-libraries.md
- Security: reference/security.md
- reference/partner-certs.md
- LSP Integration: reference/lsp.md
Expand Down
43 changes: 43 additions & 0 deletions docs/src/reference/client-libraries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Client Libraries

We provide a number of client libraries and bindings for a variety of
languages. The core logic is implemented in a small Rust crate called
`gl-client`, on top of which the language bindings are built. Since
these make use of native code they have to build a binary extension
that can be loaded by the language runtime.

We precompile the binaries for a couple of platforms and architectures
to simplify installation for developers. These are automatically
downloaded as part of the installation of the library and should your
combination be supported you will _not_ need any compiler or
sophisticated build process, it should just work out of the box.

## Platforms and Architectures

Currently our CI builds prebuilt bindings for Javascript and Python for the following platform and architecture combinations:

| OS | Architecture |
|--------------------|----------------|
| MacOS | x86_64 (intel) |
| MacOS | arm64 (m1/m2) |
| Windows | x86 |
| Window | x64 |
| Linux (glibc 2.24) | x86_64-gnu |
| Linux | i686-gnu |
| Linux | armv7-gnueabi |

Should your platform and architecture not be in the list above, don't
worry, you can still build them from the source by checking out the
[repository][repo], and then either call `make build-js` or `make
build-py` to build just the bindings you need.

Please let us know if we're missing a combination, so we can try to
add it to our build system, and remove the need to manually compile
the extension going forward.

There is an automated way of doing this in both languages, based on
the source tarball published to NPM and PyPI, however since the build
depends on a sibling crate which is not bundled it will most likely
fail to build from source tarball (we are working on fixing this).

[repo]: https://github.com/Blockstream/greenlight

0 comments on commit 110a295

Please sign in to comment.