Skip to content

feat: support for binary key values#374

Merged
akafredperry merged 2 commits intotrunkfrom
add_binary_support
Mar 23, 2026
Merged

feat: support for binary key values#374
akafredperry merged 2 commits intotrunkfrom
add_binary_support

Conversation

@akafredperry
Copy link
Collaborator

@akafredperry akafredperry commented Mar 17, 2026

closes #369

- What I did

  • Implemented the AtClient methods for getting and putting binary values (byte[]).
  • Fixed a bug in EncryptionUtils (no longer sensitive to JVM default charset)
  • Added Netty to list of dependencies in README (missing from previous commit)
  • Added additonal BDD tests for binary values API

- How I did it

  • Implemented Base2e15 codec
  • Integrated this utility code into AtClientImpl
    NOTE: put methods will always set isBinary=true in the update, and get methods will always check isBinary=true in the metadata. It is legitimate to invoke get() for a binary key value but NOT to invoke getBinary() for a string key value.

- How to verify it
PR contains

  • Unit tests which verify the Base2e15 implementation. Those unit tests replicate the single test in the dart implementation, specifically testing with the same input and expected output. They also include a test that does 1000
    iterations of increasing byte array length with random bytes, testing that decoded encoded result matches the original input. And then there are tests that explicitly test repeating sequences of 14, 15, and 16 byte arrays (either side of the 15 bit boundary).
  • Unit tests for AtClientImpl (previously this was only ever testing via the BDD integration tests).
  • New BDD tests that demonstrate AtClient put() with binary values and getBinary()

All of these tests will be run as part of this PR pipeline.

- Description for the changelog
support for binary key values

@akafredperry akafredperry force-pushed the add_binary_support branch 2 times, most recently from 419bf1a to 6f2eb11 Compare March 18, 2026 08:23
@akafredperry akafredperry marked this pull request as ready for review March 18, 2026 08:23
@akafredperry akafredperry self-assigned this Mar 18, 2026
@akafredperry akafredperry requested a review from gkc March 18, 2026 08:24
@gkc
Copy link
Contributor

gkc commented Mar 22, 2026

LGTM but have you done cross-platform checks? (Java putter -> Dart getter, and vice versa)

gkc
gkc previously approved these changes Mar 22, 2026
@akafredperry
Copy link
Collaborator Author

LGTM but have you done cross-platform checks? (Java putter -> Dart getter, and vice versa)

good point, I will do this, thanks

@gkc gkc changed the title feature: support for binary key values feat: support for binary key values Mar 23, 2026
@akafredperry akafredperry merged commit 0cf8e53 into trunk Mar 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for binary key values

2 participants