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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@relational-fabric/warp

v0.0.6

Published

Core types and utilities for Relational Fabric

Readme

Warp

The structural foundation that provides strength and stability

Warp provides the foundational primitives for working with data at rest within the Relational Fabric ecosystem. Like the warp threads in traditional weaving that run lengthwise and provide the structural strength for the entire fabric, this library provides the essential primitives for working with data at rest - whether that's traditional storage, application state, cached data, or any data that exists in a relatively stable form rather than flowing between systems.

The Challenge

When working with data at rest that needs to handle state evolution, you constantly need the same foundational capabilities:

  • Defining what kinds of graphs can represent valid state (ontological requirements)
  • Representing changes and deltas in a consistent way
  • Handling different types of identity and references (tempIds, derived IDs, anonymous IDs, tombstones)
  • Transforming data between different representations while preserving semantics
  • Controlling visibility and access to different parts of the graph
  • Working with both owned data (in graph form) and external data (as opaque references)

These foundational abstractions get rebuilt from scratch in every storage system, leading to incompatible approaches and subtle bugs.

The Approach

Warp provides the proven foundational primitives that enable working with any data at rest:

  • Storage Ontology: The ontological framework that defines what kinds of graphs can work with Warp operations
  • Change Representation: Primitives for representing deltas, edits, and state transitions
  • Identity Resolution: Primitives for handling different ID types and reference patterns
  • Graph Transformation: Primitives for transforming data between different representations while preserving semantics
  • Visibility Primitives: Primitives for controlling node/edge access based on context and permissions

Core Concepts

Storage Ontology

Framework defining the foundational concepts for working with data at rest:

  • Graph Structures: What kinds of graphs can represent valid state at rest
  • Graph Composition: Implements Filament's composition algebra for data at rest
  • Change Semantics: How state evolution and deltas should be represented and applied

Change Representation

Primitives for representing deltas, edits, and state transitions:

  • Delta Primitives: Core abstractions for representing "what changed"
  • State Transition: Primitives for state now + edits + time => state then
  • Change Composition: Primitives for combining and sequencing changes
  • Change Inversion: Primitives for undoing or reversing changes

Identity Resolution

Primitives for handling different ID types and reference patterns:

  • Temporary IDs: Primitives for IDs that resolve later (tempId() → actual ID)
  • Anonymous IDs: Primitives for addressing content without explicit IDs (e.g., nested component types)
  • Derived IDs: Primitives for IDs computed from other data
  • Tombstone References: Primitives for references to deleted/retracted entities
  • Reference Resolution: Primitives for resolving any reference type to its target

Graph Transformation

The central primitive for transforming data between different representations:

  • Representation Mapping: Primitives for transforming between different data representations
  • Persistence Transformation: Memory ↔ storage representations for data persistence
  • Serialization Transformation: Converting between serialized and in-memory representations
  • Temporal Transformation: State at different time points for versioning and history
  • Format Transformation: Between different data formats while preserving semantics
  • Selective Transformation: Choosing what to transform vs keep as opaque references

Visibility Primitives

Primitives for controlling node/edge access based on context and permissions:

  • Access Control: Primitives for permission-based visibility
  • Context Filtering: Primitives for context-sensitive graph views
  • Audience Stratification: Primitives for audience-based data access
  • Privacy Boundaries: Primitives for data sovereignty and privacy controls

Design Principles

Selective Graph Usage: Use graphs for data you own and control. Keep opaque references for external data that doesn't naturally fit your entity model. Avoid unnecessary serialization costs and worst-case access patterns by only converting to graph representation when it provides clear benefits.

Semantic Preservation: All transformations should preserve the semantic meaning of the data, even when changing its representation or location.

Identity Agnostic: Support any identity pattern - temporary, derived, anonymous, or explicit - through consistent resolution primitives.

Installation

npm install @relational-fabric/warp

Philosophy

Warp embodies the principle that working with data at rest is fundamentally about controlled transformation. Whether you're persisting to disk, managing application state, caching data, or applying changes over time - it's all graph transformation with different constraints and contexts.

These primitives enable:

  • Universal Patterns for Data at Rest: Work with any form of data at rest using the same foundational primitives
  • Semantic Consistency: Maintain meaning across all transformations and representations
  • Flexible Identity: Work with any identity pattern through consistent resolution
  • Controlled Access: Fine-grained control over data visibility and permissions

Integration with the Ecosystem

Built on Filament

Warp builds on Filament's graph primitives and ontological foundations, extending them with storage-specific semantics and operations.

With Weft (Data Leverage)

Warp provides the storage foundations that enable Weft's pattern matching to work with persisted and evolving data structures.

With Shuttle (Data Flow)

Warp's graph transformation primitives enable Shuttle's flow abstractions to work with persisted state and cross-boundary data movement.

Contributing

Warp is part of the Relational Fabric ecosystem. See the main repository for contribution guidelines.

Since Warp is still in early development, this is an excellent time to contribute to its design and architecture. We welcome input on storage primitives, transformation patterns, and ontological requirements.

License

MIT