Coder Social home page Coder Social logo

rel's Introduction

rel — Relational database programming for OCaml

%%VERSION%%

Rel is a library for programming with relational databases in OCaml. It provides:

  • Typed combinators to describe database rows and their representation as custom OCaml values.
  • Typed combinators to describe database schemas. Schemas can be translated to SQL data definitions or, conversly, generated for existing databases (external schema definition).
  • Automated schema changes via schema diffing.
  • Raw SQL statements typing and SQL generation helpers (parametric on SQL dialect).
  • Query language embedded in plain OCaml. Queries are typed, composable and compile to a single, flat, SQL query (experimental).
  • Support for using SQLite3 databases.

Rel is distributed under the ISC license. The base library has no dependencies. The Rel_cli library depends on cmdliner. The Rel_sqlite3 library depends on the C SQLite3 library (at least v3.38.5).

Homepage: https://erratique.ch/software/rel

Installation

rel can be installed with opam:

opam install rel
opam install rel conf-sqlite3 # with SQLite support

If you don't use opam consult the opam file for build instructions.

Documentation

The documentation can be consulted online or via odig doc rel.

Questions are welcome but better reled on the OCaml forum than on the issue tracker.

Acknowledgements

The query language of Rel is based on the following line of papers.

  • Ezra Cooper. The Script-Writer’s Dream: How to Write Great SQL in Your Own Language, and Be Sure It Will Succeed. 2009. Full text

  • James Cheney et al. A practical theory of language-integrated query. 2013. Full text

  • Suzuki et al. Finally, safely-extensible and efficient language-integrated query. 2016. Full text

  • Oleg Kiselyov et al. Sound and Efficient Language-Integrated Query -- Maintaining the ORDER. 2017. Full text

rel's People

Contributors

dbuenzli avatar

Stargazers

lubega simon avatar Rizo I avatar Idir Lankri avatar José Eduardo Monteiro avatar Chris Pressey avatar  avatar Vincent Bernardoff avatar Nyi Nyi avatar David.Gao avatar Stéphane Legrand avatar Dwayne Crooks avatar Corentin Leruth avatar Sebastian Porto avatar afrizaloky avatar Alexey Nikolaev avatar Varun Kohli avatar Shohei Shimomura avatar Philip Zucker avatar Ryan Moore avatar joseferben avatar Tristan de Cacqueray avatar Sora Morimoto avatar Kevin Smith avatar 爱可可-爱生活 avatar Hyeseong Kim avatar  avatar zach avatar Nikita avatar Andrejs Agejevs avatar  avatar Seb Mondet avatar Dimitris Mostrous avatar Martin Kinoo avatar Xavier Van de Woestyne avatar Andrey Popp avatar Marcello Seri avatar Evgeny avatar Bikal Lem avatar Jules Aguillon avatar  avatar

Watchers

 avatar  avatar

rel's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.