All Projects → CympleTech → chamomile

CympleTech / chamomile

Licence: Apache-2.0 and 2 other licenses found Licenses found Apache-2.0 LICENSE-APACHE Unknown LICENSE-AW MIT LICENSE-MIT
Lightweight p2p library. Support build robust stable connection on p2p/distributed network.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to chamomile

Crypto Dht
Blockchain over DHT in GO
Stars: ✭ 38 (-56.32%)
Mutual labels:  distributed, dht
Holochain Proto
Holographic storage for distributed applications -- a validating monotonic DHT "backed" by authoritative hashchains for data provenance (a Ceptr sub-project)
Stars: ✭ 795 (+813.79%)
Mutual labels:  distributed, dht
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (-3.45%)
Mutual labels:  distributed, dht
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+2275.86%)
Mutual labels:  distributed, dht
jami-overlay
Jami (formerly Ring (formerly SFLphone)) is a SIP compatible softphone for GNU/Linux.
Stars: ✭ 22 (-74.71%)
Mutual labels:  dht
manager
The API endpoint that manages nebula orchestrator clusters
Stars: ✭ 28 (-67.82%)
Mutual labels:  distributed
OpenABL
A domain-specific language for parallel and distributed agent-based simulations.
Stars: ✭ 24 (-72.41%)
Mutual labels:  distributed
ddal
DDAL(Distributed Data Access Layer) is a simple solution to access database shard.
Stars: ✭ 33 (-62.07%)
Mutual labels:  distributed
slock
High-performance distributed sync service and atomic DB
Stars: ✭ 50 (-42.53%)
Mutual labels:  distributed
MlDHT
MLDHT is an elixir package that provides a mainline DHT implementation according to BEP 05.
Stars: ✭ 88 (+1.15%)
Mutual labels:  dht
zincir
Simple distributed blockchain experiment written in Ruby
Stars: ✭ 76 (-12.64%)
Mutual labels:  distributed
paxakos
Rust implementation of Paxos consensus algorithm
Stars: ✭ 79 (-9.2%)
Mutual labels:  distributed
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (-67.82%)
Mutual labels:  distributed
dht
golang dht / Kademlia
Stars: ✭ 24 (-72.41%)
Mutual labels:  dht
subspace
Subspace Network reference implementation
Stars: ✭ 164 (+88.51%)
Mutual labels:  distributed
horse-messaging
Open Source Messaging Framework. Queues, Channels, Events, Transactions, Distributed Cache
Stars: ✭ 65 (-25.29%)
Mutual labels:  distributed
yang-db
YANGDB Open-source, Scalable, Non-native Graph database (Powered by Elasticsearch)
Stars: ✭ 92 (+5.75%)
Mutual labels:  distributed
moqui-hazelcast
Moqui Framework tool component for Hazelcast, used for distributed async services, entity distributed cache invalidation, web session replication, and distributed cache (javax.cache)
Stars: ✭ 12 (-86.21%)
Mutual labels:  distributed
dxram
A distributed in-memory key-value storage for billions of small objects.
Stars: ✭ 25 (-71.26%)
Mutual labels:  distributed
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+9320.69%)
Mutual labels:  distributed

crate doc

Chamomile

Build a robust stable connection on p2p network

features

  • Support build a robust stable connection between two peers on the p2p network.
  • Support permissionless network.
  • Support permissioned network (distributed network).
  • DHT-based & Relay connection.
  • Diff transports: QUIC(default) / TCP / UDP-Based Special Protocol.
  • Multiple transports connecting at same runtime.

Simple test.

  • A: cargo run --example permissionless 127.0.0.1:8000
  • B: cargo run --example permissionless 127.0.0.1:8001 127.0.0.1:8000
  • C: cargo run --example permissionless 127.0.0.1:8002 127.0.0.1:8000

If not support 127.0.0.1 binding, you can change to 0.0.0.0 and try again.

Relay test.

  • A: cargo run --example relay 192.168.xx.xx:8000
    • this ip is your LAN address, it will do relay work.
  • B: cargo run --example relay 127.0.0.1:8001 192.168.xx.xx:8000
    • start waiting stable connected by relay.
  • C: cargo run --example relay 127.0.0.1:8002 192.168.xx.xx:8000 XX..
    • XX.. is above's B network peer id will connected it.
    • And if change B and C 127.0.0.1 to 0.0.0.0, they will automatically connect after the handshake is successful, no longer need relay.

Design point

  • Mobile phones, IoT devices, PC and servers are first-class citizens
  • Ability to adapt to the transmission and penetration of complex network environments
  • Support for springboard function, virtual connection with other nodes, build virtual DHT
  • Encrypted transmission and secure DHT protection
  • It can support all interconnections and single-center connections under the LAN, and can also support DHT in the public network environment
  • Automatically switch the connection according to the number of connections and the network environment
  • If Alice use QUIC, Bob use TCP, they can still connect and communicate with each other.

For more information, please visit:

License

This project is licensed under either of

at your option.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].