Skip to content

trust0-project/RIDB

Repository files navigation

JavaScript Database

A secure light-weight and dependency free database wrapper for the web.

     

Packages

Our project consists of three main packages, each designed to enhance your database experience:

Package Name Description Link
wasm The rust source for DB, contains its core logic, optimisations, algorithms and cryptography functionality. View on GitHub
ridb Main project with RIDB core functionality. View on GitHub
ridb-level An Storage for level-based storage (NODEJS). View on GitHub
ridb-react Use RIDB in react directly with JSX. View on GitHub

Security

We take security very seriously and have implemented robust measures to ensure data protection. Below are the specifications for our security features:

Feature Description
Password Hashing We use PBKDF2 (Password-Based Key Derivation Function 2) with HMAC-SHA3-256 for password hashing. This method involves multiple iterations to enhance security against brute-force attacks. Learn more about PBKDF2
Encryption Data is encrypted using AES-256-GCM (Advanced Encryption Standard with Galois/Counter Mode), which provides both confidentiality and integrity. Learn more about AES-GCM
Integrity We ensure data integrity by hashing data with SHA3-512 and comparing it with the stored hash to detect any tampering. Learn more about SHA-3

Supported features

By default RIDB is bundled with a default InMemory storage with support for write, create, update, fetch one, remove, find and count operations.

Feature Description
Schemas Creation of declarative schemas with required fields, default and encrypted fields
Validation Implement validation across all the flows extracting properties and required fields when needed
Primary Key Management Primary key and index management
Plugin Engine Extend the functionality of your Database implementation with wasm or Javascript plugins
Data Encryption Plugin Secure data with encryption plugins
Migration Plugin Support for data migrations
Integrity Plugin Support for data has not been tampered with
IndexDB Storage Robust type safe replacement for Dexie
InMemory Storage Robust type safe implementation of an inMemory storage
LevelDB Storage Robust type safe implementation for LevelDB 'classic-level'

Contributing

I'm very welcome to contributions from anyone, feel free to always open an Issue or create a Pull request. I'll try to be as transparent as I can around the things that are needed for the project.

Main priorities:

  • Improve documentation
  • Adding more examples
  • Testing and code coverage