dangdennis / petrol

Petrol's an OCaml SQL API made to go FAST.

Home Page:https://gopiandcode.github.io/petrol/petrol/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Petrol

Petrol is a Free software library that provides a high-level OCaml API for interacting with SQL databases. The aim of this interface is to provide a type-safe API to allow developers to define their SQL tables and queries directly in OCaml, thereby avoiding the impedence mismatch and fragility that comes with having to directly write SQL code, as is typical in a normal Caqti-based project.

open Petrol
open Petrol.Sqlite3

(* define a new schema *)
let schema = StaticSchema.init ()

(* declare a table *)
let example_table, Expr.[name; age] =
    StaticSchema.declare_table schema ~name:"example"
    Schema.[
        field "name" ~ty:Type.text;
        field "age" ~ty:Type.int
    ]

Petrol's DSL allows you to express complex SQL queries as simple OCaml function compositions:

open Petrol.Sqlite3

(* create a query *)
let insert_person ~name:n ~age:a db =
    Query.insert ~table:example_table
        ~values:Expr.[
            name := s n;
            age := i a
         ]
    |> Request.make_zero
    |> Petrol.exec db

See the rest of the documentation at here.

About

Petrol's an OCaml SQL API made to go FAST.

https://gopiandcode.github.io/petrol/petrol/index.html

License:Other


Languages

Language:OCaml 87.1%Language:Perl 9.9%Language:Raku 3.0%