@kiwa-lab/rust-lib
v2.1.0
Published
Rust web framework mock harness for kiwa — axum / actix-web / tower-http / rocket を統一 interface で invoke する in-process mock。 handler / middleware / extractor / router を real framework と同じ signature で叩ける test infra、 実 Rust binary 起動なしで request-response cyc
Maintainers
Readme
@kiwa-lab/rust-lib
Rust web framework request-response mock harness for kiwa — axum / actix-web / tower-http / rocket を統一 interface で in-process から叩ける test infra。
Installation
pnpm add -D @kiwa-lab/rust-lib
# or
npm install -D @kiwa-lab/rust-lib
# or
yarn add -D @kiwa-lab/rust-libSupported providers
| Framework | Status | Primary API |
|---|---|---|
| axum | ✅ Ready | invokeAxumHandler |
| actix-web | ✅ Ready | invokeActixHandler |
| tower-http | ✅ Ready | captureTowerMiddleware |
| rocket | ✅ Ready | invokeRocketRoute |
Quick start
import { describe, expect, it } from 'vitest';
import { createRustAppEnv, invokeAxumHandler } from '@kiwa-lab/rust-lib';
describe('axum handler', () => {
it('GET /health returns ok', async () => {
const env = createRustAppEnv({ framework: 'axum' });
const handler = async () => ({ status: 200, body: { ok: true } });
const result = await invokeAxumHandler({
env,
handler,
request: { method: 'GET', path: '/health' },
});
expect(result.response.status).toBe(200);
});
});API reference
createRustAppEnv({ framework: RustFramework }): RustAppEnv— framework 別 mock envinvokeAxumHandler({ env, handler, request }): Promise<InvokeAxumResult>— axum handler direct invokeinvokeActixHandler({ env, handler, request }): Promise<InvokeActixResult>— actix service invokecaptureTowerMiddleware({ middleware, request }): Promise<TowerTrace>— tower service layer traceinvokeRocketRoute({ env, route, request }): Promise<InvokeRocketResult>— rocket route invoke
Test integration
vitest + /kiwa-rust-lib skill で Layer 1 spec (tests/spec/rust-lib/{module}.md) から Layer 2 test を機械生成、 real Rust runtime 不要で contract level で verify。
License
UNLICENSED — see github.com/cardene777/kiwa.
