https://github.com/aurijs/jason
Slash database complexity away with jason.
https://github.com/aurijs/jason
bun database json lighweight no-dependencies node
Last synced: about 1 year ago
JSON representation
Slash database complexity away with jason.
- Host: GitHub
- URL: https://github.com/aurijs/jason
- Owner: aurijs
- License: mit
- Created: 2024-10-22T11:44:24.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-26T21:44:02.000Z (about 1 year ago)
- Last Synced: 2025-05-16T18:06:19.750Z (about 1 year ago)
- Topics: bun, database, json, lighweight, no-dependencies, node
- Language: TypeScript
- Homepage: http://jasondb.vercel.app/
- Size: 335 KB
- Stars: 173
- Watchers: 4
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# jason db ðĶ

[](https://opensource.org/licenses/mit-license.php)
[](http://makeapullrequest.com)
[](https://github.com/your/repo/graphs/commit-activity)
[](https://bun.sh)

[](https://www.typescriptlang.org/)



> ð A simple, lightweight, and embeddable JSON database built with Bun
jason is the perfect solution when you need a fast and easy-to-use JSON database in your Bun projects. With features like schema validation, concurrency control, and built-in caching, it provides everything you need in a simple package.
## âĻ Highlights
- ð **Simple API** - CRUD and query JSON documents with just a few lines of code
- ðŠķ **Lightweight & Embeddable** - Easy integration without adding bloat to your project
- â
**Schema Validation** - Ensure your data integrity
- ð **Concurrency Control** - Prevent update conflicts
- ð **Versioning Support** - Track document changes
- ⥠**Built-in Caching** - Improve read performance
- ð **Query System** - Find documents with custom criteria
## ð Installation
```sh
bun add -D jason
# or
npm i @aurios/jason
```
## ðŧ Quick Example
```typescript
import JasonDB from "jason";
// Define your interfaces
interface User {
name: string;
email: string;
}
interface Database {
users: User[];
}
// Initialize the database
const db = new JasonDB("my-db");
// Create a collection
const users = await db.collection("users", {
schema: (user) => user.name && user.email.includes("@"),
});
// Use the simple API
await users.create({
name: "John Smith",
email: "john@example.com",
});
```
## ð ïļ Core API
### ðĶ JasonDB
```typescript
// Create an instance
const db = new JasonDB("my-database");
// Access collections
const myCollection = db.collection("name");
// List collections
const collections = await db.listCollections();
```
### ð Collections
```typescript
// Create
const doc = await collection.create({ ... });
// Read
const item = await collection.read("id");
// Update
await collection.update("id", { field: "new value" });
// Delete
await collection.delete("id");
// Query
const results = await collection.query(doc => doc.age > 18);
```
## ðĪ Contributing
Contributions are welcome!
1. ðī Fork the project
2. ð§ Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. ð Commit your changes (`git commit -m 'Add: amazing feature'`)
4. ðĪ Push to the branch (`git push origin feature/AmazingFeature`)
5. ð Open a Pull Request
## ð Development
```sh
# Clone the repo
git clone https://github.com/realfakenerd/jason
# Install dependencies
bun install
# Run tests
bun test
# Build project
bun run build
```
## ð License
Distributed under the [MIT License](../LICENSE)
---
â If this project helped you, consider giving it a star!
ðŦ Questions? Open an issue or get in touch!