all repos — litestore @ 32d015b820d63217659c2c4ff40a5e2182695670

A minimalist nosql document store.

admin/md/overview.md

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
## Overview

LiteStore is a lightweight, self-contained, RESTful, multi-format document store server written in [Nim](http://www.nim-lang.org). It aims to be a very simple and lightweight backend ideal for prototyping and testing REST APIs and single-page applications.

### Rationale 

If you ever wanted to build a simple single-page application in your favorite framework, just to try something out or as a prototype, you inevitably had to answer the question _"What backend should I use?"_

Sure, setting up a simple REST service using [Sinatra](http://www.sinatrarb.com) or [Express.js](http://expressjs.com) is not very hard, but if you want to distribute it, that backend will become a prerequisite for your app: you'll either distribute it with it, or install it beforehand on any machine you want to try your app on. Which is a shame, really, because single-page-applications are meant to be running anywhere _provided that they can access their backend_.

LiteStore aims to solve this problem. When you use LiteStore as the backend for your app, you only need to take _two files_ with you, at all times:

* The [litestore](class:cmd) executable file for your platform of choice (that's about 2MB in size)
* A datastore file

And yes, you can even store the code of your client-side application inside the datastore itself, along with your application data.

### Key Features

Despite being fairly small and self-contained, LiteStore comes with many useful features that are essential for many [use cases](#Use.Cases).

#### Multiformat documents

LiteStore can be used to store documents in virtually any format 

#### Document Tagging

#### Full-text Search

#### RESTful HTTP API

#### Directory Bulk Import/Export

#### Directory Mounting and Mirroring

### Use Cases

#### SPA prototyping backend

#### Personal Wiki/CMS backend

#### Static site backend

#### Lightweight file server

### Architecture

![LiteStore Architecture](images/litestore_arch.png)