package sqlite3
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=081759b58dc0c49030a78628070377c6c6b20858411ed495f44cf19003a95503
    
    
  md5=f6fa60e9e6ff307480af88e5816daee7
    
    
  Description
sqlite3-ocaml is an OCaml library with bindings to the SQLite3 client API. Sqlite3 is a self-contained, serverless, zero-configuration, transactional SQL database engine with outstanding performance for many use cases.
README
SQLite3-OCaml - SQLite3 Bindings for OCaml
What is SQLite3-OCaml?
SQLite3-OCaml is an OCaml library with bindings to the SQLite3 client API. Sqlite3 is a self-contained, serverless, zero-configuration, transactional SQL database engine with outstanding performance for many use cases.
These bindings are written in a way that enables a friendly coexistence with the old (version 2) SQLite and its OCaml wrapper ocaml-sqlite.
Usage
The API in file src/sqlite3.mli is fully documented. It can also be found online.
SQLite3 has its own online documentation.
Examples
The test-directory in this distribution contains a few simple examples for testing various features of this library.
Build issues
SQLite3-OCaml depends on pkg-config to locate and compile against an SQLite3 library.
If the SQLite3 version is greater than or equal to 3.3.7, it is assumed that it supports Run-Time Loadable Extensions. If this feature has been explicitly disabled in the library, building applications will fail with:
Undefined symbols for architecture ...:
  "_sqlite3_enable_load_extension", referenced from:
      _caml_sqlite3_enable_load_extension in libsqlite3_stubs.a(sqlite3_stubs.o)
     (maybe you meant: _caml_sqlite3_enable_load_extension)- You can check if your library is missing loadable extensions by searching it for the string OMIT_LOAD_EXTENSION.
- If you need to change where pkg-configwill look for the SQLite3 library, set thePKG_CONFIG_PATHenvironment variable to the new directory. This can be automated by setting theSQLITE3_OCAML_BREWCHECKenvironment variable. This will instruct the build to see if a brewed version of SQLite is installed and routepkg-configappropriately.
- You can explicitly disable run-time loadable extensions by calling configurewith the flag--disable-loadable-extensionsor by setting the environment variableSQLITE3_DISABLE_LOADABLE_EXTENSIONSif linking problems persist.
- Due to frequent installation issues with loadable extensions on Mac OS X, the default there is to disable them. You will have to explicitly enable them on that platform.
Credits
- Mikhail Fedotov wrote ocaml-sqlite for SQLite version 2. His bindings served as a reference for this wrapper, but sqlite3 is written completely from scratch since the C interface changed significantly.
- Christian Szegedy wrote the initial release for SQLite version 3.
- Markus Mottl rewrote Christian's bindings for Jane Street Holding, LLC to clean up a few things and to make it perform better in multi-threaded environments.
- Enrico Tassi contributed support for user-defined scalar functions.
- Markus W. Weissmann contributed backup functionality.
Contact Information and Contributing
Please submit bugs reports, feature requests, contributions and similar to the GitHub issue tracker.
Up-to-date information is available at: https://mmottl.github.io/sqlite3-ocaml
Dependencies (7)
- 
  
    conf-sqlite3
  
  
    build
- 
  
    jbuilder
  
  
    >= "1.0+beta10"
- 
  
    configurator
  
  
    build
- 
  
    stdio
  
  
    build
- 
  
    base
  
  
    build
- 
  
    conf-pkg-config
  
  
    build
- 
  
    ocaml
  
  
    >= "4.04"
Dev Dependencies
None
Used by (15)
- benchpress
- benchpress-server
- 
  
    caqti-driver-sqlite3
  
  
    < "2.2.4"
- current
- 
  
    eliom
  
  
    < "9.0.0"
- google-drive-ocamlfuse
- lemonade-sqlite
- links-sqlite3
- obuilder
- ocluster
- 
  
    ocsigenserver
  
  
    < "5.0.1"
- ocsipersist-sqlite
- orm
- 
  
    ppx_minidebug
  
  
    >= "3.0.0"
- sqlite3_utils
Conflicts
None