autolevel.js

Automatically use the right abstract-leveldown module for your configuration
git clone git://git.finwo.net/lib/autolevel.js
Log | Files | Refs | README | LICENSE

README.md (3229B)


      1 # autolevel
      2 
      3 > Automatically use the right [abstract-leveldown][abstract-leveldown] module for your configuration
      4 
      5 ## Installation
      6 
      7 ```bash
      8 npm install --save autolevel
      9 ```
     10 
     11 For a full installation, supporting all types included in the code, run the following:
     12 
     13 ```bash
     14 npm install --save autolevel levelup leveldown mongodown memdown sqldown mssql mysql mysql2 sqlite3 pg pg-query-stream
     15 ```
     16 
     17 ## Why
     18 
     19 I was tired of looking for which combination of modules to install every time I started a new project for myself or
     20 work using [leveldb][leveldb]. This is simply a documented wrapper for common [abstract-leveldown][abstract-leveldown]
     21 adapters, passing options to the used [abstract-leveldown][abstract-leveldown] module and returning a [levelup][levelup]
     22 instance.
     23 
     24 Below you'll find which extra dependencies you'd need to connect to certain backends.
     25 
     26 ## Examples
     27 
     28 ```js
     29 // Load autolevel
     30 const autolevel = require('autolevel');
     31 
     32 // Some variables we'll show
     33 var db;
     34 
     35 // Autodetect backend using environment variables
     36 db = autolevel();
     37 
     38 // Load database from folder, relative to the app root
     39 db = autolevel('dir:data/');
     40 
     41 // Load database from folder, absolute path
     42 db = autolevel('dir://data/');
     43 
     44 // Use mongodb storage
     45 db = autolevel('mongodb://localhost:27017/database');
     46 
     47 // Use authenticated mysql backend
     48 db = autolevel('mysql://username:password@host:3306/database');
     49 
     50 ```
     51 
     52 ## Adapters
     53 
     54  type      | schemes/protocols        | driver                 | Dependencies
     55  --------- | ------------------------ | ---------------------- | ------------------------------------------
     56  plain     | dir, level, leveldb      | [leveldown][leveldown] | [levelup][levelup], [leveldown][leveldown]
     57  mongodb   | mongo, mongodb           | [mongodown][mongodown] | [levelup][levelup], [mongodown][mongodown]
     58  in-memory | ram, mem, memory         | [memdown][memdown]     | [levelup][levelup], [memdown][memdown]
     59  mssql     | mssql                    | [sqldown][sqldown]     | [levelup][levelup], [sqldown][sqldown], [mssql][mssql]
     60  mysql     | mysql                    | [sqldown][sqldown]     | [levelup][levelup], [sqldown][sqldown], [mysql][mysql]
     61  mysql2    | mysql2                   | [sqldown][sqldown]     | [levelup][levelup], [sqldown][sqldown], [mysql2][mysql2]
     62  sqlite3   | sqlite, sqlite3          | [sqldown][sqldown]     | [levelup][levelup], [sqldown][sqldown], [sqlite3][sqlite3]
     63  postgres  | pg, postgres, postgresql | [sqldown][sqldown]     | [levelup][levelup], [sqldown][sqldown], [pg][pg], [pg-query-stream][pg-query-stream]
     64  
     65 ## TODO
     66 
     67 - multilevel + auth + manifest support
     68 
     69 [abstract-leveldown]: https://npmjs.com/package/abstract-leveldown
     70 [level]: https://npmjs.com/package/level
     71 [leveldb]: http://leveldb.org/
     72 [levelup]: https://npmjs.com/package/levelup
     73 [leveldown]: https://npmjs.com/package/leveldown
     74 [mongodown]: https://npmjs.com/package/mongodown
     75 [memdown]: https://npmjs.com/package/memdown
     76 [mssql]: https://npmjs.com/package/mssql
     77 [mysql]: https://npmjs.com/package/mysql
     78 [mysql2]: https://npmjs.com/package/mysql2
     79 [pg]: https://npmjs.com/package/pg
     80 [pg-query-stream]: https://npmjs.com/package/pg-query-stream
     81 [sqldown]: https://npmjs.com/package/sqldown
     82 [sqlite3]: https://npmjs.com/package/sqlite3