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

@cratis/arc

v22.7.0

Published

TypeScript command, query, validation, identity, and messaging runtime for Cratis Arc — the CQRS application framework for ASP.NET Core — used by generated proxies.

Readme

Cratis Arc

Arc is an open-source (MIT) opinionated CQRS application framework for ASP.NET Core with commands, queries, validation, authorization, and TypeScript proxy generation. It works without event sourcing, with optional Chronicle integration.

Arc hosts application behavior, executes command and query pipelines, exposes recognized contracts over HTTP, and generates TypeScript clients for them. Its packages also cover observable queries, validation, identity and tenancy, React integration, current-state persistence, OpenAPI, analyzers, and testing. Chronicle event sourcing and Cratis Components are optional integrations.

Arc reflects a broader Cratis conviction: application plumbing should not be the hard part. Commands, queries, validation, and authorization are written as plain, idiomatic .NET code, designed to reduce friction and boilerplate in service of productivity, quality, and reliability. Arc is part of one deliberately simple ecosystem — AI-friendly by design, with free AI skills for building with the stack.

NuGet NPM .NET Build JavaScript Build

Start here

What Arc owns

| Boundary | Arc provides | | --- | --- | | Hosting | ASP.NET Core hosting plus an Arc.Core HTTP host for workers, consoles, and custom services | | Commands | Model-bound and controller-based execution, validation, authorization, filters, scopes, typed results, and generated endpoints | | Queries | Model-bound and controller-based reads, paging and sorting, observable updates, WebSocket or Server-Sent Events transport, and query diagnostics | | Validation | Data annotations, FluentValidation, concept/command/query validators, generated client rules, and optional server preflight from React forms | | Identity and tenancy | Pluggable authentication, identity details, role-based authorization, and header, query, claim, subdomain, fixed, or development tenant resolution | | Generated contracts | TypeScript proxies, referenced types, validation metadata, identity details, incremental output cleanup, and package/type mapping | | Frontend packages | TypeScript command/query runtimes, React hooks and forms, dialogs, observable-query composition, and optional React/MVVM integration | | Persistence integration | MongoDB and Entity Framework Core current-state adapters plus optional Chronicle-backed event-sourced behavior | | Evaluation and tooling | OpenAPI, runtime introspection, analyzers, source generators, command scenarios, proxy-generation checks, Vite helpers, and ESLint rules |

Each row is a documented capability area, not a promise of compatibility with every package, host, provider, browser, or product version.

Choose a path

Arc documentation is organized around the job you need to complete:

The canonical Arc page remains the front door; product-owned documentation and source carry the detail.

Arc does not require event sourcing

Arc.Core does not depend on Chronicle. Commands and queries can use current-state persistence or application services without an event log. Choose the persistence and integrations that fit each application boundary.

The Chronicle integration is optional and supplies event-sourced behavior when configured. Arc retains its command, query, validation, authorization, and generated-contract boundary.

Chronicle is Cratis's storage-agnostic event-sourcing database and runtime — MIT licensed and free to use; see the Chronicle documentation for its own scope and setup.

Relationship to Components

Components is a React component library aligned with Arc application patterns. See the Components documentation for its packages and setup.

Applications may use Arc without Components and remain responsible for their own frontend, accessibility, browser, and design-system verification.

Start an Arc host

Arc's .NET packages embed this product-family README. The example below uses the umbrella Cratis.Arc package to start an Arc host; when viewing this README from a specialized package page, use that package's manifest and reference documentation for its own installation scope.

Use the .NET SDK declared by Arc's current global.json. Install the host package:

dotnet add package Cratis.Arc

Create and run an Arc host:

using Cratis.Arc;

var builder = ArcApplication.CreateBuilder(args);
builder.AddCratisArc();

var app = builder.Build();
app.UseCratisArc();
await app.RunAsync();

Starting the host confirms the basic Arc setup. Continue with the Arc documentation, and use GitHub Issues when the observed behavior does not match the documentation.

Packages and repository layout

| Surface | Role | | --- | --- | | Cratis.Arc / Cratis.Arc.Core | .NET hosting, command/query pipelines, validation, identity, tenancy, HTTP, introspection, and application conventions | | Cratis.Arc.ProxyGenerator.Build | Build-time TypeScript proxy generation for recognized application artifacts | | Cratis.Arc.MongoDB / Cratis.Arc.EntityFrameworkCore* | Optional current-state persistence and observation adapters | | Cratis.Arc.Chronicle | Optional event-sourced command, projection, reducer, aggregate, reactor, tenancy, and compliance integration | | Cratis.Arc.OpenApi / Cratis.Arc.Swagger | Optional OpenAPI document transformation for Arc concepts and endpoints | | Cratis.Arc.Testing / Cratis.Arc.Chronicle.Testing | Command-scenario and optional Chronicle event/read-model testing helpers | | @cratis/arc | TypeScript command, query, validation, identity, and messaging runtime used by generated proxies | | @cratis/arc.react | React hooks, forms, dialogs, identity, messaging, and query composition for Arc contracts | | @cratis/arc.react.mvvm | Optional React/MVVM and dependency-injection integration | | @cratis/arc.vite / @cratis/eslint-plugin-arc | Vite metadata/query helpers and Arc-specific frontend lint rules | | Source/DotNET | .NET framework source | | Source/JavaScript | TypeScript and React package source | | Documentation | Product-owned documentation rendered on cratis.io | | TestApps | Sample and integration applications used by repository checks |

Package existence does not imply compatibility with every frontend, runtime, persistence provider, or product version. Check the package manifests and documentation for the versions you use.

Documentation map

Contributing

Arc is a framework-library repository. Changes to public APIs, analyzers, generated output, and package shapes can affect consumers and require the owning repository's compatibility and release review.

Repository development currently requires the SDK and toolchain versions declared by global.json and package.json. Follow the Cratis contribution guide and the framework instructions before changing public surfaces.

Before submitting documentation-only work, verify its links, anchors, and examples explicitly; current automated documentation checks are path-scoped. Source changes must pass the owning repository's applicable build, specification, TypeScript, and documentation gates.

  • .NET SDK 10.0.400+. Arc's analyzers and source generators are built against Roslyn 5.9.0, which ships with .NET SDK 10.0.400 and newer. On an older SDK band the compiler refuses to load them (CS9057), silently disabling proxy generation and the ARC*/ARCCHR* analyzers. Consuming the Cratis.Arc packages carries the same floor. Raising this floor is a minor version bump.
  • Node 23+
  • Yarn

Community and repository

| Path | Destination | | --- | --- | | Questions and discussion | Cratis Discord | | Bugs and feature requests | GitHub Issues | | Releases | GitHub Releases | | Documentation | www.cratis.io/arc | | Blog | blog.cratis.io | | Security reports | Private security reporting | | License | LICENSE |

The Cratis ecosystem

Arc is part of Cratis — free, MIT-licensed tools for building event-sourced and CQRS applications.

  • Chronicle — event-sourcing database and runtime. Orleans-based kernel, pluggable storage (MongoDB default; PostgreSQL, SQL Server, SQLite, in-memory), language-agnostic gRPC contracts. Docs
  • Chronicle clients — first-class .NET SDK, plus TypeScript, Kotlin/Java, and Elixir; Python coming soon (pre-alpha). AI agents connect through the Chronicle MCP server.
  • Arc (this repository) — opinionated CQRS framework for ASP.NET Core with commands, queries, validation, authorization, and TypeScript proxy generation. Works without event sourcing. Docs
  • Components — React components aligned with Arc patterns. Docs
  • CLI + Workbench — inspect and diagnose Chronicle from the terminal or the browser. Docs
  • Model-first layer (experimental) — Studio, Screenplay, Stage, Scene, Prologue
  • SupportingFundamentals, Specifications, Synopsis, Lens, Narrator, and free AI tooling (preview); Ensemble coming soon (pre-release)
  • Samples — runnable event sourcing and CQRS samples for the whole stack

Everything Cratis publishes today is MIT licensed and free to use.

Release notes and announcements: the Cratis blog.