github.com/fern4lvarez/piladb@v0.2.0-alpha.20180407/README.md (about) 1 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) 2 ====== 3 4 ![Logo](http://i.imgur.com/tjQbm56.png) 5 6 > _[pee-lah-dee-bee]_. _pila_ means _stack_ or _battery_ in Spanish. 7 8 **piladb** is a lightweight RESTful database engine based on [stack data structures]( 9 https://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29). 10 Create as many stacks as you need, `PUSH` or `POP` elements of any kind, and have 11 access to the one on top always in constant time. 12 13 Features 14 -------- 15 16 * Stacks are auto-scalable and are only limited by the capacity of the host 17 or by configuration. 18 * Available `POP`, `PUSH`, `BASE`, `PEEK`,`SIZE`, `EMPTY`, and `FLUSH` operations for each of the stacks. 19 * Manage stacks and other resources by using a REST API, so you can use it with 20 your favorite programming language. 21 * Manage elements in JSON-compatible data types: strings, numbers, arrays, objects, etc. 22 * Totally configurable using a REST API, or CLI parameters. 23 * In-memory store. 24 * Written in Go, i.e. binaries are self-contained and distributable. 25 26 Documentation 27 ------------- 28 29 * [Main documentation page](http://docs.piladb.org). 30 * [Go `pila` package documentation](https://godoc.org/github.com/fern4lvarez/piladb/pila). 31 * [`pilad`'s RESTful API documentation](pilad/). 32 33 Install 34 ------- 35 36 You can download binaries for Linux and Mac in the 37 [**Releases**](https://github.com/fern4lvarez/piladb/releases/latest) 38 page. 39 40 ### From Source Code 41 42 > You need Go installed. Version 1.6+ recommended. 43 44 ```bash 45 go get github.com/fern4lvarez/piladb/... 46 cd $GOPATH/src/github.com/fern4lvarez/piladb 47 make pilad 48 ``` 49 50 Clients 51 ------- 52 53 * shell: https://github.com/oscillatingworks/piladb-sh: 54 55 ``` 56 source <(curl -s https://raw.githubusercontent.com/oscillatingworks/piladb-sh/master/piladb.sh) 57 piladb_help 58 ``` 59 60 Development 61 ----------- 62 63 > You need Go installed. Version 1.6+ is mandatory. 64 65 ```bash 66 go get github.com/fern4lvarez/piladb/... 67 cd $GOPATH/src/github.com/fern4lvarez/piladb 68 make all 69 ``` 70 71 You can also use Docker to create `piladb` builds or development environment. 72 Please see the [`dev`](dev/) directory. 73 74 Dependencies 75 ------------ 76 77 **piladb** aims to minimize the amount of third party dependencies and to rely on 78 the Go standard library as much as possible. 79 80 Even though, it uses [`dep`](https://golang.github.io/dep/) to vendor its few 81 dependencies. 82 83 **piladb** also provides a `go.mod` file, which turns this project into a Go module. 84 To learn more about Go modules and the `vgo` prototype, please read the 85 [Go & Versioning](https://research.swtch.com/vgo) series by Russ Cox. 86 87 Code Coverage 88 ------------- 89 90 We aim for a universal 100% code coverage for all suppackages. If some 91 piece of code is not testable, it probably needs to be changed. 92 93 Check current code coverage of the project: https://codecov.io/gh/fern4lvarez/piladb 94 95 Release 96 ------- 97 98 > You need Docker installed. 99 100 It's possible to get `pilad` binary releases by executing `make release`. 101 This will cross-compile `pilad` in all available OS's and architectures. 102 103 Alternatively, if you don't have docker installed, you can release `pilad` binary 104 with the `make gox` command. For this, you need a configured Go environment and 105 [`gox`](https://github.com/mitchellh/gox) installed. 106 107 Credits 108 ------- 109 110 **piladb** is developed by [Fernando Álvarez](https://www.twitter.com/fern4lvarez) 111 and [≅oscillatingworks](https://www.oscillating.works) on a Dell XPS 13 laptop, running Ubuntu, 112 and using [`vim-go`](https://github.com/fatih/vim-go) plugin within the `vim` editor, 113 in Berlin and Madrid, with the support of Gali, Godín and other friends. 114 115 Logo was designed by [GraphicLoads](http://www.iconarchive.com/artist/graphicloads.html). 116 117 Typography [_Lily Script One_](http://www.fontspace.com/julia-petretta/lily-script-one) designed 118 by [Julia Petretta](http://www.fontspace.com/julia-petretta). 119 120 License 121 ------- 122 123 MIT