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