From 0992071a7f1a36424bcfaf1fbc84541ea041df1a Mon Sep 17 00:00:00 2001 From: hozan23 Date: Thu, 11 Apr 2024 10:19:20 +0200 Subject: add support for tokio & improve net crate api --- README.md | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index c90faf2..aa18375 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,34 @@ -# karyon +# Karyon -An infrastructure for peer-to-peer, decentralized, and collaborative software. +## Overview + +Many developers around the world aspire to build peer-to-peer, decentralized +apps that are resilient, secure, and free from central control. +However, there are still not many libraries and tools available to build these +kinds of apps. This forces many developers to either abandon their ideas or +develop a new p2p network stack and tools from scratch. Such efforts are not +only time-consuming but also prone to errors and security vulnerabilities, as +each new implementation reintroduces potential weaknesses. + +Karyon provides developers with the components and tools needed to create +decentralized apps. By offering a robust infrastructure, Karyon simplifies the +complexities associated with building p2p apps. Karyon's primary goal +is to make the process of decentralization more achievable and efficient for +developers everywhere, pushing for a future where software is more open, +secure, and free from central control. > In molecular biology, a Karyon is essentially "a part of the cell > containing DNA and RNA and responsible for growth and reproduction" -Join us on: +## Join us +- [irc](irc://irc.libera.chat/#karyon) #karyon on Libera Chat - [Discord](https://discord.gg/xuXRcrkz3p) ## Crates - [karyon core](./core): Essential utilities and core functionality. -- [karyon net](./net): Provides a network interface for TCP, UDP, and Unix, +- [karyon net](./net): Provides a network interface for TCP, UDP, WebSocket, and Unix, along with common network functionality. - [karyon p2p](./p2p): A lightweight, extensible, and customizable peer-to-peer (p2p) network stack. @@ -20,14 +36,13 @@ Join us on: [JSONRPC2.0](https://www.jsonrpc.org/specification) implementation. - karyon crdt: A [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) implementation for building collaborative software. -- karyon base: A lightweight, extensible database that operates with karyon crdt. +- karyon base: A lightweight, extensible database that operates with `karyon crdt`. -## Status +## Choosing the async runtime -This project is a work in progress. The current focus is on shipping `karyon -crdt` and `karyon base`, along with major changes to the network stack. You can -check the [issues](https://github.com/karyontech/karyon/issues) for updates on -ongoing tasks. +All the crates support both smol(async-std) and tokio. The default is smol, but +if you want to use tokio, you need to disable the default features and then +select the `tokio` feature. ## Docs @@ -39,11 +54,12 @@ For the internal crates: [karyon_core](https://karyontech.github.io/karyon/karyon_core), [karyon_net](https://karyontech.github.io/karyon/karyon_net) -## Thanks +## Status -Big thanks to [Ink & Switch](https://www.inkandswitch.com/) team, -[smol](https://github.com/smol-rs/smol) async runtime, and -[zmq.rs](https://github.com/zeromq/zmq.rs) for the inspiration!. +This project is a work in progress. The current focus is on shipping `karyon +crdt` and `karyon base`, along with major changes to the network stack. You can +check the [issues](https://github.com/karyontech/karyon/issues) for updates on +ongoing tasks. ## Contribution -- cgit v1.2.3