|
1 | 1 | **Build:** |
2 | | - |
3 | | - |
| 2 | + |
| 3 | + |
| 4 | +[](https://openjdk.org/projects/jigsaw/) |
| 5 | + |
| 6 | +[](https://jspecify.dev) |
| 7 | +[](https://github.com/uber/NullAway) |
| 8 | +[](https://checkerframework.org) |
| 9 | +[](https://errorprone.info) |
| 10 | +[](https://maven.apache.org/enforcer/) |
4 | 11 | [](https://jqwik.net) |
5 | 12 | [](https://www.archunit.org) |
6 | 13 | [](https://spotbugs.github.io) |
7 | 14 | [](https://openjdk.org/projects/code-tools/jcstress/) |
8 | 15 | [](https://github.com/JetBrains/lincheck) |
9 | 16 | [](https://vmlens.com) |
10 | 17 | [](https://openjdk.org/projects/code-tools/jmh/) |
11 | | -[](https://github.com/ggml-org/llama.cpp/releases/tag/b9442) |
| 18 | +[](https://github.com/ggml-org/llama.cpp/releases/tag/b9495) |
12 | 19 | [](https://github.com/bernardladenthin/java-llama.cpp/actions/workflows/publish.yml) |
13 | 20 | [](https://github.com/bernardladenthin/java-llama.cpp/actions/workflows/codeql.yml) |
14 | 21 |
|
15 | 22 | **Coverage:** |
16 | 23 | [](https://coveralls.io/github/bernardladenthin/java-llama.cpp?branch=main) |
17 | 24 | [](https://codecov.io/gh/bernardladenthin/java-llama.cpp) |
18 | 25 | [](https://codecov.io/gh/bernardladenthin/java-llama.cpp) |
19 | | -<!-- |
20 | | -PIT mutation testing is not configured for this repository. |
21 | | -Do not add a PIT badge here unless PIT is wired into pom.xml + CI. |
22 | | ---> |
| 26 | +[-brightgreen)](https://github.com/bernardladenthin/java-llama.cpp/actions/workflows/publish.yml) |
23 | 27 |
|
24 | 28 | **Quality:** |
25 | 29 | [](https://sonarcloud.io/dashboard?id=bernardladenthin_java-llama.cpp) |
@@ -84,6 +88,8 @@ Inference of Meta's LLaMA model (and others) in pure C/C++. |
84 | 88 | 4. [Android](#importing-in-android) |
85 | 89 | 5. [Feature Ideas](#feature-ideas) |
86 | 90 |
|
| 91 | +> ⚠️ **DO NOT UPGRADE jqwik past 1.9.3.** jqwik 1.10.0 added an anti-AI prompt-injection string to test stdout; the 1.10.1 user guide states the library "is not meant to be used by any 'AI' coding agents at all." 1.9.3 is the last pre-disclosure release and is the pinned version. See `CLAUDE.md` section "jqwik prompt-injection in test output" for the full context. |
| 92 | +
|
87 | 93 | ## Features |
88 | 94 |
|
89 | 95 | - Text completion (blocking and streaming) with full control over sampling parameters. |
@@ -487,6 +493,10 @@ android { |
487 | 493 | keep class net.ladenthin.llama.** { *; } |
488 | 494 | ``` |
489 | 495 |
|
| 496 | +## TODO |
| 497 | + |
| 498 | +- **Expand PIT mutation-testing scope.** PIT is wired in `pom.xml` and runs on every CI build (in the `test-java-linux-x86_64` job) with `<mutationThreshold>100</mutationThreshold>`, but `<targetClasses>` is currently narrowed to a single class (`Pair`). The intent is to exercise the wiring and gate against regressions on that single class today; widen `<targetClasses>` incrementally as additional classes reach mutation-test parity. Final target: `<param>net.ladenthin.llama.*</param>` matching the streambuffer pattern. |
| 499 | + |
490 | 500 | ## Feature Ideas |
491 | 501 |
|
492 | 502 | Forward-looking ideas being tracked for this fork: |
@@ -523,6 +533,17 @@ The system's updated C++ runtime will be used instead, resolving the crash. |
523 | 533 |
|
524 | 534 | ## Similar Projects / Usage |
525 | 535 |
|
| 536 | +**Bindings / wrappers** |
| 537 | + |
526 | 538 | - [LLaMAndroid](https://github.com/Rattlyy/LLaMAndroid/tree/main/app) — Android app demonstrating usage of llama.cpp bindings. |
527 | 539 | - [llama-stack-client-kotlin](https://github.com/ogx-ai/llama-stack-client-kotlin) — Kotlin client for the Llama Stack API. |
528 | 540 | - [llama.cpp-android-tutorial](https://github.com/JackZeng0208/llama.cpp-android-tutorial) — Step-by-step tutorial for running llama.cpp on Android. |
| 541 | +- [llamacpp4j](https://github.com/sebicom/llamacpp4j) — alternative Java/JNI binding to llama.cpp (SWIG-generated facade); pre-GGUF, dormant since 2023 but historically the other Java JNI option. |
| 542 | + |
| 543 | +**Pure-Java single-model inference (no JNI / no llama.cpp)** — Alfonso² Peterssen's `*.java` family of standalone, dependency-free Java inference runtimes, one per model architecture. Useful when JNI is unavailable (e.g. some sandboxes / GraalVM native-image scenarios) or when you want a single jar with no native side at all. Different design point from this project, which prioritises GGUF compatibility and llama.cpp performance via JNI. |
| 544 | + |
| 545 | +- [llama3.java](https://github.com/mukel/llama3.java) — Llama 3 / 3.1 / 3.2 inference. |
| 546 | +- [gemma4.java](https://github.com/mukel/gemma4.java) — Gemma 4 (and earlier Gemma 2/3) inference. |
| 547 | +- [gptoss.java](https://github.com/mukel/gptoss.java) — GPT-OSS architecture inference. |
| 548 | +- [qwen35.java](https://github.com/mukel/qwen35.java) — Qwen 3.5 inference. |
| 549 | +- [nemotron3.java](https://github.com/mukel/nemotron3.java) — NVIDIA Nemotron-3 inference. |
0 commit comments