Skip to content

Commit 82a32d6

Browse files
committed
manual tweaks in CLAUDE.md
1 parent 16a3b1a commit 82a32d6

1 file changed

Lines changed: 6 additions & 23 deletions

File tree

CLAUDE.md

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44

5+
## What it is
6+
7+
Java 25 native implementation of the [Vortex](https://github.com/spiraldb/vortex) columnar file format. Uses FFM (
8+
`MemorySegment`/`Arena`) instead of JNI or `sun.misc.Unsafe`.
9+
10+
511
## Commands
612

713
Build prerequisites: `brew install flatbuffers protobuf` (flatc + protoc must be on PATH).
@@ -36,24 +42,6 @@ Never use `mvn install` or `./mvwn install`.
3642
./mvnw compile exec:java -pl performance -am -DskipTests -Dexec.args="RustVsJavaReadBenchmark.javaReadVolume"
3743
```
3844

39-
## Architecture
40-
41-
Java 25 native implementation of the [Vortex](https://github.com/spiraldb/vortex) columnar file format. Uses FFM (
42-
`MemorySegment`/`Arena`) instead of JNI or `sun.misc.Unsafe`.
43-
44-
### Module dependency chain
45-
46-
```
47-
core → reader
48-
→ writer
49-
```
50-
51-
| Module | Responsibility |
52-
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
53-
| `core` | Logical types (`DType`, `PType`), file-structure model (`Layout`, `Footer`, `SegmentSpec`, `CompressionScheme`), encoding layer (`Array`, `Decoder`/`DecoderRegistry`, `ArrayNode`, `DecodeContext`) |
54-
| `reader` | `VortexFile` (memory-mapped file handle), `PostscriptParser`, `ScanIterator` (chunk-by-chunk reads), `ScanOptions`, `RowFilter` (zone-map predicate tree) |
55-
| `writer` | `VortexWriter` (encodes and writes chunks), `WriteOptions` |
56-
5745
### File format
5846

5947
8-byte trailer at EOF: `version(u16 LE) | postscriptLen(u16 LE) | magic(VTXF)`. The postscript is a FlatBuffer blob
@@ -93,10 +81,6 @@ MemorySegment out = ctx.arena().allocate(n * elemBytes);
9381
If the allocation is in a private static helper that doesn't receive `DecodeContext`, add an `Arena arena` parameter
9482
and pass `ctx.arena()` from the `decode()` call site.
9583

96-
### Implementation status
97-
98-
Core read/write path is functional. See `TODO.md` for open work and roadmap.
99-
10084
## Reference implementation
10185

10286
When stuck on encoding/decoding behavior, consult the Rust reference implementation at
@@ -115,7 +99,6 @@ methods in the Rust source to get the exact protobuf schema, then implement from
11599

116100
## Code style
117101

118-
- Java 25. No Kotlin, no Gradle.
119102
- Zero SonarQube bugs/smells policy.
120103
- No `sun.misc.Unsafe` or internal JDK APIs.
121104
- Prefer explicit over clever. Fail fast on unhandled cases.

0 commit comments

Comments
 (0)