Skip to content

ydnAkif/opensdl

Repository files navigation

OpenSDL — Open Semantic Document Library

A community-driven document format. PDF evolved for the era of semantic meaning.


What is OpenSDL?

OpenSDL is an open-source specification for documents that are:

  1. Semantic — Machine understands meaning (JSON structure)
  2. Verifiable — Cryptographically signed, tamper-proof (Ed25519 + SHA256)
  3. Portable — Works everywhere (web, mobile, desktop)
  4. Auditable — Open format, no proprietary logic

Why OpenSDL vs PDF?

Feature PDF OpenSDL
Search Slow (full scan) Instant (JSON index)
Meaning Pixels only Semantic structure
Signature Tool-dependent Math-based verification
Edit Proprietary nightmare JSON → re-render
Accessibility Heuristic Native support
Determinism App-dependent Identical everywhere

Documentation (Start Here!)

  1. SPEC.md — Full specification (what OpenSDL is)
  2. GOVERNANCE.md — Community governance (how decisions are made)
  3. ROADMAP.md — Path to W3C standard (where we're going)

Quick Start

Install

git clone https://github.com/ydnAkif/opensdl.git
cd opensdl
npm run setup   # Installs dependencies for CLI and Viewer

Quick Demo

Want to see it in action immediately?

npm run demo    # Launches the viewer locally

Create Document

npm run init my-doc           # Create skeleton
npm run set-hash my-doc       # Compute SHA256
npm run sign my-doc           # Ed25519 signature
npm run pack my-doc out.sdl   # Create .sdl file

View & Edit

cd viewer && npm run dev
# Open http://localhost:5173
# Upload out.sdl
# Toggle "Start Edit Mode" to draw structure boxes directly on the document!

In Action

See the semantic structure inspection in real-time:

Reader View The OpenSDL Viewer rendering a document with pixel-perfect SVG fidelity.

Inspector View The Inspector showing the connection between the visual element and its semantic JSON structure.


Project Structure

  • cli/ — Signing, hashing, packing tools
  • viewer/ — Web viewer (React + Vite)
  • schema/ — JSON Schema for documents
  • examples/ — Sample .sdl documents
  • SPEC.md — Formal specification
  • GOVERNANCE.md — Community decision-making
  • ROADMAP.md — 2026-2028 standardization path

Technology Stack

Component Tech Why
Container ZIP Auditable, universal
Structure JSON Machine-processable, human-readable
Rendering SVG Deterministic, scalable
Hashing SHA256 NIST standard
Signature Ed25519 High-performance, highly secure

Security Model

Document created
  ↓
SHA256(meta + structure + pages + assets) → contentHash
  ↓
Sign(contentHash) → Ed25519 signature → pubkey
  ↓
Reader verifies signature + hash
  ↓
✅ Document authentic & unchanged

Status (January 2026)

Component Status
Spec v0.2 ✅ Complete
CLI (TS) ✅ Working
Viewer ✅ Working
RFC Process ✅ Defined
Rust impl 🔄 Planned (Q2 2026)
W3C submission 🔄 Planned (Q4 2026)
Browser support 🔄 Planned (2027+)

License

  • Specification: Creative Commons CC BY 4.0 (Applies to SPEC.md, schema/, rfc/, docs/)
  • Code: Mozilla Public License 2.0 (MPL 2.0) (Applies to cli/, viewer/, examples/)

Open source, forever free.


Get Involved

  1. Read SPEC.md (understand the vision)
  2. Try it (create a test document)
  3. File issues (questions, suggestions)
  4. Propose RFC (see GOVERNANCE.md)
  5. Implement (pick your language)
  6. Evangelize (tell your network)

Roadmap (2026+)

  • v0.2 (now) → Spec + RFC process
  • v0.3 (Q2 2026) → Rust + Python implementations
  • v1.0 (Q4 2026) → W3C standardization candidate
  • v1.1+ (2027+) → Collaboration, templates, multimedia

See ROADMAP.md for full details.