- 🔌 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
# NPM
npm install @rushdb/javascript-sdk
# YARN
yarn add @rushdb/javascript-sdk
# PNPM
pnpm add @rushdb/javascript-sdk
- Obtain API Token: Grab one from the RushDB Cloud Dashboard.
- Build anything: Easily push, search, and manage relationships within your data.
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" })
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
, andprotocol
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 totrue
to enable deleting all records without specifying criteria (defaults tofalse
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!
We welcome contributions! See our CONTRIBUTING.md guide for details.