Skip to content

iscc-lib

High-performance polyglot implementation of ISO 24138:2024 International Standard Content Code (ISCC).


What is iscc-lib?

iscc-lib is a Rust implementation of the ISCC standard with bindings for multiple programming languages. It provides all 10 gen_*_v0 code generation functions specified by ISO 24138, fully conformant with the official iscc-core Python reference implementation.

The ISCC is a content-derived identifier for digital media assets. It enables decentralized, content-based identification without a central registry.

Key Features

  • Complete ISO 24138 coverage — all 10 gen_*_v0 functions implemented
  • Full conformance — passes all official test vectors from iscc-core
  • High performance — pure Rust core delivers significant speedups over the Python reference
  • Multi-language — use from Rust, Python, Java, Go, Node.js, WebAssembly, or C
  • Cross-platform — runs on Linux, macOS, and Windows

Supported Code Types

Function Code Type Description
gen_meta_code_v0 Meta-Code Content metadata similarity
gen_text_code_v0 Text-Code Text content similarity
gen_image_code_v0 Image-Code Image content similarity
gen_audio_code_v0 Audio-Code Audio content similarity
gen_video_code_v0 Video-Code Video content similarity
gen_mixed_code_v0 Mixed-Code Cross-type content similarity
gen_data_code_v0 Data-Code Raw binary data similarity
gen_instance_code_v0 Instance-Code Exact binary data identity
gen_iscc_code_v0 ISCC-CODE Composite code combining units
gen_sum_code_v0 ISCC-SUM Single-pass file processing

Quick Start

pip install iscc-lib
from iscc_lib import gen_text_code_v0

result = gen_text_code_v0("Hello World")
print(result["iscc"])
cargo add iscc-lib
use iscc_lib::gen_text_code_v0;

let result = gen_text_code_v0("Hello World", 64)?;
println!("{}", result.iscc);
npm install @iscc/lib
import {
    gen_text_code_v0
} from "@iscc/lib";

const iscc = gen_text_code_v0("Hello World");
console.log(iscc); // "ISCC:EAA..."
# Build from source (Maven Central not yet available)
cargo build -p iscc-jni --release
import io.iscc.iscc_lib.IsccLib;

String iscc = IsccLib.genTextCodeV0("Hello World", 64);
System.out.println(iscc); // "ISCC:EAA..."
go get github.com/iscc/iscc-lib/packages/go
import iscc "github.com/iscc/iscc-lib/packages/go"

result, _ := iscc.GenTextCodeV0("Hello World", 64)
fmt.Println(result.Iscc) // "ISCC:EAA..."
npm install @iscc/wasm
import init, {
    gen_text_code_v0
} from "@iscc/wasm";

await init();
const iscc = gen_text_code_v0("Hello World");
console.log(iscc); // "ISCC:EAA..."

Available Bindings

Platform Package Install
Rust crates.io cargo add iscc-lib
Python PyPI pip install iscc-lib
Node.js npm npm install @iscc/lib
Java Maven Central (planned) Build from source (cargo build -p iscc-jni)
Go Go module go get github.com/iscc/iscc-lib/packages/go
WebAssembly npm npm install @iscc/wasm
C / C++ Source Via C FFI header (iscc.h)