@rushdb/javascript-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

RushDB Logo

🚀 RushDB SDK for JavaScript and TypeScript

The Modern Graph Database Client for Web & Node.js

NPM Version NPM License NPM Downloads npm bundle size

Made with Node Package - Typescript

🌐 Website📖 Documentation☁️ Cloud Platform🔍 Examples

✨ Highlights


  • 🔌 No Configuration Needed: Plug-and-play design requires minimal setup to get started
  • 🛡️ Automatic Type Inference: Enjoy seamless type safety with automatic TypeScript inference
  • 🔄 Isomorphic Architecture: Fully compatible with both server and browser environments
  • ⚡ Zero Dependencies: Lightweight (just 6.9KB gzipped) and efficient with no external dependencies

📦 Installation


# NPM
npm install @rushdb/javascript-sdk

# YARN
yarn add @rushdb/javascript-sdk

# PNPM
pnpm add @rushdb/javascript-sdk

🚀 Usage


  1. Obtain API Token: Grab one from the RushDB Cloud Dashboard.
  2. Build anything: Easily push, search, and manage relationships within your data.

Quick Example

import RushDB from '@rushdb/javascript-sdk';

// Setup SDK
const db = new RushDB("API_TOKEN");
// Default URL is "https://api.rushdb.com". See SDK Configuration for more options.

// Push any data, and RushDB will automatically flatten it into Records
// and establish relationships between them accordingly.
await db.records.createMany({
  label: "COMPANY",
  payload: {
    name: 'Google LLC',
    address: '1600 Amphitheatre Parkway, Mountain View, CA 94043, USA',
    foundedAt: '1998-09-04T00:00:00.000Z',
    rating: 4.9,
    DEPARTMENT: [{
      name: 'Research & Development',
      description: 'Innovating and creating advanced technologies for AI, cloud computing, and consumer devices.',
      PROJECT: [{
        name: 'Bard AI',
        description: 'A state-of-the-art generative AI model designed for natural language understanding and creation.',
        active: true,
        budget: 1200000000,
        EMPLOYEE: [{
          name: 'Jeff Dean',
          position: 'Head of AI Research',
          email: 'jeff@google.com',
          dob: '1968-07-16T00:00:00.000Z',
          salary: 3000000
        }]
      }]
    }]
  }
})


// Find Records by specific criteria
const matchedEmployees = await db.records.find({
  labels: ['EMPLOYEE'],
  where: {
    position: { $contains: 'AI' },
    PROJECT: {
      DEPARTMENT: {
        COMPANY: {
          rating: { $gte: 4 }
        }
      }
    }
  }
})

const company = await db.records.findUniq({
  labels: ['COMPANY'],
  where: {
    name: 'Google LLC'
  }
})

// Manage relationships
await company.attach(matchedEmployees, { type: "WORKING_AT" })

⚙️ SDK Configuration


The SDK is designed to be flexible. You can provide configuration options when initializing RushDB to customize its behavior, such as the API endpoint or request timeouts.

import RushDB from '@rushdb/javascript-sdk';

// Example: Initialize with a custom URL and timeout
const db = new RushDB('API_TOKEN', {
  url: 'http://your-custom-rushdb-server.com', // Default is 'https://api.rushdb.com'
  timeout: 30000 // 30 seconds
});

The RushDB constructor accepts an optional second argument for configuration. Key options include:

  • url: The complete URL to the RushDB API.
  • Alternatively, host, port, and protocol can be specified individually.
  • timeout: Request timeout in milliseconds (default: 10000).
  • httpClient: For advanced use cases, provide a custom HTTP client implementation.
  • logger: Implement a custom logger for debugging or monitoring.
  • options.allowForceDelete: Set to true to enable deleting all records without specifying criteria (defaults to false for safety).

For a comprehensive guide on all available configuration options, please refer to the SDK Configuration Documentation.

You're Awesome! 🚀

📚 Check the Complete Documentation and Examples Repository to learn more!

🤝 Contributing


We welcome contributions! See our CONTRIBUTING.md guide for details.

Package Sidebar

Install

npm i @rushdb/javascript-sdk

Weekly Downloads

322

Version

1.1.0

License

Apache-2.0

Unpacked Size

242 kB

Total Files

35

Last publish

Collaborators

  • 1px.one