stencila  by stencila

Platform for dynamic, data-driven documents

created 13 years ago
832 stars

Top 43.7% 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

1 day ago

Responsiveness

1 day

Pull Requests (30d)
4
Issues (30d)
9
Star History
10 stars in the last 90 days

Explore Similar Projects

Starred by Addy Osmani Addy Osmani(Engineering Leader on Google Chrome), Victor Taelin Victor Taelin(Author of Bend, Kind, HVM), and
1 more.

chatbox by chatboxai

0.3%
36k
Desktop client app for AI models/LLMs
created 2 years ago
updated 6 days ago
Feedback? Help us improve.