Skip to content

Commit 90eed57

Browse files
authored
Adding more use cases, bump Pedestal(0.7.2) and Clojure(1.12.0) to latest version (#64)
* add more use case examples and bump dependencies * update readme * add no fallback * remove native-image specific path
1 parent 164e116 commit 90eed57

File tree

6 files changed

+98
-59
lines changed

6 files changed

+98
-59
lines changed

README.md

+47-47
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,53 @@ Here the instructions on how to build your own Clojure projects with GraalVM.
1212

1313
Here the list of libraries tested:
1414

15-
| Status | Library | Description | Remarks |
16-
|:-------------------:|------------------------------------------------------|---------------------------------------------------------------------|--------------------------------|
17-
| :white_check_mark: | [Clojure core](./clojure) | Clojure core | |
18-
| :white_check_mark: | [clojure spec](./spec) | Clojure Spec | |
19-
| :white_check_mark: | [clojure/tools.logging](./tools-logging) | Logging library | |
20-
| :white_check_mark: | [clojure/tools.logging+log4j](./tools-logging-log4j) | Logging library | |
21-
| :white_check_mark: | [aleph](./aleph) | Web server | |
22-
| :white_check_mark: | [amazonica+s3](./amazonica-s3) | Cloud API wrapper library | |
23-
| :white_check_mark: | [asami](./asami) | Asami DB | |
24-
| :white_check_mark: | [aws-api+s3](./aws-api-s3) | Cognitect AWS client library | |
25-
| :white_check_mark: | [buffy](./buffy) | Buffy, The Byte Buffer Slayer | |
26-
| :white_check_mark: | [carmine](./carmine) | Redis client and message queue for Clojure | |
27-
| :white_check_mark: | [cheshire](./cheshire) | JSON parser/writer | |
28-
| :white_check_mark: | [cli4clj](./cli4clj) | Interactive Command Line Interfaces (CLIs) for Clojure Applications | |
29-
| :white_check_mark: | [cljfmt](./cljfmt) | Source Formatter | |
30-
| :white_check_mark: | [clj-http-lite](./clj-http-lite) | Web client | |
31-
| :x: | [clj-sophia](./clj-sophia) | A fast RAM-Disk hybrid storage | *Runtime error/JNA* |
32-
| :white_check_mark: | [clj-uuid](./clj-uuid) | RFC4122 Unique Identifiers for Clojure | No objects in namespaced uuids |
33-
| :white_check_mark: | [clara-rules](./clara-rules) | A Clojure forward-chaining rules engine | *Using AOT compiled session* |
34-
| :white_check_mark: | [clostache](./clostache) | {{ mustache }} for Clojure | |
35-
| :white_check_mark: | [component](./component) | Managing lifecycle and dependencies of software | |
36-
| :white_check_mark: | [cprop](./cprop) | Configuration/property management | |
37-
| :white_check_mark: | [datascript](./datascript) | Immutable database and Datalog query engine | |
38-
| :warning: | [fastmath](./fastmath) | Fast and primitive math and stats library | *See README* |
39-
| :white_check_mark: | [fire](./fire) | A lightweight clojure client for Firebase based using the REST API. | |
40-
| :white_check_mark: | [hiccup](./hiccup) | Fast library for rendering HTML in Clojure | |
41-
| :white_check_mark: | [http-kit](./http-kit) | Web server and server | |
42-
| :white_check_mark: | [integrant](./integrant) | Alternative to mount, component etc. | |
43-
| :white_check_mark: | [lacinia](./lacinia) | A GraphQL server implementation in pure Clojure | |
44-
| :white_check_mark: | [loom](./loom) | A Graph manipulation and computation library. | |
45-
| :x: | [monger](./monger) | An idiomatic Clojure MongoDB driver with sane defaults | |
46-
| :white_check_mark: | [μ/log](./mulog) | Event logging system | |
47-
| :white_check_mark: | [next.jdbc + honeysql](./next-jdbc) | Database driver and SQL-in-Clojure | |
48-
| :white_check_mark: | [nippy](./nippy) | Clojure serialization/deserialization library | |
49-
| :white_check_mark: | [pp-grid](./pp-grid) | A text-formatting library | |
50-
| :white_check_mark: | [ring/jetty](./ring-jetty) | Web server | |
51-
| :white_check_mark: | [RoaringBitmap](./roaring) | Bitset library | |
52-
| :white_check_mark: | [safely](./safely) | Circuit breaker | |
53-
| :white_check_mark: | [secure-random](./secure-random) | `SecureRandom` initialization | |
54-
| :white_check_mark: | [selmer](./selmer) | A fast, Django inspired template system for Clojure. | |
55-
| :white_check_mark: | [system](./system) | Layer on top of components | |
56-
| :white_check_mark: | [tech.ml.dataset](./tech.ml.dataset) | A Clojure high performance data processing system | |
57-
| :white_check_mark: | [timbre](./timbre) | Pure Clojure/Script logging library | |
58-
| :white_check_mark: | [pedestal](./pedestal) | Pedestal is a sturdy and reliable base for services and APIs. | |
59-
| :white_check_mark: | [claypoole](./claypoole) | Claypoole: Threadpool tools for Clojure | |
60-
| :white_check_mark: | [upit](./upit) | Very very simple library to initialise your app stack. | |
61-
| ::white_check_mark: | [zetasketch](./zetasketch) | Sketch data structures like HLL | requires reflect-config.json |
15+
| Status | Library | Description | Remarks |
16+
|:------------------:|------------------------------------------------------|---------------------------------------------------------------------|--------------------------------|
17+
| :white_check_mark: | [Clojure core](./clojure) | Clojure core | |
18+
| :white_check_mark: | [clojure spec](./spec) | Clojure Spec | |
19+
| :white_check_mark: | [clojure/tools.logging](./tools-logging) | Logging library | |
20+
| :white_check_mark: | [clojure/tools.logging+log4j](./tools-logging-log4j) | Logging library | |
21+
| :white_check_mark: | [aleph](./aleph) | Web server | |
22+
| :white_check_mark: | [amazonica+s3](./amazonica-s3) | Cloud API wrapper library | |
23+
| :white_check_mark: | [asami](./asami) | Asami DB | |
24+
| :white_check_mark: | [aws-api+s3](./aws-api-s3) | Cognitect AWS client library | |
25+
| :white_check_mark: | [buffy](./buffy) | Buffy, The Byte Buffer Slayer | |
26+
| :white_check_mark: | [carmine](./carmine) | Redis client and message queue for Clojure | |
27+
| :white_check_mark: | [cheshire](./cheshire) | JSON parser/writer | |
28+
| :white_check_mark: | [cli4clj](./cli4clj) | Interactive Command Line Interfaces (CLIs) for Clojure Applications | |
29+
| :white_check_mark: | [cljfmt](./cljfmt) | Source Formatter | |
30+
| :white_check_mark: | [clj-http-lite](./clj-http-lite) | Web client | |
31+
| :x: | [clj-sophia](./clj-sophia) | A fast RAM-Disk hybrid storage | *Runtime error/JNA* |
32+
| :white_check_mark: | [clj-uuid](./clj-uuid) | RFC4122 Unique Identifiers for Clojure | No objects in namespaced uuids |
33+
| :white_check_mark: | [clara-rules](./clara-rules) | A Clojure forward-chaining rules engine | *Using AOT compiled session* |
34+
| :white_check_mark: | [clostache](./clostache) | {{ mustache }} for Clojure | |
35+
| :white_check_mark: | [component](./component) | Managing lifecycle and dependencies of software | |
36+
| :white_check_mark: | [cprop](./cprop) | Configuration/property management | |
37+
| :white_check_mark: | [datascript](./datascript) | Immutable database and Datalog query engine | |
38+
| :warning: | [fastmath](./fastmath) | Fast and primitive math and stats library | *See README* |
39+
| :white_check_mark: | [fire](./fire) | A lightweight clojure client for Firebase based using the REST API. | |
40+
| :white_check_mark: | [hiccup](./hiccup) | Fast library for rendering HTML in Clojure | |
41+
| :white_check_mark: | [http-kit](./http-kit) | Web server and server | |
42+
| :white_check_mark: | [integrant](./integrant) | Alternative to mount, component etc. | |
43+
| :white_check_mark: | [lacinia](./lacinia) | A GraphQL server implementation in pure Clojure | |
44+
| :white_check_mark: | [loom](./loom) | A Graph manipulation and computation library. | |
45+
| :x: | [monger](./monger) | An idiomatic Clojure MongoDB driver with sane defaults | |
46+
| :white_check_mark: | [μ/log](./mulog) | Event logging system | |
47+
| :white_check_mark: | [next.jdbc + honeysql](./next-jdbc) | Database driver and SQL-in-Clojure | |
48+
| :white_check_mark: | [nippy](./nippy) | Clojure serialization/deserialization library | |
49+
| :white_check_mark: | [pp-grid](./pp-grid) | A text-formatting library | |
50+
| :white_check_mark: | [ring/jetty](./ring-jetty) | Web server | |
51+
| :white_check_mark: | [RoaringBitmap](./roaring) | Bitset library | |
52+
| :white_check_mark: | [safely](./safely) | Circuit breaker | |
53+
| :white_check_mark: | [secure-random](./secure-random) | `SecureRandom` initialization | |
54+
| :white_check_mark: | [selmer](./selmer) | A fast, Django inspired template system for Clojure. | |
55+
| :white_check_mark: | [system](./system) | Layer on top of components | |
56+
| :white_check_mark: | [tech.ml.dataset](./tech.ml.dataset) | A Clojure high performance data processing system | |
57+
| :white_check_mark: | [timbre](./timbre) | Pure Clojure/Script logging library | |
58+
| :white_check_mark: | [pedestal](./pedestal) | Pedestal is a sturdy and reliable base for services and APIs. | requires reflect-config.json |
59+
| :white_check_mark: | [claypoole](./claypoole) | Claypoole: Threadpool tools for Clojure | |
60+
| :white_check_mark: | [upit](./upit) | Very very simple library to initialise your app stack. | |
61+
| :white_check_mark: | [zetasketch](./zetasketch) | Sketch data structures like HLL | requires reflect-config.json |
6262

6363

6464
More libraries to come (*PRs are welcome*).

pedestal/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ pom.xml.asc
1010
/.nrepl-port
1111
.hgignore
1212
.hg/
13+
/.idea/
14+
/pedestal.iml

pedestal/README.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
# pedestal
22

3-
Testing whether [pedestal](https://github.com/pedestal/pedestal) library can be used in a native binary image with GraalVM.
3+
Testing whether [pedestal](https://github.com/pedestal/pedestal) library can be used in a native binary image with
4+
GraalVM(23).
45

56
## Usage
67

78
Currently testing:
89

9-
[io.pedestal/pedestal.service "0.5.10"]
10+
[org.clojure/clojure "1.12.0"]
11+
[io.pedestal/pedestal.service "0.7.2"]
12+
[io.pedestal/pedestal.jetty "0.7.2"]
1013

1114
Test with:
1215

@@ -16,3 +19,5 @@ Test with:
1619

1720
`[io.pedestal.http :as http]` :white_check_mark:
1821
`[io.pedestal.jetty :as jetty]` :white_check_mark:
22+
`[io.pedestal.http.body-params :as body-params]` :white_check_mark:
23+
`[io.pedestal.interceptor :as pedestal.interceptor]` :white_check_mark:

pedestal/project.clj

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
(defproject pedestal "0.1.0-SNAPSHOT"
22

33
:paths ["src"]
4-
:dependencies [[org.clojure/clojure "1.10.2"]
5-
[io.pedestal/pedestal.service "0.5.10"]
6-
[io.pedestal/pedestal.jetty "0.5.10"]]
4+
:dependencies [[org.clojure/clojure "1.12.0"]
5+
[io.pedestal/pedestal.service "0.7.2"]
6+
[io.pedestal/pedestal.jetty "0.7.2"]]
77

88
:main simple.main
99

@@ -16,13 +16,15 @@
1616
{"native"
1717
["shell"
1818
"native-image"
19+
"--no-fallback"
1920
"--report-unsupported-elements-at-runtime"
2021
"--no-server"
2122
"--allow-incomplete-classpath"
2223
"--initialize-at-build-time"
2324
"--enable-url-protocols=http,https"
2425
"-Dio.pedestal.log.defaultMetricsRecorder=nil"
2526
"-jar" "./target/${:uberjar-name:-${:name}-${:version}-standalone.jar}"
27+
"-H:ReflectionConfigurationFiles=reflect-config.json"
2628
"-H:Name=./target/${:name}"]
2729

2830
"run-native" ["shell" "./target/${:name}"]})

pedestal/reflect-config.json

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[
2+
{
3+
"name": "org.eclipse.jetty.server.ServerConnector",
4+
"allDeclaredConstructors": true,
5+
"allPublicConstructors": true,
6+
"allDeclaredMethods": true,
7+
"allPublicMethods": true,
8+
"allDeclaredClasses": true,
9+
"allPublicClasses": true
10+
},
11+
{
12+
"name": "org.eclipse.jetty.server.ConnectionFactory[]",
13+
"unsafeAllocated": true
14+
}
15+
]

0 commit comments

Comments
 (0)