A simple, fast embedded database backed by Rust. Zero dependencies, native performance, and full TypeScript support.
Install Ruggy and start building with just three steps
Add Ruggy to your project with a single command
Create a new database instance and collection
const { RuggyDatabase } = require('ruggy');
const db = new RuggyDatabase('./my-database');
const users = db.collection('users');Insert, query, update, and delete data instantly
// Insert data
const id = users.insert({
name: 'John Doe',
email: 'john@example.com'
});
// Query data
const user = users.findById(id);const { RuggyDatabase } = require('ruggy');
const db = new RuggyDatabase('./data');
const users = db.collection('users');
// 1. Insert
const id = users.insert({
name: 'Alice',
email: 'alice@example.com'
});
// 2. Advanced Search
const results = users.findWithOperator(
'email',
'@example.com',
'ends_with'
);
// 3. Update field
users.updateField(id, 'status', 'premium');
// 4. Delete
users.delete(id);Everything you need to build fast, reliable applications with embedded data storage.
Rust backend with FFI bindings delivers lightning-fast operations. ~10,000 inserts/sec, ~50,000 reads/sec.
No separate server required. Your database runs directly in your Node.js process with persistent storage.
Full type definitions included. Autocomplete and type checking for a better developer experience.
Search with operators: equals, like, starts_with, ends_with. Find data with flexible query patterns.
Insert, find, update, and delete documents with a simple, intuitive API. All operations are fast and reliable.
Data stored in append-only files. Your data persists across restarts with automatic recovery.
Built-in connection pooling for long-running applications. Manage database lifecycle automatically.
Configure database paths with ruggy.yaml. Flexible deployment with environment-based configuration.
No external database servers or complex setups. Just install and start building immediately.
Simple, powerful methods to manage your embedded database
Core database class for managing collections and connections
new RuggyDatabase(path: string)Creates a new database at the specified path
RuggyDatabase.fromConfig(options?)Creates instance using ruggy.yaml configuration
RuggyDatabase.withDatabase(path, callback)Automatically manages database lifecycle with auto-close
collection(name: string): RuggyCollectionGets or creates a collection
Collection class for CRUD operations on documents
insert(data: Object): stringInserts document, returns ID
findAll(): ArrayReturns all documents
find(field, value): ArrayFinds by field match
findWithOperator(field, value, operator)Advanced search with operators
updateField(id, field, value): booleanUpdates specific field
delete(id: string): booleanDeletes document by ID
Connection pool for long-running applications
new RuggyPool(path: string, options?)Creates connection pool with lazy connect option
withDatabase(callback): PromiseExecutes with pooled connection
closeGracefully(timeoutMs?): PromiseWaits for operations before closing
Optimized for embedded use cases with thousands of documents
Windows x64
Pre-built binaries included for instant setup
Linux / macOS
Requires building from source (Rust toolchain required)
Version 0.2.0 brings enhanced stability, advanced features, and improved cross-platform support.