Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aerotoad/neboa

Type-safe NoSQL with Node & SQLite. 🌫️💽
https://github.com/aerotoad/neboa

database document nodejs nosql sqlite3 typescript

Last synced: 8 days ago
JSON representation

Type-safe NoSQL with Node & SQLite. 🌫️💽

Awesome Lists containing this project

README

        







Neboa on npm





GitHub






GitHub Repo stars

 


:sparkles: Type-Safe |
:minidisc: SQLite |
:battery: Batteries Included |
:lotus_position: Flexible



## Description

Neboa (pronounced /ˈnɛβo̯a̝/, [from Galician](https://en.wiktionary.org/wiki/n%C3%A9boa#Galician): «fog») is a simple, yet powerful, type-safe NoSQL database library for Node.js. It offers seamless data management with compile-time type-checking for enhanced reliability. Leveraging SQLite, Neboa ensures efficient and lightweight performance, making it perfect for Electron and other platforms. With its unique approach, Neboa empowers you to use a relational database as a NoSQL, providing the flexibility to harness the best of both worlds. Effortlessly manage your data and embrace a misty-smooth database experience.

Under the hood, Neboa makes use of [better-sqlite3](https://github.com/WiseLibs/better-sqlite3), a high-performance SQLite wrapper. This powerful tool allows Neboa to deliver optimal performance and ensure smooth interactions with the database. Whether you're building a desktop application with Electron or a web-based project, Neboa's reliable and efficient architecture has got you covered.

## Getting Started

It's recommended to read the [documentation](https://aerotoad.github.io/neboa/) to learn more about Neboa and how to use it.

If you want to jump right in, you can install Neboa in your project and start using folliwing the steps below:

### Install Neboa
```sh
npm install neboa
```

### Create a new Neboa instance and initialize the database
```typescript
import { neboa } from 'neboa';
const db = neboa('path/to/database.db');
```

### Create a new collection
```typescript
const Users = db.collection('users');
```

### Insert a new document to the collection
```typescript
const user = Users.insert({
name: 'Darth Vader',
email: '[email protected]'
});
```

And just like that, you have a new collection populated with a document. You can now query the collection to retrieve the document.

If you want to learn more about Neboa, you can read the [documentation](https://aerotoad.github.io/neboa/) to get started.

Happy hacking! :tada:

## Documentation

You can see the documentation on the [website](https://aerotoad.github.io/neboa/).


Below you can find table of contents with useful links to the documentation.

#### Introduction
- [What is Neboa](https://aerotoad.github.io/neboa/guide/what-is-neboa)
- [Gettting Started](https://aerotoad.github.io/neboa/guide/getting-started)

#### Basic Usage
- [Connecting to a Database](https://aerotoad.github.io/neboa/guide/basic/connecting-a-database)
- [Working with collections](https://aerotoad.github.io/neboa/guide/basic/collections)

#### Queries
- [Creating Queries](https://aerotoad.github.io/neboa/guide/queries/creating-queries)
- [Query constraints](https://aerotoad.github.io/neboa/guide/queries/query-constraints)
- [Relational Data](https://aerotoad.github.io/neboa/guide/queries/relational-data)

#### Advanced
- [Subscriptions](https://aerotoad.github.io/neboa/guide/advanced/subscriptions)

## Contributing

Thanks for your interest in contributing! Please, read on the guidelines for [contributing](CONTRIBUTING.md) and then check the [issues](https://github.com/aerotoad/neboa/issues) to see if there's anything you can help with.

Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

## License

See the [LICENSE](LICENSE) file for license rights and limitations (Affero General Public License v3.0).