Skip to content

Commit e64bccf

Browse files
niklasad1Copilot
andauthored
feat: client rpc middleware (#1521)
* feat: client rpc middleware * PoC works * cargo fmt * more refactoring * use Cow in Notification to avoid alloc * cleanup some todos * rpc trait: return Result<MethodResponse, Err> * remove infallible err * make it compile * fix tests * introduce client method response type * fix faulty imports * minor cleanup * introduce Batch/BatchEntry for middleware * remove ignore for batch test * fix rustdocs * add rpc middleware for the async client * remove serialize specific types * commit missing file * no serde_json::Value * more nit fixing * more cleanup * refactor method response client * fix some nits * add client middleware rpc * fix wasm build * add client middleware example * Update examples/examples/rpc_middleware_client.rs * ToJson -> RawValue * replace Future type with impl Trait * revert changelog * remove logger response future * some cleanup * move request timeout from transport to client * more nit fixing * have pass over examples * show proper batch middleware example * middleware: clean up batch type * fix wasm build * Update Cargo.toml * doc: fix typo * core: remove tracing mod * fix more clippy * remove middleware error * address review grumbles * fix tests * fix tests * ErrorResponse -> BatchEntryErr * commit missing file * move deserialize_with_ext to server again * Update core/src/client/mod.rs Co-authored-by: Copilot <[email protected]> * client: enable default rpc logger --------- Co-authored-by: Copilot <[email protected]>
1 parent 2219029 commit e64bccf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2773
-1471
lines changed

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,6 @@ rust_2024_compatibility = { level = "warn", priority = -1 }
9898
missing_docs = { level = "warn", priority = -1 }
9999
missing_debug_implementations = { level = "warn", priority = -1 }
100100
missing_copy_implementations = { level = "warn", priority = -1 }
101+
102+
[workspace.lints.clippy]
103+
manual_async_fn = { level = "allow", priority = -1 }

benches/bench.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use helpers::fixed_client::{
99
ws_handshake,
1010
};
1111
use helpers::{KIB, SUB_METHOD_NAME, UNSUB_METHOD_NAME};
12-
use jsonrpsee::types::{Id, RequestSer};
12+
use jsonrpsee::types::{Id, Request};
1313
use pprof::criterion::{Output, PProfProfiler};
1414
use tokio::runtime::Runtime as TokioRuntime;
1515

@@ -101,7 +101,7 @@ impl RequestType {
101101
}
102102
}
103103

104-
fn v2_serialize(req: RequestSer<'_>) -> String {
104+
fn v2_serialize(req: Request<'_>) -> String {
105105
serde_json::to_string(&req).unwrap()
106106
}
107107

@@ -115,7 +115,7 @@ pub fn jsonrpsee_types_v2(crit: &mut Criterion) {
115115
b.iter(|| {
116116
let params = serde_json::value::RawValue::from_string("[1, 2]".to_string()).unwrap();
117117

118-
let request = RequestSer::borrowed(&Id::Number(0), &"say_hello", Some(&params));
118+
let request = Request::borrowed("say_hello", Some(&params), Id::Number(0));
119119
v2_serialize(request);
120120
})
121121
});
@@ -128,7 +128,7 @@ pub fn jsonrpsee_types_v2(crit: &mut Criterion) {
128128
builder.insert(1u64).unwrap();
129129
builder.insert(2u32).unwrap();
130130
let params = builder.to_rpc_params().expect("Valid params");
131-
let request = RequestSer::borrowed(&Id::Number(0), &"say_hello", params.as_deref());
131+
let request = Request::borrowed("say_hello", params.as_deref(), Id::Number(0));
132132
v2_serialize(request);
133133
})
134134
});
@@ -138,7 +138,7 @@ pub fn jsonrpsee_types_v2(crit: &mut Criterion) {
138138
b.iter(|| {
139139
let params = serde_json::value::RawValue::from_string(r#"{"key": 1}"#.to_string()).unwrap();
140140

141-
let request = RequestSer::borrowed(&Id::Number(0), &"say_hello", Some(&params));
141+
let request = Request::borrowed("say_hello", Some(&params), Id::Number(0));
142142
v2_serialize(request);
143143
})
144144
});
@@ -150,7 +150,7 @@ pub fn jsonrpsee_types_v2(crit: &mut Criterion) {
150150
let mut builder = ObjectParams::new();
151151
builder.insert("key", 1u32).unwrap();
152152
let params = builder.to_rpc_params().expect("Valid params");
153-
let request = RequestSer::borrowed(&Id::Number(0), &"say_hello", params.as_deref());
153+
let request = Request::borrowed("say_hello", params.as_deref(), Id::Number(0));
154154
v2_serialize(request);
155155
})
156156
});

client/http-client/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ serde = { workspace = true }
3131
serde_json = { workspace = true }
3232
thiserror = { workspace = true }
3333
tokio = { workspace = true, features = ["time"] }
34-
tracing = { workspace = true }
3534
tower = { workspace = true, features = ["util"] }
3635
url = { workspace = true }
3736

0 commit comments

Comments
 (0)