# FeatureBase This is FeatureBase, a crazy fast database/analytics engine based on [B-trees](https://en.wikipedia.org/wiki/B-tree) and [Roaring Bitmaps](https://roaringbitmap.org/). FeatureBase is written in Go and supports SQL. ## License FeatureBase is released under the Apache 2.0 Open Source license. ## Getting Started You need to have [Docker](https://docs.docker.com/get-docker/) and [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) installed to use this guide. ### Build FeatureBase Server with Docker (Optional) To build Featurebase from source with Docker, run the following from a prompt: ``` git clone https://github.com/FeatureBaseDB/featurebase.git cd featurebase docker build -t featurebasedb/featurebase:latest . ``` ### Run FeatureBase from Docker To run FeatureBase from Docker, enter the following from a prompt: ``` docker run -p 10101:10101 featurebasedb/featurebase:latest ``` ### Create a Database and Insert Data To create a sample database, run the following: ``` curl -X POST http://0.0.0.0:10101/sql -d 'CREATE TABLE planets (_id id, planet_name string, moons stringset, diameter_in_km int);' ``` To insert data into the `planets` database, do the following: ``` curl -X POST http://0.0.0.0:10101/sql -d "INSERT INTO planets VALUES (1, 'Mercury', [''], 4879), (2, 'Venus', [''], 12104), (3, 'Earth', ['Moon'], 12742);" ``` You may insert as many records as you like in a single POST. ### Query Data To query the data in a FeatureBase database, do the following: ``` curl -X POST http://0.0.0.0:10101/sql -d "SELECT * FROM planets;" | python3 -m json.tool ``` The output should be as follows: ``` { "schema": { "fields": [ { "name": "_id", "type": "id", "base-type": "id", "type-info": null }, { "name": "planet_name", "type": "string", "base-type": "string", "type-info": null }, { "name": "moons", "type": "stringset", "base-type": "stringset", "type-info": null }, { "name": "diameter_in_km", "type": "int", "base-type": "int", "type-info": null } ] }, "data": [ [ 1, "Mercury", null, 4879 ], [ 2, "Venus", null, 12104 ], [ 3, "Earth", [ "Moon" ], 12742 ] ], "execution-time": 1006 } ``` ## Community and Support Join us on [Discord](https://discord.gg/featurefirstai).