scodec is a suite of libraries for working with binary data. Support ranges from simple, performant data structures for working with bits and bytes to streaming encoding and decoding.

There are three primary modules:

There are a few secondary modules as well:

This guide goes over each of these modules in detail.

Getting Source, Binaries, and Docs 

Each of the modules are available on GitHub under the scodec organization. Binaries are published to Maven Central under the group id org.scodec. ScalaDoc is available for online browsing at The ScalaDoc has a lot of detail, especially in package level documentation.

All of the modules adhere to binary compatibility rules. In short, versions that share the same major.minor version number are forward binary compatible. An exception to this rule is major version 0, which indicates that no binary compatibility is guaranteed from version to version. For example, code that was compiled against scodec-bits 1.0.1 will function with 1.0.4 but not necessarily 1.0.0 or 1.1.0.

Getting Help 

To get help with scodec, consider using the Typelevel mailing list, using the scodec tag on StackOverflow, or mentioning #scodec on Twitter.