Skip to content

Replace Java Glide with FFM native backend (libglide_ffi)#61

Open
yisraelU wants to merge 1 commit into
mainfrom
ffm-native-backend
Open

Replace Java Glide with FFM native backend (libglide_ffi)#61
yisraelU wants to merge 1 commit into
mainfrom
ffm-native-backend

Conversation

@yisraelU

Copy link
Copy Markdown
Collaborator

Implement all 267 Valkey commands via Java Foreign Function & Memory API, replacing the Java Glide client dependency. Includes tagless-final FFI layer with type-safe command dispatch, cancellation-safe callback lifecycle, native memory leak protection, and comprehensive soak/security tests.

Key changes:

  • FFM-based NativeClient/CommandDispatcher with Arena-managed memory
  • CallbackRegistry with markCanceled protocol for safe fiber cancellation
  • ScoredValue[V] ADT replacing raw (V, Double) tuples
  • Architecture documentation and fs2-streams design doc
  • Weekly CI soak test (1M commands, RSS bounded)
  • Security hardening: bounded reinterpret (64KB cap), ValkeyUri credential redaction in toString, input size validation (512MB max per arg)
  • 647 tests passing (79 core + 568 effects)

Implement all 267 Valkey commands via Java Foreign Function & Memory API,
replacing the Java Glide client dependency. Includes tagless-final FFI layer
with type-safe command dispatch, cancellation-safe callback lifecycle,
native memory leak protection, and comprehensive soak/security tests.

Key changes:
- FFM-based NativeClient/CommandDispatcher with Arena-managed memory
- CallbackRegistry with markCanceled protocol for safe fiber cancellation
- ScoredValue[V] ADT replacing raw (V, Double) tuples
- Architecture documentation and fs2-streams design doc
- Weekly CI soak test (1M commands, RSS bounded)
- Security hardening: bounded reinterpret (64KB cap), ValkeyUri credential
  redaction in toString, input size validation (512MB max per arg)
- 647 tests passing (79 core + 568 effects)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant