facebook/sapling

A Scalable, User-Friendly Source Control System.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 2 hours ago
Type:CLI ToolCategory(s):Git & Version ControlDeveloper Tools
Added to GitGenius on August 8th, 2026
Created on May 5th, 2016
Open Issues & Pull Requests: 379 (+0)
GitHub issues: Enabled
Number of forks: 400
Total Stargazers: 7,020 (+0)
Total Subscribers: 68 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.9 days
Mean response time: 79.2 days
90th percentile: 222.8 days
Tracked items: 150

How this project is maintained

Roughly one issue in two opened in the past year never receives a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "documentation" is answered fastest, typically in about 20 hours, while "bug" waits about 5 weeks. Only 38% of issues opened in the past year have been closed. Three people close 61% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 112
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 639 days
Stale 30+ days: 109
Stale 90+ days: 101

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 2
Events in 7 days: 4

Top labels

  • bug (18)
  • feature-request (16)
  • documentation (11)
  • build (9)
  • isl (6)
  • packaging (6)
  • reviewstack (6)
  • enhancement (5)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Written primarily in Rust, it represents a significant alternative to Git, designed to handle the demands of massive codebases while maintaining responsive developer experiences. The project is organized around three main components: the Sapling client command-line interface and web UI, Mononoke as the server-side distributed source control backend, and EdenFS as a virtual filesystem for efficient repository checkouts.

The Sapling CLI, found in the eden/scm subdirectory, was originally based on Mercurial and retains various UI and feature aspects from that system. It provides the sl command-line tool alongside an Interactive Smartlog web interface for visualizing and interacting with repositories. The project also offers a VS Code integrated version of the Interactive Smartlog. For users transitioning from Git, Sapling provides a dedicated cheat sheet to ease adoption. Building the CLI requires Python 3.8, Rust, CMake, OpenSSL, Node, and Yarn, and it currently supports Linux, Mac, and Windows platforms.

Mononoke serves as the production-grade server component used internally at Meta, though it remains unsupported for external usage. The open-source builds are available through GitHub Actions for experimentation purposes. EdenFS, the virtual filesystem component, also operates in production at Meta but lacks public support. It optimizes large repository operations by populating working directory files on demand rather than checking out entire repositories upfront, significantly accelerating operations like checkout while accepting minor performance costs on first file access. This approach proves particularly beneficial for developers working with repository subsets.

The repository demonstrates active maintenance and community engagement.

Sapling's core architectural philosophy centers on scalability that grows with developer-specific file usage rather than total repository size. This design enables performant operations even in massive codebases with extremely long commit histories. The project is licensed under GPL-2.0 for the main codebase, with the website and ISL components under MIT licensing. Library subprojects may carry different licenses as specified in their individual LICENSE files. Users can report issues on GitHub or join the project's Discord community for support and discussion.