iscc-lib 0.5.0

High-performance Rust implementation of ISO 24138:2024 (ISCC)
Documentation

iscc-lib

CI Crate License

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

What is ISCC

The ISCC is a similarity-preserving fingerprint and identifier for digital media assets. ISCCs are generated algorithmically from digital content, just like cryptographic hashes. However, instead of using a single cryptographic hash function to identify data only, the ISCC uses various algorithms to create a composite identifier that exhibits similarity-preserving properties (soft hash).

Installation

cargo add iscc-lib

Quick Start

use iscc_lib::gen_meta_code_v0;

let result = gen_meta_code_v0("ISCC Test Document!", None, None, 64).unwrap();
println!("Meta-Code: {}", result.iscc);

API Overview

Code Generators

Function Description
gen_meta_code_v0 Generate a Meta-Code from metadata fields
gen_text_code_v0 Generate a Text-Code from plain text
gen_image_code_v0 Generate an Image-Code from pixel data
gen_audio_code_v0 Generate an Audio-Code from Chromaprint data
gen_video_code_v0 Generate a Video-Code from frame signatures
gen_mixed_code_v0 Generate a Mixed-Code from Content-Codes
gen_data_code_v0 Generate a Data-Code from raw bytes
gen_instance_code_v0 Generate an Instance-Code from raw bytes
gen_iscc_code_v0 Generate a composite ISCC-CODE
gen_sum_code_v0 Generate an ISCC-SUM from a file path

Utilities

  • Text processing: text_clean, text_remove_newlines, text_trim, text_collapse
  • Algorithm primitives: alg_simhash, alg_minhash_256, alg_cdc_chunks, sliding_window
  • Soft hashing: soft_hash_video_v0
  • Encoding: encode_base64
  • Codec: iscc_decompose, plus the codec module with header encoding/decoding primitives
  • Streaming: DataHasher, InstanceHasher for incremental processing
  • Diagnostics: conformance_selftest

Feature Flags

Feature Default Adds
meta-code yes gen_meta_code_v0, json_to_data_url, meta constants
text-processing yes gen_text_code_v0, text_clean, text_collapse (implied by meta-code)

Data-Code, Instance-Code, ISCC-SUM, Image/Audio/Video/Mixed-Code, codec, and streaming are always available regardless of feature flags.

For a minimal build with only ISCC-SUM support (Data-Code + Instance-Code):

iscc-lib = { version = "0.4", default-features = false }

Links

License

Apache-2.0