Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add next.jdbc + SQLite driver #66

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 49 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,54 +12,55 @@ Here the instructions on how to build your own Clojure projects with GraalVM.

Here the list of libraries tested:

| Status | Library | Description | Remarks |
|:------------------:|------------------------------------------------------|---------------------------------------------------------------------|--------------------------------|
| :white_check_mark: | [Clojure core](./clojure) | Clojure core | |
| :white_check_mark: | [clojure spec](./spec) | Clojure Spec | |
| :white_check_mark: | [clojure/tools.logging](./tools-logging) | Logging library | |
| :white_check_mark: | [clojure/tools.logging+log4j](./tools-logging-log4j) | Logging library | |
| :white_check_mark: | [aleph](./aleph) | Web server | |
| :white_check_mark: | [amazonica+s3](./amazonica-s3) | Cloud API wrapper library | |
| :white_check_mark: | [asami](./asami) | Asami DB | |
| :white_check_mark: | [aws-api+s3](./aws-api-s3) | Cognitect AWS client library | |
| :white_check_mark: | [buffy](./buffy) | Buffy, The Byte Buffer Slayer | |
| :white_check_mark: | [carmine](./carmine) | Redis client and message queue for Clojure | |
| :white_check_mark: | [cheshire](./cheshire) | JSON parser/writer | |
| :white_check_mark: | [cli4clj](./cli4clj) | Interactive Command Line Interfaces (CLIs) for Clojure Applications | |
| :white_check_mark: | [cljfmt](./cljfmt) | Source Formatter | |
| :white_check_mark: | [clj-http-lite](./clj-http-lite) | Web client | |
| :x: | [clj-sophia](./clj-sophia) | A fast RAM-Disk hybrid storage | *Runtime error/JNA* |
| :white_check_mark: | [clj-uuid](./clj-uuid) | RFC4122 Unique Identifiers for Clojure | No objects in namespaced uuids |
| :white_check_mark: | [clara-rules](./clara-rules) | A Clojure forward-chaining rules engine | *Using AOT compiled session* |
| :white_check_mark: | [clostache](./clostache) | {{ mustache }} for Clojure | |
| :white_check_mark: | [component](./component) | Managing lifecycle and dependencies of software | |
| :white_check_mark: | [cprop](./cprop) | Configuration/property management | |
| :white_check_mark: | [datascript](./datascript) | Immutable database and Datalog query engine | |
| :warning: | [fastmath](./fastmath) | Fast and primitive math and stats library | *See README* |
| :white_check_mark: | [fire](./fire) | A lightweight clojure client for Firebase based using the REST API. | |
| :white_check_mark: | [hiccup](./hiccup) | Fast library for rendering HTML in Clojure | |
| :white_check_mark: | [http-kit](./http-kit) | Web server and server | |
| :white_check_mark: | [integrant](./integrant) | Alternative to mount, component etc. | |
| :white_check_mark: | [lacinia](./lacinia) | A GraphQL server implementation in pure Clojure | |
| :white_check_mark: | [loom](./loom) | A Graph manipulation and computation library. | |
| :x: | [monger](./monger) | An idiomatic Clojure MongoDB driver with sane defaults | |
| :white_check_mark: | [μ/log](./mulog) | Event logging system | |
| :white_check_mark: | [next.jdbc + honeysql](./next-jdbc) | Database driver and SQL-in-Clojure | |
| :white_check_mark: | [nippy](./nippy) | Clojure serialization/deserialization library | |
| :white_check_mark: | [pp-grid](./pp-grid) | A text-formatting library | |
| :white_check_mark: | [ring/jetty](./ring-jetty) | Web server | |
| :white_check_mark: | [RoaringBitmap](./roaring) | Bitset library | |
| :white_check_mark: | [safely](./safely) | Circuit breaker | |
| :white_check_mark: | [secure-random](./secure-random) | `SecureRandom` initialization | |
| :white_check_mark: | [selmer](./selmer) | A fast, Django inspired template system for Clojure. | |
| :white_check_mark: | [system](./system) | Layer on top of components | |
| :white_check_mark: | [tech.ml.dataset](./tech.ml.dataset) | A Clojure high performance data processing system | |
| :white_check_mark: | [timbre](./timbre) | Pure Clojure/Script logging library | |
| :white_check_mark: | [pedestal](./pedestal) | Pedestal is a sturdy and reliable base for services and APIs. | requires reflect-config.json |
| :white_check_mark: | [claypoole](./claypoole) | Claypoole: Threadpool tools for Clojure | |
| :white_check_mark: | [upit](./upit) | Very very simple library to initialise your app stack. | |
| :white_check_mark: | [zetasketch](./zetasketch) | Sketch data structures like HLL | requires reflect-config.json |
| :white_check_mark: | [pg2-core](./pg2-core) | A Fast PostgreSQL Driver For Clojure | |
| Status | Library | Description | Remarks |
|:------------------:|------------------------------------------------------|---------------------------------------------------------------------------------------------------|--------------------------------|
| :white_check_mark: | [Clojure core](./clojure) | Clojure core | |
| :white_check_mark: | [clojure spec](./spec) | Clojure Spec | |
| :white_check_mark: | [clojure/tools.logging](./tools-logging) | Logging library | |
| :white_check_mark: | [clojure/tools.logging+log4j](./tools-logging-log4j) | Logging library | |
| :white_check_mark: | [aleph](./aleph) | Web server | |
| :white_check_mark: | [amazonica+s3](./amazonica-s3) | Cloud API wrapper library | |
| :white_check_mark: | [asami](./asami) | Asami DB | |
| :white_check_mark: | [aws-api+s3](./aws-api-s3) | Cognitect AWS client library | |
| :white_check_mark: | [buffy](./buffy) | Buffy, The Byte Buffer Slayer | |
| :white_check_mark: | [carmine](./carmine) | Redis client and message queue for Clojure | |
| :white_check_mark: | [cheshire](./cheshire) | JSON parser/writer | |
| :white_check_mark: | [cli4clj](./cli4clj) | Interactive Command Line Interfaces (CLIs) for Clojure Applications | |
| :white_check_mark: | [cljfmt](./cljfmt) | Source Formatter | |
| :white_check_mark: | [clj-http-lite](./clj-http-lite) | Web client | |
| :x: | [clj-sophia](./clj-sophia) | A fast RAM-Disk hybrid storage | *Runtime error/JNA* |
| :white_check_mark: | [clj-uuid](./clj-uuid) | RFC4122 Unique Identifiers for Clojure | No objects in namespaced uuids |
| :white_check_mark: | [clara-rules](./clara-rules) | A Clojure forward-chaining rules engine | *Using AOT compiled session* |
| :white_check_mark: | [clostache](./clostache) | {{ mustache }} for Clojure | |
| :white_check_mark: | [component](./component) | Managing lifecycle and dependencies of software | |
| :white_check_mark: | [cprop](./cprop) | Configuration/property management | |
| :white_check_mark: | [datascript](./datascript) | Immutable database and Datalog query engine | |
| :warning: | [fastmath](./fastmath) | Fast and primitive math and stats library | *See README* |
| :white_check_mark: | [fire](./fire) | A lightweight clojure client for Firebase based using the REST API. | |
| :white_check_mark: | [hiccup](./hiccup) | Fast library for rendering HTML in Clojure | |
| :white_check_mark: | [http-kit](./http-kit) | Web server and server | |
| :white_check_mark: | [integrant](./integrant) | Alternative to mount, component etc. | |
| :white_check_mark: | [lacinia](./lacinia) | A GraphQL server implementation in pure Clojure | |
| :white_check_mark: | [loom](./loom) | A Graph manipulation and computation library. | |
| :x: | [monger](./monger) | An idiomatic Clojure MongoDB driver with sane defaults | |
| :white_check_mark: | [μ/log](./mulog) | Event logging system | |
| :white_check_mark: | [next.jdbc + honeysql](./next-jdbc) | Database driver and SQL-in-Clojure | |
| :white_check_mark: | [nippy](./nippy) | Clojure serialization/deserialization library | |
| :white_check_mark: | [pp-grid](./pp-grid) | A text-formatting library | |
| :white_check_mark: | [ring/jetty](./ring-jetty) | Web server | |
| :white_check_mark: | [RoaringBitmap](./roaring) | Bitset library | |
| :white_check_mark: | [safely](./safely) | Circuit breaker | |
| :white_check_mark: | [secure-random](./secure-random) | `SecureRandom` initialization | |
| :white_check_mark: | [selmer](./selmer) | A fast, Django inspired template system for Clojure. | |
| :white_check_mark: | [system](./system) | Layer on top of components | |
| :white_check_mark: | [tech.ml.dataset](./tech.ml.dataset) | A Clojure high performance data processing system | |
| :white_check_mark: | [timbre](./timbre) | Pure Clojure/Script logging library | |
| :white_check_mark: | [pedestal](./pedestal) | Pedestal is a sturdy and reliable base for services and APIs. | requires reflect-config.json |
| :white_check_mark: | [claypoole](./claypoole) | Claypoole: Threadpool tools for Clojure | |
| :white_check_mark: | [upit](./upit) | Very very simple library to initialise your app stack. | |
| :white_check_mark: | [zetasketch](./zetasketch) | Sketch data structures like HLL | requires reflect-config.json |
| :white_check_mark: | [pg2-core](./pg2-core) | A Fast PostgreSQL Driver For Clojure | |
| :white_check_mark: | [next.jdbc + SQLite Driver](./sqlite) | A modern low-level Clojure wrapper for JDBC-based access to databases combined with SQLite Driver | |


More libraries to come (*PRs are welcome*).
Expand Down
16 changes: 16 additions & 0 deletions sqlite/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/target
/classes
/checkouts
profiles.clj
pom.xml
pom.xml.asc
*.jar
*.class
/.lein-*
/.nrepl-port
.hgignore
.hg/
/.idea/
/sample-project.iml
/sqlite.iml
/.my-test.db
26 changes: 26 additions & 0 deletions sqlite/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# next.jdbc + SQLite Driver

Testing
whether [next.jdbc](https://github.com/seancorfield/next-jdbc) + [SQLite driver](https://github.com/xerial/sqlite-jdbc)
can be used in a native binary image with GraalVM(23).

The source code for this example was based on: https://github.com/ericdallo/sqlite-graalvm-sample

## Usage

Currently testing:

[org.xerial/sqlite-jdbc "3.41.2.1"]
[com.github.seancorfield/next.jdbc "1.3.955"]

Test with (requires a local GraalVM installation):

lein do clean, uberjar, native, run-native

## Results

[clojure.java.io :as io] :white_check_mark:

[next.jdbc :as jdbc] :white_check_mark:

[next.jdbc.result-set :as rs] :white_check_mark:
Loading