- Rust 56.3%
- Python 17.1%
- Shell 9.6%
- C 7.7%
- Dockerfile 6.5%
- Other 2.8%
- 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). |
||
|---|---|---|
| .github/workflows | ||
| compat/vlc-3.0.23-linux-x86_64-gnu | ||
| courts | ||
| docker | ||
| docs | ||
| evidence | ||
| fixtures | ||
| oracle | ||
| player-slint | ||
| src | ||
| tools | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| rust-toolchain.toml | ||
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
vlc3crate, 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.