stencila  by stencila

Platform for dynamic, data-driven documents

Created 13 years ago
840 stars

Top 42.4% on SourcePulse

GitHubView on GitHub
Project Summary

Stencila is a platform for creating and publishing dynamic, data-driven documents, aiming to lower the barrier for programmable content and enable rich, interactive articles and applications. It targets scientists, researchers, and anyone needing to integrate code, data, and LLM assistance into their documents, offering a unified approach to content creation that blurs the lines between documents and applications.

How It Works

Stencila v2 is a rewrite in Rust, built upon three core innovations: Conflict-free Replicated Data Types (CRDTs) for decentralized collaboration and version control, Large Language Models (LLMs) for writing and editing assistance, and a schema that treats documents as applications. CRDTs form the foundational storage and synchronization layer, enabling fine-grained changes to be exchanged over networks for real-time collaboration. LLMs are integrated to assist authors, with mechanisms to track human vs. AI contributions. The Stencila Schema defines document structure, supporting prose, code, math, data, and control flow.

Quick Start & Requirements

  • CLI Installation:
    • macOS/Linux: curl -sSf https://stencila.dev/install.sh | sh
    • Windows: Download .zip from latest release and add to PATH.
    • Docker: docker pull stencila/stencila
  • SDK Installation:
    • Python: python -m pip install stencila
    • Node.js: npm install @stencila/node
    • TypeScript: npm install @stencila/types
  • Prerequisites: Rust for development. Python 3 for Python SDK. Node.js for Node.js/TypeScript SDKs.
  • Resources: Alpha releases are available. Full 2.0.0 release targeted for Q3 2024.
  • Docs: https://stencila.dev/

Highlighted Details

  • CRDT-based: Uses Automerge CRDTs for decentralized storage, branching, and merging.
  • LLM Integration: Built-in support for LLM-assisted writing and editing.
  • Extensive Format Support: Codecs for JSON, YAML, CBOR, and planned support for HTML, JATS, Markdown, R Markdown, Jupyter Notebooks, and more.
  • Multi-Kernel Execution: Supports execution of code chunks in Bash, Python, JavaScript (QuickJs, Node.js), R, and planned support for SQL, Rhai, and Jupyter kernels.

Maintenance & Community

Licensing & Compatibility

  • License: Primarily MIT for most components. Specific licenses may apply to dependencies.
  • Compatibility: SDKs available for Python and Node.js, enabling integration into existing workflows.

Limitations & Caveats

  • Alpha Status: v2 is in early development (as of README date), with limited functionality and potential bugs. Many features, including HTML, JATS, Markdown import/export, and R kernels, are marked as Alpha, Beta, or Under Development.
  • Target Release: 2.0.0 release is targeted for Q3 2024.
Health Check
Last Commit

17 hours ago

Responsiveness

1 day

Pull Requests (30d)
23
Issues (30d)
2
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.