Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/realfakenerd/jason
simple, fast, lightweight JSON Database.
https://github.com/realfakenerd/jason
database json lighweight no-dependencies
Last synced: about 1 month ago
JSON representation
simple, fast, lightweight JSON Database.
- Host: GitHub
- URL: https://github.com/realfakenerd/jason
- Owner: realfakenerd
- License: mit
- Created: 2024-10-22T11:44:24.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-17T13:02:30.000Z (about 1 month ago)
- Last Synced: 2024-12-17T14:18:45.387Z (about 1 month ago)
- Topics: database, json, lighweight, no-dependencies
- Language: TypeScript
- Homepage:
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jason ðĶ
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/your/repo/graphs/commit-activity)
[![Made with Bun](https://img.shields.io/badge/Bun-%23000000.svg?style=flat&logo=bun&logoColor=white)](https://bun.sh)
[![TypeScript](https://img.shields.io/badge/TypeScript-%23007ACC.svg?style=flat&logo=typescript&logoColor=white)](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
```bash
bun install jason
```## ðŧ Quick Example
```typescript
import JasonDB from "jason";// Define your interfaces
interface User {
name: string;
email: string;
}// Initialize the database
const db = new JasonDB<{users: User[]}>("my-db");// Create a collection
const users = db.collection("users", {
schema: (user) => user.name && user.email.includes("@")
});// Use the simple API
await users.create({
name: "John Smith",
email: "[email protected]"
});
```## ð ïļ 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);
```## ð Concurrency Strategies
Choose the strategy that best fits your needs:
- âĻ **Optimistic** (default)
- Perfect for most use cases
- Prevents update conflicts- ð **Versioning**
- Stricter control
- Change tracking- ⥠**None**
- Maximum performance
- Use with caution## ðĪ 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## ð License
Distributed under the MIT License. See `LICENSE` for more information.
---
â If this project helped you, consider giving it a star!
ðŦ Questions? Open an issue or get in touch!