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

effect-rxdb

v0.1.0

Published

Scoped, typed Effect integration for the RxDB public API.

Readme

effect-rxdb

Documentation: guides and API reference.

Named adapters cover core queries/writes/events, the operational storage API, attachments, local documents, state, migration, JSON dumps, pipelines, backups, CRDTs, hooks, and conflict callbacks. Connector subpaths (CouchDB, GraphQL, Firestore, MongoDB, Supabase, Nats, Appwrite, WebRTC, WebSocket, GoogleDrive, and OneDrive) acquire native replication states in Effect Scope. Optional SDKs remain the consumer's dependencies. Newer APIs require native peer support. Native pure builders, property accessors, and premium factories are retained rather than copied.

Effect-native RxDB execution, streams, typed failures, scoped database/replication resources, and callback integration. RxDB retains ownership of persistence and synchronization semantics; native handles remain compatible with plugins and TanStack DB.

npm install effect-rxdb effect rxdb rxjs
import { Effect } from "effect";
import { Database, Query } from "effect-rxdb";
import { getRxStorageMemory } from "rxdb/plugins/storage-memory";
import type { RxCollection } from "rxdb";

type Todo = { id: string; title: string };

const program = Effect.scoped(
  Effect.gen(function* () {
    const db = yield* Database.make<{ todos: RxCollection<Todo> }>({
      name: "todos",
      storage: getRxStorageMemory(),
      multiInstance: false,
    });
    yield* Database.addCollections(db, {
      todos: {
        schema: {
          version: 0,
          primaryKey: "id",
          type: "object",
          properties: {
            id: { type: "string", maxLength: 100 },
            title: { type: "string" },
          },
          required: ["id", "title"],
        },
      },
    });
    const documents = yield* Query.find(db.todos);
    return documents.map((document) => document.toJSON());
  }),
);

await Effect.runPromise(program);

Namespaces: Database, Collection, Document, Query, Attachment, Storage, Replication, Callback, Observable, Resource, Interop, Plugin, Migration, LocalDocument, State, JsonDump, Pipeline, Schema, RxError. Every namespace also has a subpath entrypoint.

Specific tagged errors retain native code/cause/parameters. Query.findOne returns Option; Query.stream creates a scoped Stream. Replication.make accepts Effect handlers and retains native replication retries. Interop.call lifts any remaining public RxDB/plugin operation. Plugin.acquire scopes native plugin resources. Native storage factories and third-party integrations remain usable directly.

Supported peers: Effect 4 (compatible candidates from rc.111), RxDB 16.21.1/17.x, RxJS 7. No native engine or premium plugin is bundled. Acquisition is uninterruptible to prevent late-result leaks; native storage writes cannot necessarily be canceled. Bulk operations retain partial success. Incremental modifiers must be replay-safe. Observable bridges are unbounded by default because RxJS cannot provide pull-based backpressure.

Full documentation

Optional application adapters

Application adapters are separate subpath exports; the primitive effect-rxdb entrypoint does not import them.

| Import | Responsibility | Additional peers | | ------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | | effect-rxdb/http | Effect schema declarations, generated document/attachment clients, Fetch handlers and bounded bodies | None beyond Effect | | effect-rxdb/replica | Shared native pull scopes, persisted independent checkpoints, readiness and cancellation | RxDB and RxJS | | effect-rxdb/attachments | Native durable upload replay, digest acknowledgements and demand-driven persisted downloads | RxDB and RxJS | | effect-rxdb/tanstack | Filtered native queries, cached/empty readiness and durable TanStack mutations | RxDB, RxJS, @tanstack/react-db, @tanstack/rxdb-db-collection |

Native and TanStack peers are optional for HTTP-only consumers. Install the peers for every adapter you use. Authentication, authorization, document schemas, conflict policy, storage providers and deployment bindings belong to the caller. Cloudflare invalidation servers and browser resync hints belong to the host's transport package; they are not loaded by these entrypoints.

See HTTP and scoped replication.