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