Skip to content

Refactor#132

Open
owjs3901 wants to merge 5 commits into
mainfrom
refactor-1
Open

Refactor#132
owjs3901 wants to merge 5 commits into
mainfrom
refactor-1

Conversation

@owjs3901
Copy link
Copy Markdown
Contributor

No description provided.

@github-actions
Copy link
Copy Markdown

Changepacks

vespera@0.1.51 - Cargo.toml

Maybe you forgot to write the following files to the latest version

vespera_core@0.1.51 - crates/vespera_core/Cargo.toml

Maybe you forgot to write the following files to the latest version

vespera_inprocess@0.1.51 - crates/vespera_inprocess/Cargo.toml

Maybe you forgot to write the following files to the latest version

vespera_macro@0.1.51 - crates/vespera_macro/Cargo.toml

Maybe you forgot to write the following files to the latest version

vespera-bridge@0.0.14 - libs/vespera-bridge/build.gradle.kts

Maybe you forgot to write the following files to the latest version

owjs3901 added 4 commits May 23, 2026 01:16
Two milestone cycles accumulated:

Cycle 1 - Binary wire migration: replace base64-in-JSON envelope with length-prefixed binary wire format ([u32 BE | UTF-8 JSON header | raw body]). Remove dispatch_from_json/parse_request/serialize_error; introduce dispatch_from_bytes. Java native String dispatch(String) -> byte[] dispatchBytes(byte[]). Eliminates ~33% wire overhead + base64 CPU.

Cycle 2 - Multi-app + 6 follow-up waves: (A) measured benchmarks, (C) TypedMultipart integration tests, (E) 422 validation hoisting to wire header, (B) dispatch_from_bytes_async + JNI dispatchAsync (CompletableFuture, always-complete), (F) Gradle plugin kr.devfive.vespera-bridge with dogfooding, (D) streaming + JNI OutputStream proxy + bidirectional streaming.

Multi-app: register_app_named + APP_ROUTERS<RwLock<HashMap>> + wire app field (additive v=1) + jni_apps! macro. Multi-app is for external-dispatcher scenarios (JNI/WASM/FFI); Rust standalone uses axum native Router::merge/nest.

Spring autoconfigure: VesperaBridgeAutoConfiguration + @ConditionalOnMissingBean + zero-config defaults (HeaderAppNameResolver + BidirectionalStreamingDispatchModeResolver). Single /** catch-all keeps OpenAPI URLs == Spring URLs. 4 DispatchMode values (SYNC / ASYNC / STREAMING / BIDIRECTIONAL_STREAMING).

6 JNI native symbols, 1846+ tests passing, clippy clean, 1 MiB SHA256 byte-identical bidirectional streaming roundtrip verified end-to-end.
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