opam-version: "2.0"
maintainer: "mfp@acm.org"
authors: ["Mauricio Fernandez <mfp@acm.org>"]
license: "LGPL-2.1-only with OCaml-LGPL-linking-exception"
homepage: "http://github.com/mfp/ocaml-sqlexpr"
dev-repo: "git+https://github.com/mfp/ocaml-sqlexpr.git"
bug-reports: "https://github.com/mfp/ocaml-sqlexpr/issues"
build: [
  [ "env" "ESTRING=%{estring:enable}%" "jbuilder" "build" "-p" name "-j" jobs ]
]
depends: [
  "ocaml" {>= "4.02.0"}
  "jbuilder"
  "csv"
  "lwt" {>= "2.2.0"}
  "lwt_ppx"
  "sqlite3" {>= "2.0.4"} | "sqlite3" {= "2.0.3"}
  "base-unix"
  "ppx_sqlexpr"
]
depopts: [ "estring" ]

messages: [
  "For the PPX syntax extension, install package ppx_sqlexpr"
  {!ppx_sqlexpr:installed}
  "For the Camlp4 syntax extension, install package pa_sqlexpr"
  {!pa_sqlexpr:installed}
]
post-messages: [
  "The sqlexpr.ppx and sqlexpr.syntax package aliases will be dropped
eventually. Switch to ppx_sqlexpr and pa_sqlexpr now."
  ]
synopsis: "Type-safe, convenient SQLite database access."
description: """
Minimalistic library and syntax extension for type-safe, convenient
execution of SQL statements. Currently compatible with Sqlite3.

Sqlexpr features:

* automated prepared statement caching, param binding, data
extraction, error checking (including automatic stmt reset to avoid
BUSY/LOCKED errors in subsequent queries), stmt finalization on db
close, etc.

* HOFs like iter, fold, transaction

* support for different concurrency models: everything is functorized
over a THREAD monad, so you can for instance do concurrent folds/iters
with Lwt

* support for SQL stmt syntax checks and some extra semantic checking
(column names, etc)"""
url {
  src:
    "https://github.com/mfp/ocaml-sqlexpr/releases/download/0.9.0/ocaml-sqlexpr-0.9.0.tar.gz"
  checksum: "md5=edca74c7c1af6f7ebb0c46598f242552"
}
