Setup: As new project

Clear offers a CLI (Command Line Interface) which is still in Alpha. Documentation for building a new project with Clear + Kemal will be written once the feature is done. As of now, you can just follow the paragraph below.

Setup: In existing project

$ crystal init app <yourappname>
$ cd <yourappname>

In `shard.yml`

Add your dependency in the dependencies list of your shard.yml

github: anykeyh/clear
branch: master

Then download the library:

$ shards install

In your source code

Assuming your main entry point of your application is src/ , you can require and initialize Clear:

# append to your require list on top:
require "clear"
# initialize a pool of database connection:
Clear::SQL.init("postgres://[email protected]/my_database",
connection_pool_size: 5)

Step by Step

  • require "clear" load the source code of Clear and provide everything needed to use the library.

  • Clear::SQL.init prepare a certain number of connection to your database. The URL is a convention used to connect to the database, and follow this schema:


More information about the URL notation can be found here

  • connection_pool_size: 5 is optional but offers the possibility to concurrent fibers to run query at the same time. It's useful if you use an event-driven server, like Kemal.

Installation customization

You may want to install a smaller version of Clear by calling :

require "clear/core"

This will add clear without the build-in CLI and without some extensions (jsonb, bcrypt etc...).