Skip to content

Releases: DHARANEESH-SRINIVASAN/columnwire

Columnwire 0.1.2

Choose a tag to compare

@github-actions github-actions released this 02 Nov 17:13
11efcd5

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

Choose a tag to compare

@DHARANEESH-SRINIVASAN DHARANEESH-SRINIVASAN released this 02 Nov 15:37

First release.

Added

  • columnwire-core: encodes Java records into Apache Arrow IPC streams in batches, straight from a List, Stream, Iterable or Iterator. Enums become dictionaries, Jackson @JsonProperty and @JsonIgnore are honoured, and a startup check names the missing --add-opens flag.
  • columnwire-spring-boot-starter: a Spring MVC message converter that answers only when the client asks for application/vnd.apache.arrow.stream, keeps JSON for every other client, sends Vary: Accept on both formats and answers 406 for bodies Arrow cannot represent. Settings columnwire.enabled and columnwire.batch-size.
  • npm package columnwire: fetchArrow streams record batches with a JSON fallback; columnwire/react adds useArrow and a virtualized, sortable ArrowGrid that 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-arrow

Measured 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).