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

@antelopejs/rethinkdb

v1.3.0

Published

RethinkDB module that implements the Database interface of antelopejs

Readme

RethinkDB

@antelopejs/rethinkdb

A complete RethinkDB client module that implements the RethinkDB and Database interfaces for AntelopeJS.

Installation

ajs project modules add @antelopejs/rethinkdb

Interfaces

This module implements two key interfaces:

  • RethinkDB Interface: Provides direct RethinkDB operations and connection management
  • Database Interface: Offers a standardized database abstraction layer

Both interfaces can be used independently or together depending on your application's needs. The interfaces are installed separately to maintain modularity and minimize dependencies.

| Name | Install command | | | --------- | ---------------------------------- | ------------------------------------------------------------------ | | RethinkDB | ajs module imports add rethinkdb | Documentation | | Database | ajs module imports add database | Documentation |

Overview

The AntelopeJS RethinkDB module provides functionality for interacting with RethinkDB:

  • RethinkDB client connection management through the RethinkDB interface
  • Common database operations through the Database interface

Configuration

The RethinkDB module supports two types of connections, direct connection or connection pool, both using options from the rethinkdb-ts package:

Direct Connection

// Direct connection options (RConnectionOptions)
{
    host: "localhost",       // The host to connect to
    port: 28015,             // The port to connect on
    db: "test",              // The default database
    user: "admin",           // The user account to connect as
    password: "",            // The password for the user account
    timeout: 20,             // Timeout period in seconds for the connection to be opened
    ssl: false               // Use SSL for connection
}

Connection Pool

// Connection pool options (RPoolConnectionOptions)
{
    host: "localhost",       // The host to connect to
    port: 28015,             // The port to connect on
    db: "test",              // The default database
    user: "admin",           // The user account to connect as
    password: "",            // The password for the user account
    timeout: 20,             // Timeout period in seconds
    maxConnections: 10,      // Maximum number of connections in the pool
    bufferSize: 50,          // Buffer size for the pool
    maxBufferSize: 100,      // Maximum buffer size
    discovery: false,        // Enable server discovery
    servers: []              // Additional servers for connection
}

Configuration Details

The module supports two connection methods:

  • Direct connection using r.connect() with RConnectionOptions
  • Connection pool using r.connectPool() with RPoolConnectionOptions

Atomic single-record mutations

table.atomicMutation(key, request).run() checks one primary key, its instance, and the requested condition inside a deterministic native RethinkDB replace function. It never inserts a missing record or retries a submitted mutation. CROSS_INSTANCE and selections are not supported.

Revision-based updates replace the supplied top-level fields, including complete nested objects, and install nextRevision in the same write. Revision-based deletes remove the matching record. The { kind: "missing" } expected revision matches an absent field on an existing record, not a stored null value. Callers must use fresh revision tokens and must not reuse an identity across incarnations.

deleteIfEqual checks one scalar field, including a Date, before deleting the record. It does not provide revision-based protection against a value changing and later changing back. Retention callers must keep their cutoff fixed and re-evaluate eligibility when they observe a different value.

The result is applied, not-applied, or unknown. Missing records, wrong instances, and condition mismatches return not-applied. Lost acknowledgements, indeterminate driver errors, untyped write-result errors, and malformed acknowledgements return unknown; callers must reconcile them rather than infer that no write occurred. Invalid requests and definite typed query-validation errors throw. Ordinary insert/update/replace/delete operations reject write errors, including duplicate primary keys; a multi-record write may have partially succeeded before it reports an error.

This implementation requires @antelopejs/interface-database version 0.1.6 or later within the supported range. Its shared real-backend conformance suite runs automatically through ajs module test, alongside this provider's native acknowledgement, storage, and fault tests. Install the published dependencies with pnpm install --frozen-lockfile; no local artifact is required.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.