Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fern4lvarez/piladb
Lightweight RESTful database engine based on stack data structures
https://github.com/fern4lvarez/piladb
database go linux macos rest-api stack
Last synced: about 1 month ago
JSON representation
Lightweight RESTful database engine based on stack data structures
- Host: GitHub
- URL: https://github.com/fern4lvarez/piladb
- Owner: fern4lvarez
- License: mit
- Created: 2015-09-08T23:12:22.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-10-29T19:19:06.000Z (about 4 years ago)
- Last Synced: 2024-07-31T20:49:27.264Z (5 months ago)
- Topics: database, go, linux, macos, rest-api, stack
- Language: Go
- Homepage: https://www.piladb.org
- Size: 1.24 MB
- Stars: 205
- Watchers: 14
- Forks: 22
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - piladb - Lightweight RESTful database engine based on stack data structures. (Database / Databases Implemented in Go)
- awesome-go-storage - piladb - Lightweight RESTful database engine based on stack data structures. (Database)
- awesome-go - piladb - Lightweight RESTful database engine based on stack data structures - ★ 165 (Database)
- awesome-go-extra - piladb - 09-08T23:12:22Z|2020-10-29T19:19:06Z| (Generators / Databases Implemented in Go)
- awesome-go-storage - piladb - Lightweight RESTful database engine based on stack data structures. (Database)
README
piladb [![Build Status](https://travis-ci.org/fern4lvarez/piladb.svg?branch=master)](https://travis-ci.org/fern4lvarez/piladb) [![GoDoc](https://godoc.org/github.com/fern4lvarez/piladb?status.svg)](https://godoc.org/github.com/fern4lvarez/piladb) [![Go Report Card](https://goreportcard.com/badge/github.com/fern4lvarez/piladb)](https://goreportcard.com/report/github.com/fern4lvarez/piladb) [![codecov](https://codecov.io/gh/fern4lvarez/piladb/branch/master/graph/badge.svg)](https://codecov.io/gh/fern4lvarez/piladb) [![osw](https://img.shields.io/badge/%E2%89%85osw-supported-blue.svg)](http://oscillating.works)
======![Logo](http://i.imgur.com/tjQbm56.png)
> _[pee-lah-dee-bee]_. _pila_ means _stack_ or _battery_ in Spanish.
**piladb** is a lightweight RESTful database engine based on [stack data structures](
https://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29).
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`, and `FLUSH` 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
-------------* [Main documentation page](http://docs.piladb.org).
* [Go `pila` package documentation](https://godoc.org/github.com/fern4lvarez/piladb/pila).
* [`pilad`'s RESTful API documentation](pilad/).Install
-------You can download binaries for Linux and Mac in the
[**Releases**](https://github.com/fern4lvarez/piladb/releases/latest)
page.### From Source Code
> You need Go installed. Version 1.6+ recommended.
```bash
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.
```bash
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`](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`](https://golang.github.io/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](https://research.swtch.com/vgo) 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`](https://github.com/mitchellh/gox) installed.Credits
-------**piladb** is developed by [Fernando Álvarez](https://www.twitter.com/fern4lvarez)
and [≅oscillatingworks](https://www.oscillating.works) on a Dell XPS 13 laptop, running Ubuntu,
and using [`vim-go`](https://github.com/fatih/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](http://www.iconarchive.com/artist/graphicloads.html).
Typography [_Lily Script One_](http://www.fontspace.com/julia-petretta/lily-script-one) designed
by [Julia Petretta](http://www.fontspace.com/julia-petretta).License
-------MIT