1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
// Copyright 2015, 2016 Ethcore (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see <http://www.gnu.org/licenses/>. //! jsonrpc server over tcp/ip //! //! ```no_run //! extern crate jsonrpc_core; //! extern crate jsonrpc_tcp_server; //! extern crate rand; //! //! use std::sync::Arc; //! use jsonrpc_core::*; //! use jsonrpc_tcp_server::Server; //! use std::net::SocketAddr; //! use std::str::FromStr; //! //! fn main() { //! let mut io = MetaIoHandler::<()>::default(); //! io.add_method("say_hello", |_params| { //! Ok(Value::String("hello".to_string())) //! }); //! let server = Server::new(SocketAddr::from_str("0.0.0.0:9993").unwrap(), Arc::new(io)); //! ::std::thread::spawn(move || server.run().expect("Server must run with no issues")); //! } //! ``` extern crate jsonrpc_core as jsonrpc; extern crate serde_json; extern crate rand; extern crate tokio_core; extern crate tokio_proto; extern crate tokio_service; #[macro_use] extern crate log; #[cfg(test)] #[macro_use] extern crate lazy_static; #[cfg(test)] extern crate env_logger; mod line_codec; mod service; mod server; mod meta; mod dispatch; #[cfg(test)] mod logger; #[cfg(test)] mod tests; pub use server::Server; pub use dispatch::{Dispatcher, PushMessageError}; pub use meta::{MetaExtractor, RequestContext};