All Projects → sdomino → Scribble

sdomino / Scribble

Licence: mit
A tiny Golang JSON database

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Scribble

Summitdb
In-memory NoSQL database with ACID transactions, Raft consensus, and Redis API
Stars: ✭ 1,295 (+494.04%)
Mutual labels:  json, database
Bible Database
Bible databases as XML, JSON, SQL & SQLITE3 Database format for various languages. Developers can download it freely for their development works. Freely received, freely give.
Stars: ✭ 111 (-49.08%)
Mutual labels:  json, database
Filecontextcore
FileContextCore is a "Database"-Provider for Entity Framework Core and adds the ability to store information in files instead of being limited to databases.
Stars: ✭ 91 (-58.26%)
Mutual labels:  json, database
Ejdb
🏂 EJDB 2.0 — Embeddable JSON Database engine C library. Simple XPath like query language (JQL). Websockets / Android / iOS / React Native / Flutter / Java / Dart / Node.js bindings. Docker image.
Stars: ✭ 1,187 (+444.5%)
Mutual labels:  json, database
Web Database Analytics
Web scrapping and related analytics using Python tools
Stars: ✭ 175 (-19.72%)
Mutual labels:  json, database
Go Nulltype
Null friendly types
Stars: ✭ 79 (-63.76%)
Mutual labels:  json, database
Unqlite
An Embedded NoSQL, Transactional Database Engine
Stars: ✭ 1,583 (+626.15%)
Mutual labels:  json, database
Jsonlite
A simple, self-contained, serverless, zero-configuration, json document store.
Stars: ✭ 819 (+275.69%)
Mutual labels:  json, database
Githubdb
A Lightweight Cloud based JSON Database with a MongoDB like API for Node.
Stars: ✭ 174 (-20.18%)
Mutual labels:  json, database
Marklogic Data Hub
The MarkLogic Data Hub: documentation ==>
Stars: ✭ 113 (-48.17%)
Mutual labels:  json, database
Avocado
Strongly-typed MongoDB driver for Rust
Stars: ✭ 70 (-67.89%)
Mutual labels:  json, database
Barrel Platform
Distributed database for the modern world
Stars: ✭ 201 (-7.8%)
Mutual labels:  json, database
Java Client Api
Java client for the MarkLogic enterprise NoSQL database
Stars: ✭ 52 (-76.15%)
Mutual labels:  json, database
Dbwebapi
(Migrated from CodePlex) DbWebApi is a .Net library that implement an entirely generic Web API (RESTful) for HTTP clients to call database (Oracle & SQL Server) stored procedures or functions in a managed way out-of-the-box without any configuration or coding.
Stars: ✭ 84 (-61.47%)
Mutual labels:  json, database
Spimedb
EXPLORE & EDIT REALITY
Stars: ✭ 14 (-93.58%)
Mutual labels:  json, database
Php Jsondb
A PHP Class that reads JSON file as a database. Use for sample DBs
Stars: ✭ 96 (-55.96%)
Mutual labels:  json, database
Sheetjs
📗 SheetJS Community Edition -- Spreadsheet Data Toolkit
Stars: ✭ 28,479 (+12963.76%)
Mutual labels:  json, database
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (+228.9%)
Mutual labels:  json, database
Radon
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services
Stars: ✭ 1,584 (+626.61%)
Mutual labels:  json, database
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (-13.76%)
Mutual labels:  json, database

Scribble GoDoc Go Report Card

A tiny JSON database in Golang

Installation

Install using go get github.com/sdomino/scribble.

Usage

// a new scribble driver, providing the directory where it will be writing to,
// and a qualified logger if desired
db, err := scribble.New(dir, nil)
if err != nil {
  fmt.Println("Error", err)
}

// Write a fish to the database
fish := Fish{}
if err := db.Write("fish", "onefish", fish); err != nil {
  fmt.Println("Error", err)
}

// Read a fish from the database (passing fish by reference)
onefish := Fish{}
if err := db.Read("fish", "onefish", &onefish); err != nil {
  fmt.Println("Error", err)
}

// Read all fish from the database, unmarshaling the response.
records, err := db.ReadAll("fish")
if err != nil {
  fmt.Println("Error", err)
}

fishies := []Fish{}
for _, f := range records {
  fishFound := Fish{}
  if err := json.Unmarshal([]byte(f), &fishFound); err != nil {
    fmt.Println("Error", err)
  }
  fishies = append(fishies, fishFound)
}

// Delete a fish from the database
if err := db.Delete("fish", "onefish"); err != nil {
  fmt.Println("Error", err)
}

// Delete all fish from the database
if err := db.Delete("fish", ""); err != nil {
  fmt.Println("Error", err)
}

Documentation

  • Complete documentation is available on godoc.
  • Coverage Report is available on gocover

Todo/Doing

  • Support for windows
  • Better support for concurrency
  • Better support for sub collections
  • More methods to allow different types of reads/writes
  • More tests (you can never have enough!)
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].