All Projects → kareldonk → Quantumgate

kareldonk / Quantumgate

Licence: mit
QuantumGate is a peer-to-peer (P2P) communications protocol, library and API written in C++.

Projects that are alternatives of or similar to Quantumgate

Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (+554.84%)
Mutual labels:  library, peer-to-peer, mesh-networks, cryptography
Cjdns
An encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.
Stars: ✭ 4,766 (+7587.1%)
Mutual labels:  networking, mesh-networks, cryptography
Rando.js
The world's easiest, most powerful random function.
Stars: ✭ 659 (+962.9%)
Mutual labels:  library, cryptography
Maskbook
The portal to the new, open internet. ([I:b])
Stars: ✭ 691 (+1014.52%)
Mutual labels:  peer-to-peer, cryptography
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-1.61%)
Mutual labels:  peer-to-peer, mesh-networks
Pycraft
Minecraft-client networking library in Python
Stars: ✭ 574 (+825.81%)
Mutual labels:  library, networking
Gamenetworkingsockets
Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. P2P networking / NAT traversal. Encryption.
Stars: ✭ 5,795 (+9246.77%)
Mutual labels:  networking, peer-to-peer
P2p
Practice project to demonstrate p2p file sharing.
Stars: ✭ 16 (-74.19%)
Mutual labels:  networking, peer-to-peer
Libzt
ZeroTier Sockets - Put a network stack in your app
Stars: ✭ 486 (+683.87%)
Mutual labels:  networking, peer-to-peer
Datasafe
Datasafe - flexible and secure data storage and document sharing using cryptographic message syntax for data encryption
Stars: ✭ 32 (-48.39%)
Mutual labels:  library, cryptography
Awareness
The new architecture of co-computation for data processing and machine learning.
Stars: ✭ 11 (-82.26%)
Mutual labels:  library, networking
Nim Libsodium
Nim wrapper for the libsodium library
Stars: ✭ 32 (-48.39%)
Mutual labels:  library, cryptography
Lnd
Lightning Network Daemon ⚡️
Stars: ✭ 5,623 (+8969.35%)
Mutual labels:  peer-to-peer, cryptography
Pmhttp
Swift/Obj-C HTTP framework with a focus on REST and JSON
Stars: ✭ 509 (+720.97%)
Mutual labels:  library, networking
Flatend
Quickly build microservices using p2p networking in NodeJS/Go.
Stars: ✭ 600 (+867.74%)
Mutual labels:  networking, mesh-networks
Zerotierone
A Smart Ethernet Switch for Earth
Stars: ✭ 7,839 (+12543.55%)
Mutual labels:  networking, peer-to-peer
Ipfsfb
InterPlanetary File System for Business (IPFSfB) is an enterprise blockchain storage network based on InterPlanetary File System.
Stars: ✭ 57 (-8.06%)
Mutual labels:  networking, cryptography
Wesher
wireguard overlay mesh network manager
Stars: ✭ 461 (+643.55%)
Mutual labels:  networking, mesh-networks
Peerdiscovery
Pure-Go library for cross-platform local peer discovery using UDP multicast 👩 🔁 👩
Stars: ✭ 476 (+667.74%)
Mutual labels:  networking, peer-to-peer
Librg
🚀 Making multi-player gamedev simpler since 2017
Stars: ✭ 813 (+1211.29%)
Mutual labels:  library, networking

QuantumGate

About

QuantumGate is a peer-to-peer (P2P) communications protocol, library and API. The long-term goal for QuantumGate is to become a platform for distributed computing based on a mesh networking model. In the short term, the goal is to provide developers with networking technology that they can easily integrate and use in their own applications. Click here for a more detailed overview.

Disclaimer

This software is currently in alpha development stage. It has not yet undergone peer review and no security audits have yet been done on the cryptographic protocol and its implementation. The API may also change, and while big changes are unlikely it will receive small updates as development progresses. Feel free to use and experiment with this software in your own projects, but keep the above information in mind.

Status

Based on the architecture described in the overview, the following main features are not yet implemented:

  • DHT functionality
  • Database functionality

Platforms

QuantumGate is developed in C++20 and currently only supports the Microsoft Windows (x86/x64) platform. Support for Linux is planned for the future.

Pre-built Binaries and Releases

There are releases available on the releases page, some including pre-built binaries, that you can download to quickly try out. If you'd like to build from source then you can check the Manual Build section below.

Manual Build

The master branch is generally kept as stable as possible so you can download the source code from there instead of from the releases page if you prefer to work with the latest version.

You'll require the latest version of Microsoft Visual Studio 2019, as well as the dependencies listed below. When the paths to the dependency includes and libraries have been configured properly, building is as simple as opening the QuantumGate.sln file in the project root with Visual Studio and issuing the build command for the entire solution.

Dependencies

QuantumGate Core Library

Name Version
OpenSSL At least 1.1.1
PCG-Random Latest.
zlib At least 1.2.11
Zstandard At least 1.4.5

QuantumGate Test Applications/Extenders

Name Version
Monocypher At least 3.1.1
JSON for Modern C++ At least 3.8.0

Naming

The QuantumGate MSVC project is configured to look for specific naming of the OpenSSL, zlib and Zstandard .dll and .lib files, depending on the platform (32 or 64 bit) you're building for. You may have to build these libraries yourself to specify the names, or, alternatively you may change the names in the source code and configuration to the ones you use.

Library x86 Debug x86 Release x64 Debug x64 Release
OpenSSL libcrypto32d.lib, libcrypto32d.dll libcrypto32.lib, libcrypto32.dll libcrypto64d.lib, libcrypto64d.dll libcrypto64.lib, libcrypto64.dll
zlib zlib32.lib, zlib32.dll zlib32.lib, zlib32.dll zlib64.lib, zlib64.dll zlib64.lib, zlib64.dll
Zstandard zstd32.lib, zstd32.dll zstd32.lib, zstd32.dll zstd64.lib, zstd64.dll zstd64.lib, zstd64.dll

Documentation

Documentation can be found in the wiki.

Examples

A listing of examples to get you started quickly can be found in the wiki.

Tutorials

A small but growing collection of tutorials can be found in the wiki.

License

The license for the QuantumGate source code can be found in the LICENSE file in the project root. In addition, QuantumGate uses third party source code covered under separate licenses. This includes an implementation of SipHash (in QuantumGateCryptoLib\SipHash), NewHope (QuantumGateCryptoLib\NewHope), Classic McEliece (QuantumGateCryptoLib\McEliece) and NTRUPrime (QuantumGateCryptoLib\NTRUPrime). Refer to the LICENSE files in the subfolders for details.

Contact

For maximum efficiency and transparency open an issue on QuantumGate's GitHub repository with any questions and/or comments that you may have. Contact information for the author can be found at https://www.kareldonk.com.

Donations

This project is self-funded. If you like it and would like to ensure its continued and speedy development, consider donating to the author. If this software has served you well (in commercial projects), consider supporting its further development through donations to the author. For details please contact the author using the above contact information. Please be advised, though, that the author does not accept contributions from governments, governmental organizations, government funded organizations, or other comparable terrorist organizations. The author values the truth and will make no compromises with regard to the software, its mission and purpose.

Contributing

The author is currently especially looking for engineers who would like to review the source code, report bugs or other issues, do security audits, and especially cryptographers who want to help review the cryptographic protocols used including their implementation.

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].