From d4c8251ea3c4f6e809bb19f8faa907083316f483 Mon Sep 17 00:00:00 2001 From: hozan23 Date: Wed, 22 Nov 2023 21:48:09 +0300 Subject: add Docs section to README.md file & add an example to p2p crate --- Cargo.toml | 2 +- README.md | 10 +++++++++- p2p/src/backend.rs | 34 ---------------------------------- p2p/src/lib.rs | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 36 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4d85f3f..493e348 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,6 @@ members = [ "p2p", "jsonrpc", ] - resolver = "2" [workspace.package] @@ -17,3 +16,4 @@ karyons_core = { path = "core" } karyons_net = { path = "net" } karyons_p2p = { path = "p2p" } karyons_jsonrpc = { path = "jsonrpc" } + diff --git a/README.md b/README.md index 28b2ddc..0e2bd97 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Join us on: along with common network functionality. - [karyons p2p](./p2p): A lightweight, extensible, and customizable peer-to-peer (p2p) network stack. -- [karyons jsonrpc](./jsonrpc): A fast and lightweight async +- [karyons jsonrpc](./jsonrpc): A fast and small async [JSONRPC2.0](https://www.jsonrpc.org/specification) implementation. - karyons crdt: A [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) implementation for building collaborative software. @@ -29,6 +29,14 @@ crdt and karyons store, along with major changes to the network stack, including TLS implementation. You can check the [issues](https://github.com/karyons/karyons/issues) for updates on ongoing tasks. +## Docs + +To generate karyons Rust API Documentation, run the following command: + +```bash +$ cargo doc --no-deps --all --document-private-items --open +``` + ## Thanks Big thanks to [Ink & Switch](https://www.inkandswitch.com/) team, diff --git a/p2p/src/backend.rs b/p2p/src/backend.rs index bb0d891..4410205 100644 --- a/p2p/src/backend.rs +++ b/p2p/src/backend.rs @@ -20,40 +20,6 @@ pub type ArcBackend = Arc; /// the P2P network. /// /// -/// # Example -/// ``` -/// use std::sync::Arc; -/// -/// use easy_parallel::Parallel; -/// use smol::{channel as smol_channel, future, Executor}; -/// -/// use karyons_p2p::{Backend, Config, PeerID}; -/// -/// let peer_id = PeerID::random(); -/// -/// // Create the configuration for the backend. -/// let mut config = Config::default(); -/// -/// -/// // Create a new Executor -/// let ex = Arc::new(Executor::new()); -/// -/// // Create a new Backend -/// let backend = Backend::new(peer_id, config, ex.clone()); -/// -/// let task = async { -/// // Run the backend -/// backend.run().await.unwrap(); -/// -/// // .... -/// -/// // Shutdown the backend -/// backend.shutdown().await; -/// }; -/// -/// future::block_on(ex.run(task)); -/// -/// ``` pub struct Backend { /// The Configuration for the P2P network. config: Arc, diff --git a/p2p/src/lib.rs b/p2p/src/lib.rs index 3cf1e7c..c0a3b5b 100644 --- a/p2p/src/lib.rs +++ b/p2p/src/lib.rs @@ -1,3 +1,40 @@ +//! A lightweight, extensible, and customizable peer-to-peer (p2p) network stack. +//! +//! # Example +//! ``` +//! use std::sync::Arc; +//! +//! use easy_parallel::Parallel; +//! use smol::{channel as smol_channel, future, Executor}; +//! +//! use karyons_p2p::{Backend, Config, PeerID}; +//! +//! let peer_id = PeerID::random(); +//! +//! // Create the configuration for the backend. +//! let mut config = Config::default(); +//! +//! +//! // Create a new Executor +//! let ex = Arc::new(Executor::new()); +//! +//! // Create a new Backend +//! let backend = Backend::new(peer_id, config, ex.clone()); +//! +//! let task = async { +//! // Run the backend +//! backend.run().await.unwrap(); +//! +//! // .... +//! +//! // Shutdown the backend +//! backend.shutdown().await; +//! }; +//! +//! future::block_on(ex.run(task)); +//! +//! ``` +//! mod backend; mod config; mod connection; -- cgit v1.2.3