A Provider is a layer of communication between Josh, and a database. Each provider has a precise set of instructions it can receive from Josh, where each instruction tells it what to do in the database.
At the moment, the only two providers that are functional are sqlite and mongo. As I continue developing, I'll be adding more providers to the list - see the list on the left in the Table of Content to see which ones I'm working on!
You sure can! Even though I do my best to create providers for popular storage systems, I can't possibly create all of them. If you have a storage system you'd like to use, by all means you can go about Creating a Provider.
Official providers are always available under the
@joshdb/
scope. Only official providers are supported officially, and are guaranteed functional and safe. Install third-party providers at your own risks!
Providers must be installed separately from Josh and are installed as any NPM module is, through either yarn
or npm
in the command line. For example, yarn add @joshdb/sqlite
. Note that each provider may have pre-requisites before installation, check the provider page for details.
To use a provider, simply require it, give it to Josh along with the providerOptions
if required, and Josh does the rest!
For example, again with the sqlite module:
const Josh = require("@joshdb/core");const provider = require("@joshdb/sqlite");const myDb = new Josh({name: 'test',provider,providerOptions: {dataDir: './data'}});