#fingerprinting #bindings #chromaprint #version

sys chromaprint-sys-next

Rust bindings to Chromaprint

8 releases (stable)

1.5.3 Jul 24, 2022
1.5.2 Jul 5, 2022
1.5.1+04 Jul 4, 2022
1.5.0 Jul 3, 2022

#819 in Audio

28 downloads per month
Used in 2 crates (via chromaprint-rust)

MIT license

2.5MB
52K SLoC

C++ 42K SLoC // 0.2% comments Python 7K SLoC // 0.4% comments C 2K SLoC // 0.1% comments Bazel 721 SLoC // 0.1% comments Shell 218 SLoC // 0.2% comments Rust 144 SLoC // 0.1% comments Objective-C 20 SLoC

chromaprint-sys-next

Crates.io

Rust bindings for Chromaprint.

The major.minor version tracks the library version, while .patch tracks the crate version.

Prerequisites

General

  • LLVM or Clang for buildgen.

Linux (Debian/Ubuntu)

Static linking (preferred):

sudo apt install pkg-config cmake libfftw3-dev

Dynamic linking:

sudo apt install pkg-config libchromaprint-dev

macOS

brew install cmake

Windows

  1. Install cargo-vcpkg: cargo install cargo-vcpkg
  2. Install vcpkg deps: cargo vcpkg build
  3. Build and run: cargo run

Building chromaprint from source

If the library is not found on the system, the script will try to build it from source. This requires:

  1. CMake: https://cmake.org/download/
  2. FFTW3 (optional, but highly recommended): https://www.fftw.org/

Dependencies

~0–2.3MB
~45K SLoC