npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

libwally-js

v1.0.0

Published

Wally is a cross-platform, cross-language collection of useful primitives for cryptocurrency wallets.

Downloads

2

Readme

libwally-core

Wally is a cross-platform, cross-language collection of useful primitives for cryptocurrency wallets.

Read the API documentation at https://wally.readthedocs.io.

Note that library interfaces may change slightly while the library design matures. Please see the CHANGES file to determine if the API has changed when upgrading.

Please report bugs and submit patches to https://github.com/ElementsProject/libwally-core.

Build Status

Platforms

Wally can currently be built for:

  • Linux
  • Android
  • OS X
  • iOS
  • Windows

And can be used from:

  • C and compatible languages which can call C interfaces
  • C++ (see include/wally.hpp for C++ container support)
  • Python 2.7+ or 3.x
  • Java
  • Javascript via node.js or Cordova

Building

$ ./tools/autogen.sh
$ ./configure <options - see below>
$ make
$ make check

configure options

  • --enable-debug. Enables debugging information and disables compiler optimisations (default: no).
  • --enable-export-all. Export all functions from the wally shared library. Ordinarily only API functions are exported. (default: no). Enable this if you want to test the internal functions of the library or are planning to submit patches.
  • --enable-swig-python. Enable the SWIG Python interface. The resulting shared library can be imported from Python using the generated interface file src/swig_python/wallycore/__init__.py. (default: no).
  • --enable-swig-java. Enable the SWIG Java (JNI) interface. After building, see src/swig_java/src/com/blockstream/libwally/Wally.java for the Java interface definition (default: no).
  • --enable-elements. Enables support for Elements features, including Liquid support.
  • --enable-js-wrappers. Enable the Node.js and Cordova Javascript wrappers. This currently requires python to be available at build time (default: no).
  • --enable-coverage. Enables code coverage (default: no) Note that you will need lcov installed to build with this option enabled and generate coverage reports.
  • --disable-shared. Disables building a shared library and builds a static library instead.

Recommended development configure options

$ ./configure --enable-debug --enable-export-all --enable-swig-python --enable-swig-java --enable-coverage

Compiler options

Set CC=clang to use clang for building instead of gcc, when both are installed.

Python

For python development, you can build and install wally using:

$ pip install .

It is suggested you only install this way into a virtualenv while the library is under heavy development.

If you wish to explicitly choose the python version to use, set the PYTHON_VERSION environment variable (to e.g. 2, 2.7, 3 etc) before running setup.py or (when compiling manually) ./configure.

Before running pip.

You can also install the binary wally releases using the released wheel files without having to compile the library, e.g.:

pip install wallycore-0.7.7-cp37-cp37m-linux_x86_64.whl

The script tools/build_python_wheels.sh builds the release files and can be used as an example for your own python projects.

Android

Android builds are currently supported for all Android binary targets using the Android NDK. The script tools/android_helpers.sh can be sourced from the shell or scripts to make it easier to produce builds:

$ export ANDROID_HOME=/opt/android-sdk
$ . ./tools/android_helpers.sh

$ android_get_arch_list
armeabi-v7a arm64-v8a x86 x86_64

# Prepare to build
$ ./tools/cleanup.sh
$ ./tools/autogen.sh

# See the comments in tools/android_helpers.sh for arguments
$ android_build_wally armeabi-v7a $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64 19 "--enable-swig-java"

The script tools/build_android_libraries.sh builds the Android release files and can be used as an example for your own Android projects.

Cleaning

$ ./tools/cleanup.sh

Submitting patches

Please use pull requests on github to submit. Before producing your patch you should format your changes using uncrustify version 0.60 or later. The script ./tools/uncrustify will reformat all C sources in the library as needed, with the currently chosen uncrustify options.

You should also make sure the existing tests pass and if possible write tests covering any new functionality, following the existing style.

Generating a coverage report

To generate an HTML coverage report, install lcov and use:

$ ./tools/cleanup.sh
$ ./tools/autogen.sh
$ ./configure --enable-debug --enable-export-all --enable-swig-python --enable-swig-java --enable-coverage
$ make
$ ./tools/coverage.sh clean
$ make check
$ ./tools/coverage.sh

The coverage report can then be viewed at src/lcov/index.html. Patches to increase the test coverage are welcome.

Users of libwally-core

Projects and products that are known to depend on or use libwally:

Please note that some of listed projects may be experimental or superseded.