Skip to content

Commit 8596723

Browse files
dfa1Copilot
andcommitted
docs: add CI badge, quickstart, and Maven Central TODO
- Add CI badge to README - Add Quickstart and test instructions - Add Maven Central publish TODO in TODO.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 67e6fa2 commit 8596723

2 files changed

Lines changed: 44 additions & 9 deletions

File tree

README.md

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
# vortex-java
22

3+
[![CI](https://github.com/dfa1/vortex-java/actions/workflows/ci.yml/badge.svg)](https://github.com/dfa1/vortex-java/actions)
4+
35
> **Alpha** — not production-ready. APIs will change without notice.
46
57
Pure-Java reader/writer for the [Vortex](https://github.com/spiraldb/vortex) columnar file format.
68

7-
- ✅ Pure-Java reader for primitive, sequence, ALP, dict, FSST
8-
- ✅ Local (mmap) or Remote (HTTPS, single read of last 65K)
9-
- 🚧 Writer (in progress)
10-
- 🚧 Benchmark against Rust+JNI (in progress)
11-
- 🚧 Full encoding coverage (in progress)
12-
- 🚧 Vectorized decode paths (Panama Vector API)
13-
- ❌ No Iceberg/Spark/Flink integration yet
9+
## Status
10+
11+
- Pure-Java reader for primitive, sequence, ALP, dict, FSST (stable)
12+
- Local (mmap) or Remote (HTTPS, single read of last 65K) (stable)
13+
- Writer: in progress
14+
- Benchmark vs Rust+JNI: in progress
15+
- Full encoding coverage: in progress
16+
- Vectorized decode paths (Panama Vector API): planned
17+
- Iceberg/Spark/Flink integration: not available yet
1418

1519
## Motivation
1620

@@ -19,8 +23,7 @@ JNI bindings are fast but add deployment friction: platform-specific artifacts,
1923
toolchains, and crash-domain coupling between the JVM and native code.
2024

2125
This library takes a different approach — 100% Java, no JNI, no `sun.misc.Unsafe`.
22-
It uses the Java FFM API (`MemorySegment` / `Arena`, Java 22+) for zero-copy memory-mapped
23-
reads, making it easier to:
26+
It uses the Java FFM API (`MemorySegment` / `Arena`, Java 25+) for zero-copy memory-mapped reads, making it easier to:
2427

2528
- embed in any JVM project without native-library management
2629
- build and test on any platform with a standard JDK
@@ -112,6 +115,35 @@ Replacing protobuf with FlatBuffers is not viable — existing `.vortex` files p
112115
implementation embed protobuf bytes in codec metadata blobs, and wire compatibility requires matching the format
113116
exactly.
114117

118+
## Quickstart
119+
120+
Add the library to your build (example, Maven):
121+
122+
```xml
123+
<!-- TODO: replace with released coordinates -->
124+
<dependency>
125+
<groupId>io.github.dfa1</groupId>
126+
<artifactId>vortex-java</artifactId>
127+
<version>0.0.0-SNAPSHOT</version>
128+
</dependency>
129+
```
130+
131+
Open and read a Vortex file (illustrative API):
132+
133+
```java
134+
import io.github.dfa1.vortex.reader.VortexFile;
135+
import io.github.dfa1.vortex.reader.ScanIterator;
136+
137+
try (VortexFile vf = VortexFile.open(Path.of("data/example.vortex"))) {
138+
try (ScanIterator it = vf.scan()) {
139+
while (it.hasNext()) {
140+
var row = it.next();
141+
// process row
142+
}
143+
}
144+
}
145+
```
146+
115147
## Requirements
116148

117149
- Java 25+
@@ -126,6 +158,8 @@ requiring it means no preview flags, no upgrade risk, and a supported LTS for us
126158

127159
```bash
128160
./mvnw verify
161+
# Run tests
162+
./mvnw test
129163
```
130164

131165
## License

TODO.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
- [ ] Create website
7474
- [ ] Publish benchmarks
7575
- [ ] Build something like hardwood.dev but for vortex files
76+
- [ ] Publish to Maven Central (OSSRH/SONATYPE setup, GPG signing, coordinates, CI release pipeline)
7677

7778
## JDK
7879

0 commit comments

Comments
 (0)