npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@git-stunts/git-warp

v16.0.0

Published

Deterministic WARP graph over Git: graph-native storage, traversal, and tooling.

Readme

CI License npm version

Choose the right tool

| Use case | git-warp | Echo | Other | Remarks | | --- | --- | --- | --- | --- | | Offline-first collaborative app | ✅ | ❌ | CouchDB / PouchDB | git-warp is a strong fit when your data is graph-shaped, writers work independently, and eventual consistency is acceptable. | | Multi-writer edge or IoT fleet with intermittent network access | ✅ | ❌ | Event log + custom sync | git-warp works well when devices need local writes, later sync, and deterministic convergence without central coordination. | | Decentralized tool that already trusts Git remotes | ✅ | ❌ | Plain Git + custom files | git-warp is a better fit when the replicated data is a graph and you do not want to invent your own merge semantics. | | High-performance realtime simulation or game loop | ❌ | ✅ | Traditional ECS / game engine | Echo is designed for deterministic, replayable, high-throughput rewrite execution where runtime throughput matters more than Git-native storage. | | Replayable deterministic simulation tooling | ❌ | ✅ | Custom lockstep engine | Echo is the better fit when ticks, stepping, and runtime throughput are the core problem. | | Centralized OLTP web app | ❌ | ❌ | Postgres | If you need low-latency transactions around one primary database, use a conventional database. | | Analytics warehouse or OLAP workload | ❌ | ❌ | DuckDB / ClickHouse | Neither git-warp nor Echo is a warehouse or columnar analytics engine. |

What git-warp is

git-warp is a JavaScript library that stores a WARP graph inside Git objects and refs.

A WARP graph is causal: history and provenance are part of the model instead of discarded implementation detail. Each write becomes a patch commit, readers can pin history through worldlines, and multiple writers can converge deterministically after sync.

WARP stands for Worldline Algebra for Recursive Provenance. WARP itself is not tied to Git; git-warp is the Git-native implementation. If you want the underlying theory, see AIΩN. If you want a sibling runtime optimized for high-throughput realtime rewrite execution rather than Git-native durability, see Echo.

Choose git-warp for durable asynchronous collaboration. Choose Echo for deterministic realtime execution.

Why Git

Git and WARP fit together unusually well:

  • both are append-only in spirit
  • both rely on content-addressed artifacts
  • both work well in distributed, multi-writer environments

git-warp uses Git because Git already provides battle-tested object storage, cryptographic integrity, and distributed replication. git-warp adds graph structure, CRDT merge semantics, and pinned historical reads on top.

Each writer appends patch commits under refs/warp/<graph>/writers/<writerId>. Those commits point at Git's well-known empty tree, so graph history stays orthogonal to normal source-tree history on your checked-out branches.

Architecture at a glance

flowchart TB
    subgraph app["Application surface"]
        wa["WarpApp<br />writes, sync, worldlines, observers, strands"]
    end

    subgraph domain["Domain engine"]
        wc["WarpCore<br />replay, provenance, materialization, inspection"]
        crdt["CRDT reducer<br />OR-Set + LWW + Lamport ordering"]
    end

    subgraph infra["Infrastructure adapters"]
        git["Git object store + refs"]
        ports["Ports / adapters"]
    end

    wa --> wc
    wc --> crdt
    wc --> ports
    ports --> git

The normal builder path is WarpApp. WarpCore is the plumbing surface for replay, provenance, inspection, debugger tooling, and other substrate-level work.

When to use it

  • You need local graph writes now and sync later.
  • You expect multiple writers to work independently and converge deterministically.
  • You want history, time-travel reads, and provenance to be part of the data model.
  • You already trust Git as a storage and replication substrate.

When not to use it

  • You need a centralized OLTP database with immediate consistency and low-latency transactions.
  • You need a warehouse, search engine, or analytics store.
  • You need ultra-high-throughput realtime simulation rather than Git-native durability.
  • You do not actually need graph relationships, traversal, or history-aware reads.

Documentation pipeline

Use these docs in order, based on the job you are trying to do:

  • Getting Started: see git-warp work in a few minutes.
  • Guide: build an app with WarpApp, worldlines, observers, and strands.
  • API Reference: exhaustive API, flags, and examples without the narrative.
  • Advanced Guide: substrate internals, replay, trust, performance, and engine-room details.
  • CLI Guide: operate, inspect, and debug a live repo from the terminal.
  • Documentation index: canonical map of the full docs corpus.

Focused docs:

  • Conceptual overview: a deeper conceptual explanation of the WARP model and the Git substrate.
  • Architecture: system structure and internal layering.
  • Protocol specs: normative formats such as content attachments, receipts, and BTRs.

Core nouns

| Term | Meaning | | --- | --- | | WarpApp | The product-facing root for writing, syncing, worldlines, observers, and strands. | | WarpCore | The plumbing-facing root for replay, provenance, inspection, and tooling. | | Patch | A WARP patch is a Git commit under refs/warp/... containing a CBOR-encoded operation log plus metadata. | | Tick | One logical replay step: the application of one patch into visible state. | | Worldline | A pinned read-history handle over live truth, an explicit coordinate, or a strand. | | Lens | The aperture definition that shapes what an observer can see. | | Observer | A filtered, read-only projection over a worldline through a lens. | | Strand | A speculative write lane branched from a base observation. | | Braid | A read-only composition that lets one strand see one or more support strands without collapsing them together. |

License

Apache-2.0