Free as in Freedom: Create your repos!
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 08b456a72d
Let cmake cache store options
3 days ago
doc Typo 1 week ago
examples Update project name 4 weeks ago
src Comments 1 week ago
test Bugfix: build tests with older cmake versions 1 week ago
thirdparty Move to Catch2 version 2.7.0 1 month ago
.clang Initial commit 3 months ago
.gitignore Initial commit 3 months ago Rename project to 'libarcstk' 1 month ago Update project name 4 weeks ago
CMakeLists.txt Let cmake cache store options 3 days ago Update project name 4 weeks ago Update project name 4 weeks ago
LICENSE Initial commit 3 months ago Add hint to libarcsdec 3 weeks ago Rework Markdown files for web use 3 months ago Update project name 4 weeks ago Make libname CMake controlled 1 week ago

A library to calculate and verify AccurateRip checksums and ids

MIT licensed

What libarcstk is

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
  • Conservative OO API (intended to be usable from other languages)
  • A C++14 function library
  • Builds on Linux (and presumably/untested on *BSD)

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, buffer or decode any audio data. You have to provide the samples on your own.
  • 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 networking 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 -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo make install  # installs to /usr/local

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

How to Use

  • Build the API documentation and view it in a browser.
  • Consult the example applications in the examples folder. They illustrate the supported usecases.
  • As soon as I manage to write a quickstart tutorial, it will be found in the Wiki.
  • For local ARCS calculation, also check whether libarcsdec is helpful. Its target is to read virtually any lossless audio format by a uniform API. (It’s yet pre-alpha, so be warned.)

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 until then)
  • 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


  • Never tested with CD images containing data tracks.