Using the SQLite client for Deno
The third database system we will take a look at is SQLite. While PostgreSQL and MySQL provides a self-contained service that is created to support multiple concurrent connections, an SQLite database is simply stored on a binary file and is directly accessed by your code. This enables SQLite to be used for easy prototyping and is ideal for when database read/write is not heavily needed. This is not to say that SQLite is not used in production, but the use cases are different from the other database systems we have looked at; for example, in standalone applications where data needs to be stored, in a browser's local storage, or in cellphones.
There is currently an SQLite library for Deno written by
library contains SQLite3 compiled to WebAssembly (WASM) and is the easiest one
to start with.
There also exists an FFI implementation of the SQLite driver maintained by Deno Drivers which can be foundhere. We are not using this module in this tutorial as it requires you to have SQLite installed on your system. However, when using SQLite in production or performance is important, the FFI implementation is recommended over the WASM module.
You can find the library here.
For this step, we need two things: an SQLite database and a Deno script.
As our SQLite library does not require us to install anything, we can simply import the module and start using it.
Writing the connection#
To get started, add a file called
sqlite.ts, and import the module.
As SQLite simply reads a file, you don't need to establish any connection, but
you will have to run the script with
--allow-write due to
the permissions in Deno to access the file. You can also run the database in
memory, in which case you don't have to pass in a path to a file or add the
By running this file, you should get an output, and exit with code 0.