Repository navigation
Releases: DHARANEESH-SRINIVASAN/columnwire
Releases · DHARANEESH-SRINIVASAN/columnwire
Release list
Columnwire 0.1.2
Fixed
- Release workflow: the npm job packed into a
release/folder that did not exist, so 0.1.1 reached Maven Central but not npm or a GitHub Release. 0.1.2 ships the same code to both registries. CI now rehearses the release file handling on every pull request.
Columnwire 0.1.0
First release.
Added
columnwire-core: encodes Java records into Apache Arrow IPC streams in batches, straight from aList,Stream,IterableorIterator. Enums become dictionaries, Jackson@JsonPropertyand@JsonIgnoreare honoured, and a startup check names the missing--add-opensflag.columnwire-spring-boot-starter: a Spring MVC message converter that answers only when the client asks forapplication/vnd.apache.arrow.stream, keeps JSON for every other client, sendsVary: Accepton both formats and answers406for bodies Arrow cannot represent. Settingscolumnwire.enabledandcolumnwire.batch-size.- npm package
columnwire:fetchArrowstreams record batches with a JSON fallback;columnwire/reactaddsuseArrowand a virtualized, sortableArrowGridthat reads columns without building row objects. - JMH and V8 benchmarks, a Java to JavaScript contract test, a Spring Boot example and a live demo.
Install
<dependency>
<groupId>io.github.dharaneesh-srinivasan</groupId>
<artifactId>columnwire-spring-boot-starter</artifactId>
<version>0.1.0</version>
</dependency>npm install columnwire apache-arrowMeasured on 1,000,000 rows
| JSON | Columnwire | |
|---|---|---|
| Encoding in Spring Boot (JMH) | 643 ms | 154 ms |
| Garbage per response | 576 MB | 58 MB |
| Over the wire, gzip | 39.2 MB | 26.5 MB |
| First rows on screen in Chrome | 6,573 ms | 103 ms |
Live demo: https://dharaneesh-srinivasan.github.io/columnwire/
Verify
The attached files are the ones Maven Central and npm serve. Signatures use key B9F051CF9545B2AB72829518908A18CEE22E2846; SHA256SUMS.txt lists every file. The npm package carries npm provenance (npm audit signatures).