gitwtfhub

wtf is sapling?

skevy/sapling — explained in plain English

Analysis updated 2026-07-17 · repo last pushed 2023-07-05

RustAudience · developerComplexity · 4/5DormantSetup · hard

TL;DR

A Git replacement built by Meta for handling massive codebases fast, using a virtual filesystem that fetches files on demand instead of storing everything locally.

Mindmap

mindmap
  root((sapling))
    What it does
      Replaces Git
      Scales to huge repos
      Fetches files on demand
    Tech stack
      Rust
      Mononoke
      EdenFS
    Use cases
      Large company codebases
      Visual commit management
      Git-familiar workflow
    Audience
      Developers
      Ops devops
      Large team engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Work in a massive shared codebase where Git has become slow due to millions of files or commits.

REASON 2

Use the Interactive Smartlog web interface to visualize and manage commits instead of memorizing CLI flags.

REASON 3

Try the Sapling client tools against an existing Git repository to see if it feels familiar.

What's in the stack?

RustMononokeEdenFS

How it stacks up

skevy/sapling0xr10t/pulsefi404-agent/codes-miner
Stars00
LanguageRustRustRust
Last pushed2023-07-05
MaintenanceDormant
Setup difficultyhardhardmoderate
Complexity4/54/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Server components Mononoke and EdenFS don't currently build or run publicly, only client tools are usable.

Wtf does this do

Sapling SCM is a replacement for Git that's designed to handle truly massive repositories without slowing down. While Git can struggle when a codebase contains millions of files or commits, Sapling stays fast because it only needs to think about the files you're actually working with, not the entire repository history. If you work at a large company with a huge shared codebase, or you're building infrastructure that serves many teams, Sapling is built to handle that scale. The system works by separating concerns: your local computer runs the Sapling client (a command-line tool called sl), which talks to a server called Mononoke and uses a virtual filesystem called EdenFS to manage what files actually live on your disk. Instead of downloading and storing everything, EdenFS brings files to your machine on demand as you need them, like a smart cache that keeps operations quick even in repos with millions of files. The README notes that this does come with a tiny performance cost the first time you access a new file, but that tradeoff is worth it when you're working in a massive codebase and most developers only touch a small slice of it. You'd use Sapling if you're coming from Git and work in a large-scale environment where Git has become a bottleneck. The project is designed to feel familiar to Git users, it's command-line driven and can work with existing Git repositories. It even includes an interactive web interface called Interactive Smartlog (ISL) that lets you visualize and manage your commits through a browser or VS Code, which can be easier than memorizing command-line flags. It's worth noting that Sapling is built by Meta (Facebook's parent company) and used internally there, but the open-source version has some limitations. The client-side tools are fully available, but Mononoke (the server component) and EdenFS (the virtual filesystem) don't currently build or run publicly, so you can't set up the full system yourself yet. For now, the open-source release is most useful if you want to try the client tools or if you're contributing to the project.

Yoink these prompts

Prompt 1
Show me how to install the Sapling sl command-line client and connect it to an existing Git repo.
Prompt 2
Help me understand how EdenFS fetches files on demand compared to how Git stores a full local copy.
Prompt 3
How do I use Interactive Smartlog in Sapling to visualize my commit history in a browser?

Frequently asked questions

wtf is sapling?

A Git replacement built by Meta for handling massive codebases fast, using a virtual filesystem that fetches files on demand instead of storing everything locally.

What language is sapling written in?

Mainly Rust. The stack also includes Rust, Mononoke, EdenFS.

Is sapling actively maintained?

Dormant — no commits in 2+ years (last push 2023-07-05).

How hard is sapling to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is sapling for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.