go-ethereum/rpc
Delweng 7bf5517cda rpc: improve performance of subscription notification encoding #28328
It turns out that encoding json.RawMessage is slow because
package json basically parses the message again to ensure it is valid.
We can avoid the slowdown by encoding the entire RPC notification once,
which yields a 30% speedup.
2025-04-29 17:04:50 +08:00
..
testdata rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
client.go rpc: add method to test for subscription support #25942 (#999) 2025-04-28 17:46:24 +08:00
client_example_test.go upgrade the websocket in xdpos (#349) 2023-11-06 15:37:14 +11:00
client_opt.go eth, rpc: add configurable option for wsMessageSizeLimit #27801 (#1003) 2025-04-28 18:02:12 +08:00
client_opt_test.go node, rpc: add JWT auth support in client #24911 2025-04-28 10:25:07 +08:00
client_test.go core, rpc: speed up tests #28461 (#1008) 2025-04-29 16:57:58 +08:00
context_headers.go rpc: support injecting HTTP headers through context #26023 (#977) 2025-04-24 19:08:16 +08:00
doc.go upgrade the websocket in xdpos (#349) 2023-11-06 15:37:14 +11:00
endpoints.go console: handle eth.coinbase throws #19374 (#953) 2025-04-24 18:11:48 +08:00
errors.go rpc: add method to test for subscription support #25942 (#999) 2025-04-28 17:46:24 +08:00
handler.go rpc: add method to test for subscription support #25942 (#999) 2025-04-28 17:46:24 +08:00
http.go rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
http_test.go rpc: support injecting HTTP headers through context #26023 (#977) 2025-04-24 19:08:16 +08:00
inproc.go rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
ipc.go rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
ipc_js.go upgrade the websocket in xdpos (#349) 2023-11-06 15:37:14 +11:00
ipc_unix.go rpc: avoid use of cgo by hard-coding maxPathSize #27447 (#1000) 2025-04-28 17:48:07 +08:00
ipc_wasip1.go all: add build tags for wasip1 (#31090) 2025-03-19 18:02:46 +08:00
ipc_windows.go rpc: use go-winio for named pipes #27972 (#1002) 2025-04-28 17:50:26 +08:00
json.go rpc: improve performance of subscription notification encoding #28328 2025-04-29 17:04:50 +08:00
metrics.go rpc: fix ns/µs mismatch in metrics (#28649) 2024-12-13 14:00:13 +08:00
server.go rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
server_test.go rpc: fix erroneous error-message in test #28227 (#1004) 2025-04-28 18:04:49 +08:00
service.go all: replace some cases of strings.SplitN with strings.Cut #28446 (#1007) 2025-04-28 18:07:59 +08:00
stdio.go rpc: add limit for batch request and response size #26681 (#998) 2025-04-28 17:00:30 +08:00
subscription.go rpc: improve performance of subscription notification encoding #28328 2025-04-29 17:04:50 +08:00
subscription_test.go rpc: improve performance of subscription notification encoding #28328 2025-04-29 17:04:50 +08:00
testservice_test.go eth, rpc: add configurable option for wsMessageSizeLimit #27801 (#1003) 2025-04-28 18:02:12 +08:00
types.go rpc: use correct stringer-method for serializing BlockNumberOrHash #28358 (#1006) 2025-04-28 18:06:35 +08:00
types_test.go rpc: use correct stringer-method for serializing BlockNumberOrHash #28358 (#1006) 2025-04-28 18:06:35 +08:00
websocket.go eth, rpc: add configurable option for wsMessageSizeLimit #27801 (#1003) 2025-04-28 18:02:12 +08:00
websocket_test.go rpc: increase timeout in TestClientWebsocketPing #28371 (#1005) 2025-04-28 18:05:48 +08:00