30 stable releases (12 major)

18.0.0 Jul 20, 2021
17.1.0 Jun 7, 2021
17.0.0 Jan 20, 2021
16.0.0 Dec 14, 2020
6.0.0 Feb 16, 2017

#2127 in Network programming

Download history 586/week @ 2023-06-08 1100/week @ 2023-06-15 753/week @ 2023-06-22 679/week @ 2023-06-29 913/week @ 2023-07-06 594/week @ 2023-07-13 643/week @ 2023-07-20 561/week @ 2023-07-27 388/week @ 2023-08-03 731/week @ 2023-08-10 831/week @ 2023-08-17 813/week @ 2023-08-24 944/week @ 2023-08-31 902/week @ 2023-09-07 636/week @ 2023-09-14 227/week @ 2023-09-21

2,840 downloads per month
Used in 10 crates (7 directly)

MIT license

130KB
3.5K SLoC

jsonrpc-tcp-server

TCP server for JSON-RPC 2.0.

Documentation

Example

Cargo.toml

[dependencies]
jsonrpc-tcp-server = "15.0"

main.rs

use jsonrpc_tcp_server::*;
use jsonrpc_tcp_server::jsonrpc_core::*;

fn main() {
	let mut io = IoHandler::default();
	io.add_method("say_hello", |_params| {
		Ok(Value::String("hello".to_owned()))
	});

	let server = ServerBuilder::new(io)
		.start(&"0.0.0.0:3030".parse().unwrap())
		.expect("Server must start with no issues");

	server.wait().unwrap()
}

lib.rs:

jsonrpc server over tcp/ip

use jsonrpc_core::*;
use jsonrpc_tcp_server::ServerBuilder;

fn main() {
    let mut io = IoHandler::default();
    io.add_sync_method("say_hello", |_params| {
        Ok(Value::String("hello".to_string()))
    });
    let server = ServerBuilder::new(io)
        .start(&"0.0.0.0:0".parse().unwrap())
        .expect("Server must start with no issues.");

    server.wait();
}

Dependencies

~9–21MB
~256K SLoC