Library to calculate and verify AccurateRip checksums and ids
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tristero d91f60135d
Update feature disclaimer in README
3 months ago
doc Formatting: Add newline 11 months ago
examples Fix albumcalc example 5 months ago
include Initialize buffer_ with nullptr 4 months ago
src Let Calculation INFO about updated AudioSize 4 months ago
test Fix comparisons between size_type and difference_type in tests 4 months ago
thirdparty Move to Catch2 v2.13.5 4 months ago
.clang Initial commit 3 years ago
.gitignore Ignore clang's .cache 5 months ago Update project information 5 months ago
CMakeLists.txt 0.1.0-rc.2 5 months ago Update coding style and design notes 5 months ago Update coding style and design notes 5 months ago
LICENSE Initial commit 3 years ago Update feature disclaimer in README 3 months ago Rework Markdown files for web use 3 years ago Update project information 1 year ago Fix cmake config 2 years ago Bugfix: correct lib name in .pc file 2 years ago

A library to calculate and verify AccurateRip checksums and ids

MIT licensed C++14 Latest

What libarcstk does

Libarcstk supports the following tasks:

  • Compute the AccurateRip checksums of a sequence of decoded samples
  • Verify local AccurateRip checksums against their reference values provided by AccurateRip
  • Calculate the AccurateRip ID of a CD image from TOC information
  • Parse the response from AccurateRip database to plain text

Libarcstk provides:

  • An API for working with AccurateRip checksums and ids
  • Builds on Linux (and presumably/untested on *BSD)
  • Reasonably fast

Although AccurateRip checksums are often referred to as "CRCs", they are not CRCs in a mathematical sense. Therefore, we call them just "AccurateRip Checksums" or "ARCS"s for short.

What libarcstk does not

  • Libarcstk does not rip CDs
  • Libarcstk does not offer to read or decode any audio data. You have to provide the samples on your own. (Note that there is libarcsdec that can possibly do that for you.)
  • Libarcstk offers no network facilities and is not supposed to do so. The actual HTTP request for fetching the reference values from AccurateRip is better performed by the HTTP client of your choice.

How to Build

Build and install to just use the libarcstk API:

$ cd libarcstk       # your libarcstk root directory where resides
$ mkdir build && cd build
$ cmake ..           # defaults to 'Release' build
$ cmake --build .
$ sudo make install  # installs to /usr/local

See a detailed HowTo explaining different build scenarios and all build switches.

How to Use

Current Limitations

  • No production release yet - will be 1.0.0
  • API is not considered stable before 1.0.0 (may change any time in any way while major release number is 0)
  • Supports only little endian plattforms. Release-build on big endian plattforms is therefore ruled out by cmake.
  • Never built, installed or tested on Windows or Mac OS X, but it is intended to support these platforms in the future


  • Checksumming CD images containing data tracks is untested and broken.