UNPKG

@wxn0brp/db

Version:

A modular, embedded database for developers who want control over their data storage.

77 lines (54 loc) 4.05 kB
# <img src="https://raw.githubusercontent.com/wxn0brP/ValtheraDB/master/logo.svg" alt="ValtheraDB Logo" width="36" height="36"> ValtheraDB (@wxn0brp/db) [![npm version](https://img.shields.io/npm/v/@wxn0brp/db)](https://www.npmjs.com/package/@wxn0brp/db) [![License](https://img.shields.io/npm/l/@wxn0brp/db)](./LICENSE) [![Downloads](https://img.shields.io/npm/dm/@wxn0brp/db)](https://www.npmjs.com/package/@wxn0brp/db) **Welcome to ValtheraDB - a modular, embedded database for developers who want to build their perfect data layer. With a familiar API and unparalleled flexibility, ValtheraDB empowers you to take control of your data storage.** ## Installation To install the package, run: - Using npm ```bash npm install @wxn0brp/db ``` - Or using bun ```bash bun add @wxn0brp/db ``` - Or using yarn ```bash yarn add @wxn0brp/db ``` ## Our Philosophy: Control and Flexibility In a world of one-size-fits-all solutions, ValtheraDB is different. We believe that you, the developer, should have the final say on how your data is managed. Our core philosophy is built on two pillars: * **Unmatched Modularity:** The storage engine is just a plugin. Don't like JSON files? Use a single binary file, YAML, `localStorage`, or invent your own format. ValtheraDB's architecture is designed to adapt to your needs, not the other way around. * **Pragmatic Power:** We provide powerful features like cross-database relations and a rich query API, but we keep it simple. ValtheraDB is designed for small to medium-sized applications where a custom-fit and developer experience are more important than supporting massive datasets. ## Who is ValtheraDB for? ValtheraDB is a great fit if you are: * A **Node.js or Bun developer** building a backend and wanting an easy-to-use, embedded database without the overhead of a separate database server. * A **frontend developer** creating a Progressive Web App (PWA) that needs offline capabilities or complex client-side storage. * An **Electron developer** who needs a straightforward way to store data locally in a desktop application. * A **creative coder** who wants to experiment with unconventional storage methods for your projects. * A developer **frustrated with ORMs** who wants the data access pattern of an object database without learning SQL syntax. * A team building an **MVP or Electron app** that will eventually outgrow in-memory arrays but doesn't need 10TB sharded infrastructure. In short, if you value flexibility and control over rigid conventions, you'll feel right at home. ## Key Features at a Glance * 🧱 **Pluggable Storage Engine:** Bring your own storage adapter. * 🤝 **Powerful Cross-Database Relations:** Create relationships between data across entirely separate database instances. * 🧠 **Familiar MongoDB-like API:** Start working quickly with an intuitive and expressive query language. * 🌐 **Runs Everywhere:** Optimized for **Bun**, great with **Node.js**, and fully capable in the **browser**. * 🚀 **Client-Server Ready:** Scale from an embedded solution to a client-server architecture when you need to. * 🚫 **Zero Configuration:** Point it to a directory, and you're good to go. ## Where to Go Next? - **Documentation Website**: [https://wxn0brp.github.io/ValtheraDB/](https://wxn0brp.github.io/ValtheraDB/) - **[Getting Started](docs/getting_started.md):** Jump into our hands-on tutorial and build your first application with ValtheraDB. - **[Core Concepts](docs/core_concepts.md):** Learn about the fundamental ideas that make ValtheraDB unique. - **API Reference:** - [Valthera Class](docs/valthera.md) - [Relations](docs/relation.md) - [Search Operators](docs/search_opts.md) - [Update Operators](docs/updater.md) - [Find Options](docs/find_opts.md) - [Remote](docs/remote.md) ## License This project is released under the [MIT License](./LICENSE). ## Contributing Contributions are welcome! Please submit a pull request or open an issue on our GitHub repository.