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, Ruby, C#, C++, Swift, Kotlin, 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);
gem install iscc-lib
require "iscc_lib"

result = IsccLib.gen_text_code_v0("Hello World")
puts result.iscc # "ISCC:EAA..."
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..."
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..."
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..."
<dependency>
  <groupId>io.iscc</groupId>
  <artifactId>iscc-lib</artifactId>
  <version>0.4.0</version>
</dependency>
import io.iscc.iscc_lib.IsccLib;

String iscc = IsccLib.genTextCodeV0("Hello World", 64);
System.out.println(iscc); // "ISCC:EAA..."
dotnet add package Iscc.Lib
using Iscc.Lib;

var result = IsccLib.GenTextCodeV0("Hello World");
Console.WriteLine(result.Iscc); // "ISCC:EAA..."

Download pre-built libraries from GitHub Releases.

#include <iscc/iscc.hpp>

auto result = iscc::gen_text_code_v0("Hello World");
std::cout << result.iscc << std::endl; // "ISCC:EAA..."
// Package.swift dependency
.package(url: "https://github.com/iscc/iscc-lib", from: "0.4.0")
import IsccLib

let result = try genTextCodeV0(text: "Hello World", bits: 64)
print(result.iscc) // "ISCC:EAA..."
// build.gradle.kts
implementation("io.iscc:iscc-lib-kotlin:0.4.0")
import uniffi.iscc_uniffi.*

val result = genTextCodeV0(text = "Hello World", bits = 64u)
println(result.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 See Quick Start above
Go Go module go get github.com/iscc/iscc-lib/packages/go
Ruby RubyGems gem install iscc-lib
C# / .NET NuGet dotnet add package Iscc.Lib
C / C++ GitHub Releases Pre-built tarballs per platform
Swift SPM .package(url: "...", from: "0.4.0")
Kotlin Maven Central implementation("io.iscc:iscc-lib-kotlin:...")
WebAssembly npm npm install @iscc/wasm