aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorhozan23 <hozan23@karyontech.net>2024-04-11 10:19:20 +0200
committerhozan23 <hozan23@karyontech.net>2024-05-19 13:51:30 +0200
commit0992071a7f1a36424bcfaf1fbc84541ea041df1a (patch)
tree961d73218af672797d49f899289bef295bc56493 /README.md
parenta69917ecd8272a4946cfd12c75bf8f8c075b0e50 (diff)
add support for tokio & improve net crate api
Diffstat (limited to 'README.md')
-rw-r--r--README.md44
1 files changed, 30 insertions, 14 deletions
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