All Projects â†’ kekland â†’ lapisdb

kekland / lapisdb

Licence: MIT License
A modern, easy-to-use and feature-rich TypeScript embedded database.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to lapisdb

AloeDB
Light, Embeddable, NoSQL database for Deno đŸĻ•
Stars: ✭ 111 (+428.57%)
Mutual labels:  embeddable, db, embedded-database
Xodus
Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.
Stars: ✭ 864 (+4014.29%)
Mutual labels:  db, embedded-database
Stormdb
🌩ī¸ StormDB is a tiny, lightweight, 0 dependency, easy-to-use JSON-based database for NodeJS, the browser or Electron.
Stars: ✭ 406 (+1833.33%)
Mutual labels:  embeddable, embedded-database
Lowdb
Simple to use local JSON database (supports Node, Electron and the browser)
Stars: ✭ 16,886 (+80309.52%)
Mutual labels:  embeddable, embedded-database
cannyls
An embedded persistent key-value storage for Rust that is optimized for random-access workload and huge-capacity HDD
Stars: ✭ 104 (+395.24%)
Mutual labels:  embedded-database
huginn
Programming language with no quirks, so simple every child can master it.
Stars: ✭ 41 (+95.24%)
Mutual labels:  embeddable
nullc
Fast C-like programming language with advanced features
Stars: ✭ 140 (+566.67%)
Mutual labels:  embeddable
dbx4fb
dbExpress driver for Firebird
Stars: ✭ 22 (+4.76%)
Mutual labels:  db
sync-db
Utility to synchronize relational database objects across databases.
Stars: ✭ 15 (-28.57%)
Mutual labels:  db
db-oracle
Oracle Database support for Yii
Stars: ✭ 21 (+0%)
Mutual labels:  db
ocp-flyway-db-migration
Database Migration Sample with Flyway, Docker and Kubernetes in Openshift Container Platform
Stars: ✭ 17 (-19.05%)
Mutual labels:  db
sqlmetrics
Prometheus metrics for Go database/sql via VictoriaMetrics/metrics
Stars: ✭ 21 (+0%)
Mutual labels:  db
odbc-rs
Rust ODBC FFI binding
Stars: ✭ 90 (+328.57%)
Mutual labels:  db
gsc
embeddable (game) scripting language in C
Stars: ✭ 25 (+19.05%)
Mutual labels:  embeddable
sheets-database
Library to help use a Google Sheet as a database
Stars: ✭ 36 (+71.43%)
Mutual labels:  db
dockage
embedded document/json store
Stars: ✭ 20 (-4.76%)
Mutual labels:  embedded-database
django-undeletable
undeletable Django models
Stars: ✭ 13 (-38.1%)
Mutual labels:  db
react-native-quick-sqlite
Fast SQLite for react-native.
Stars: ✭ 239 (+1038.1%)
Mutual labels:  db
sync-client
SyncProxy javascript client with support for all major embedded databases (IndexedDB, SQLite, WebSQL, LokiJS...)
Stars: ✭ 30 (+42.86%)
Mutual labels:  embedded-database
db-rest
A clean REST API wrapping around the Deutsche Bahn API.
Stars: ✭ 40 (+90.48%)
Mutual labels:  db

đŸ’Ĩ LapisDB

star this repo fork this repo License Version Downloads Status Codacy Badge

A TypeScript embedded database that is really easy and nice to use.

Attention

I am still working on this project, and many things might change in future.

Example

You can check out a full REST API here.

const adapter = new LevelDbAdapter(News, { name: 'news', directory: './database' })
const db = new Datastore('news', adapter)
DatastoreManager.register(db)

export class News extends Model<News> {
  body: string;
  author: string;

  constructor(body: string, author: string) {
    super(News)

    this.body = body
    this.author = author
  }
}

// Getting items
const items: News[] = await db.getItems()

// Filtering results
const items: News[] = await db.getItems((n) => n.author === 'kekland')

// Getting single item
const item: News = await db.get('identifier')

// Getting single item through its parameters
const item: News = await db.get({author: 'kekland'})

// Adding an item
const newItem: News = await new News('interesting body', 'kekland').save()

// Editing an item
newItem.body = 'a more interesting body'
await newItem.save()

// Getting a reference to an item
const reference: Reference<News> = newItem.getReference()

// Getting an item through its reference
console.log((await reference.get(News)) === newItem) // true

// Deleting an item
await newItem.delete()

Why?

During my experience writing servers, I often cannot find a database that is both fast and easy to use.

LapisDB tries to solve this problem. It is fully typed and uses TypeScript to make the development process a blast.

Try it out!

cd my-awesome-project
npm install --save lapisdb

Download via NPM

How do I use it?

📋 Tutorial

Check out the GitHub Wiki page here.

📕 Documentation

You can find the full TypeDoc documentation here (not updated as of v0.3.0).

Plugins, additional features

Contact me

E-Mail: [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].