@trust0/ridb-core
v1.1.0
Published
RIDB core.
Downloads
367
Readme
Introduction
RIDB secure database wrapper for the web with multiple storage engines, written in rust. This package serves as wasm wrapper for the RIDB project, providing a secure and lightweight database solution for the web.
Build & Testing
RIDB is a project mainly developed in rust and exported to wasm, the project combines the execution of rust code with the plugins and storage engines defined by the user in JS code or other wasm packages. Building the project is pretty straight forward.
Requirements
Building the source code
Building the source code will compile the rust code into wasm and then bundle the Javascript code using esbuild, the output will be located in ./ts/build.
sh build.sh
How to test the project
For now, we have enabled the implementation of the whole wasm + javascript integration. In order to run it, write the following:
sh test.sh
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 |