📚 piladb - Awesome Go Library for Database
Lightweight RESTful database engine based on stack data structures.
Detailed Description of piladb
piladb
[pee-lah-dee-bee]. pila means stack or battery in Spanish.
piladb is a lightweight RESTful database engine based on stack data structures.
Create as many stacks as you need, PUSH
or POP
elements of any kind, and have
access to the one on top always in constant time.
Features
- Stacks are auto-scalable and are only limited by the capacity of the host or by configuration.
- Available
POP
,PUSH
,PEEK
,SIZE
, andFLUSH
operations for each of the stacks. - Manage stacks and other resources by using a REST API, so you can use it with your favorite programming language.
- Manage elements in JSON-compatible data types: strings, numbers, arrays, objects, etc.
- Totally configurable using a REST API, or CLI parameters.
- In-memory store.
- Written in Go, i.e. binaries are self-contained and distributable.
Documentation
Install
You can download binaries for Linux and Mac in the Releases page.
From Source Code
You need Go installed. Version 1.6+ recommended.
go get github.com/fern4lvarez/piladb/...
cd $GOPATH/src/github.com/fern4lvarez/piladb
make pilad
Clients
-
shell: https://github.com/oscillatingworks/piladb-sh:
source <(curl -s https://raw.githubusercontent.com/oscillatingworks/piladb-sh/master/piladb.sh) piladb_help
Development
You need Go installed. Version 1.6+ is mandatory.
go get github.com/fern4lvarez/piladb/...
cd $GOPATH/src/github.com/fern4lvarez/piladb
make all
You can also use Docker to create piladb
builds or development environment.
Please see the dev
directory.
Dependencies
piladb aims to minimize the amount of third party dependencies and to rely on the Go standard library as much as possible.
Even though, it uses dep
to vendor its few
dependencies.
piladb also provides a go.mod
file, which turns this project into a Go module.
To learn more about Go modules and the vgo
prototype, please read the
Go & Versioning series by Russ Cox.
Code Coverage
We aim for a universal 100% code coverage for all suppackages. If some piece of code is not testable, it probably needs to be changed.
Check current code coverage of the project: https://codecov.io/gh/fern4lvarez/piladb
Release
You need Docker installed.
It's possible to get pilad
binary releases by executing make release
.
This will cross-compile pilad
in all available OS's and architectures.
Alternatively, if you don't have docker installed, you can release pilad
binary
with the make gox
command. For this, you need a configured Go environment and
gox
installed.
Credits
piladb is developed by Fernando Álvarez
and ≅oscillatingworks on a Dell XPS 13 laptop, running Ubuntu,
and using vim-go
plugin within the vim
editor,
in Berlin and Madrid, with the support of Gali, Godín and other friends.
Logo was designed by GraphicLoads.
Typography Lily Script One designed by Julia Petretta.
License
MIT