Native-Rust reimplementation of the VLC 3.0.23 core runtime (libvlccore.so.9) that loads unmodified VLC modules
  • Rust 56.3%
  • Python 17.1%
  • Shell 9.6%
  • C 7.7%
  • Dockerfile 6.5%
  • Other 2.8%
Find a file
infinityabundance 975adfcf8e ci: layered CI matrix and unsafe inventory
- ci.yml: PR fast courts (fmt, clippy -D warnings, tests, unsafe
  inventory, schema validity), merge compatibility courts (evidence
  runner selftest, layout atlas court), nightly Docker matrix
  (mission §49 layering).
- tools/unsafe-inventory.py: unsafe blocks by file and category; Phase 0
  enforces zero.
- oracle/, player-slint/: boundary declarations (instrumentation designs
  land in Phase 2; Slint frontend stays downstream of the core).
2026-08-24 11:50:23 +01:00
.github/workflows ci: layered CI matrix and unsafe inventory 2026-08-24 11:50:23 +01:00
compat/vlc-3.0.23-linux-x86_64-gnu compat: freeze VLC 3.0.23 source, toolchain, and measured layout atlas 2026-08-24 11:50:05 +01:00
courts evidence: phase-0 world-parity receipt and residual registry 2026-08-24 11:50:12 +01:00
docker docker: frozen artifact builder + authority/candidate/differential/fixtures worlds 2026-08-24 11:49:59 +01:00
docs docs: compatibility target, architecture, ADRs, phase 0 report 2026-08-24 11:50:18 +01:00
evidence evidence: phase-0 world-parity receipt and residual registry 2026-08-24 11:50:12 +01:00
fixtures evidence: phase-0 world-parity receipt and residual registry 2026-08-24 11:50:12 +01:00
oracle ci: layered CI matrix and unsafe inventory 2026-08-24 11:50:23 +01:00
player-slint ci: layered CI matrix and unsafe inventory 2026-08-24 11:50:23 +01:00
src evidence: casefile format, comparators, evidence runner, layout and unsafe frameworks 2026-08-24 11:49:52 +01:00
tools ci: layered CI matrix and unsafe inventory 2026-08-24 11:50:23 +01:00
.gitignore chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00
Cargo.lock chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00
Cargo.toml chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00
LICENSE chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00
README.md chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00
rust-toolchain.toml chore: scaffold single-crate workspace, frozen toolchain, license 2026-08-24 11:49:46 +01:00

vlccore-rs — A Custodial Native-Rust VLC Core

A native-Rust reimplementation of VLC's core runtime that loads and executes existing, unmodified VLC binary modules, beginning with one precisely frozen target: VLC 3.0.23, Linux, x86-64 System V ABI, glibc, libvlccore.so.9 (module ABI 3_0_0f).

This is not:

  • a media player inspired by VLC,
  • a wrapper around libvlccore,
  • a rewrite of VLC codecs, demuxers, protocols, or outputs,
  • a "mostly compatible" set of symbol stubs.

This is a forensic engineering project. The original VLC implementation is the behavioral authority. Every compatibility claim is established empirically through a differential-oracle system, and every claim must be traceable to evidence: upstream source, ABI/layout measurements, oracle fixtures, captured observations, differential results, implementation location, and a regression court. See docs/COMPATIBILITY.md and docs/ORACLE.md.

Phase status

Phase 0 (repository and evidence infrastructure) is in progress:

  • Workspace (single vlc3 crate, frozen toolchain)
  • Docker authority/candidate framework
  • Casefile format
  • Hash tooling
  • Source pinning
  • Evidence runner
  • Compatibility target document
  • CI

Repository layout

src/               the single `vlc3` crate (modules added as implemented)
docker/           builder / authority / candidate / differential / fixtures
compat/           per-version ABI packs (frozen source + toolchain pins)
oracle/           authority instrumentation designs
courts/           compatibility court definitions
fixtures/         differential media fixtures + generation recipes
evidence/         casefiles, receipts, residuals
tools/            layout probes, symbol extractors, hash verifiers
docs/             architecture, compatibility, ABI, unsafe, oracle docs
player-slint/     downstream Slint reference frontend (NOT built in Phase 0)

Quickstart

# Build and test
cargo check
cargo test
cargo fmt --check
cargo clippy -- -D warnings

# Build the frozen VLC 3.0.23 artifact set (needs Docker)
make -f docker/Makefile builder          # build the artifact image
make -f docker/Makefile extract          # copy artifact/ out for inspection
make -f docker/Makefile run-phase0       # run both worlds + differential

# Run the evidence-runner self-test (no Docker required)
cargo run -- selftest

Frozen configuration

Item Value
VLC 3.0.23 (source hash below)
Target x86_64-unknown-linux-gnu
SONAME libvlccore.so.9
Module ABI 3_0_0f
Rust 1.98.0 (see rust-toolchain.toml)
VLC tarball SHA-256 e891cae6aa3ccda69bf94173d5105cbc55c7a7d9b1d21b9b21666e69eff3e7e0

Full pins: compat/vlc-3.0.23-linux-x86_64-gnu/.

License

LGPL-2.1-or-later (see LICENSE and docs/PROVENANCE.md). This project studies VLC's implementation to reproduce its behavior and ABI; it does not claim clean-room status. See docs/ARCHAEOLOGY.md for source-informed reimplementation boundaries.