Breep - C++ peer to peer library, built on the top of boost

  •        69

Breep is a c++ bridged peer to peer library. What does that mean? It means that even though the network is constructed as a peer to peer one, there may be no direct connections between two dudes, say A and B, if these connections are impossible (due to poorly configured ports, for example). In that case, Breep will attempt to use another peer C as a bridge between A and B. Breep is also a high-level library. You don't have to care on when peers connect, disconnect, send data, and on how to send your classes. You simply register listeners that get notified when peers come and go, when they send you stuff. You may even use serialization and send your own object directly through the network. Same goes for your listeners: you don't say 'I want to listen for piles of bytes', but instead you say 'I want to listen for fancy::MyClass'. The BREEP_DECLARE_TYPE involved here is used to tell to breep::network that we will listen/send some std::strings. If you forget to do it, you will get a compile-time error.

https://github.com/Organic-Code/Breep

Tags
Implementation
License
Platform

   




Related Projects

libp2p - A modular and extensible networking stack which solves many challenges of peer-to-peer applications

  •    

This document presents libp2p, a modularized and extensible network stack to overcome the networking challenges faced when doing peer-to-peer applications. libp2p is used by IPFS as its networking library. libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use.

CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages

  •    CSharp

CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#).It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add scripting support to a native codebase.

magic_get - std::tuple like methods for user defined types without any macro or boilerplate code

  •    C++

This C++14 library is meant for accessing structure elements by index and providing other std::tuple like methods for user defined types without any macro or boilerplate code. Distributed under the Boost Software License, Version 1.0.

LibTML Messaging Suite - Network Messaging Library in C++

  •    C++

TML Messaging Suite is a network messaging library for rapid development of extensible and scalable interfaces. Based on the peer to peer standard protocol BEEP (Blocks Extensible Exchange Protocol), defined in RFC3080 and RFC3081 libTML is suitable for many use cases and communication patterns. The libtml-c project is a C++ implementation of a library with a C interface on top of the Vortex beepcore.

Fit - C++ function utility library

  •    C++

Fit is a header-only C++11/C++14 library that provides utilities for functions and function objects, which can solve many problems with much simpler constructs than whats traditionally been done with metaprogramming. This requires a C++11 compiler. There are no third-party dependencies. This has been tested on clang 3.5-3.8, gcc 4.6-6.2, and Visual Studio 2015. Gcc 5.1 is not supported at all, however, gcc 5.4 is supported.


specs - Technical specifications for the libp2p networking stack

  •    

This document presents libp2p, a modularized and extensible network stack to overcome the networking challenges faced when doing peer-to-peer applications. libp2p is used by IPFS as its networking library. This describes the IPFS network protocol. The network layer provides point-to-point transports (reliable and unreliable) between any two IPFS nodes in the network.

go-libp2p - libp2p implementation in Go

  •    Go

libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use. libp2p is the product of a long, and arduous quest of understanding -- a deep dive into the internet's network stack, and plentiful peer-to-peer protocols from the past. Building large scale peer-to-peer systems has been complex and difficult in the last 15 years, and libp2p is a way to fix that. It is a "network stack" -- a protocol suite -- that cleanly separates concerns, and enables sophisticated applications to only use the protocols they absolutely need, without giving up interoperability and upgradeability. libp2p grew out of IPFS, but it is built so that lots of people can use it, for lots of different projects.

sqlite_orm - SQLite ORM light header only library for modern C++

  •    C++

Now we tell sqlite_orm library about schema and provide database filename. We create storage service object that has CRUD interface. Also we create every table and every column. All code is intuitive and minimalistic. Too easy isn't it? You do not have to specify mapped type explicitly - it is deduced from your member pointers you pass during making a column (for example: &User::id). To create a column you have to pass two arguments at least: its name in the table and your mapped class member pointer. You can also add extra arguments to tell your storage about column's constraints like not_null (deduced from type), primary_key, autoincrement, default_value or unique(order isn't important).

SocialVPN - P2P VPN that connects you to your friends computer

  •    C

SocialVPN is an open-source IPOP-based virtual network that connects your computers privately to your friends’ computers. It automatically maps online social network relationships using Jingle and XMPP to create your own user-defined peer-to-peer VPNs – with no hassle, and supporting unmodified TCP/IP applications.

libsourcey - C++14 evented IO libraries for high performance networking and media based applications

  •    C++

LibSourcey is a collection of cross platform C++14 modules and classes that provide developers with an arsenal for rapidly developing high performance network based p2p and media streaming applications. Think of it as the power and performance of libuv combined with the features of FFmpeg, OpenCV and WebRTC, all integrated with the ease and readability of the stl (C++ Standard Library). Event-based IO — Core modules are built on top of libuv (the underlying C library that powers nodejs) and use event-based asynchronous IO throughout to maximize performance and minimize concurrency reliance for building mission critical native and server side apps.

cppinsights - C++ Insights - See your source code with the eyes of a compiler

  •    C++

C++ Insights is a clang-based tool which does a source to source transformation. Its goal is it to make things visible which normally, and intentionally, happen behind the scenes. It's about the magic the compiler does for us to make things work. You can see all the compiler provided functions. Also the downcast from Derived to Base.

hof - Higher-order functions for c++

  •    C++

HigherOrderFunctions is a header-only C++11/C++14 library that provides utilities for functions and function objects, which can solve many problems with much simpler constructs than whats traditionally been done with metaprogramming. This requires a C++11 compiler. There are no third-party dependencies. This has been tested on clang 3.5-3.8, gcc 4.6-7, and Visual Studio 2015 and 2017.

Peergos - A decentralised, secure file storage and social network

  •    Java

Peergos is a peer-to-peer encrypted filesystem with secure sharing of files designed to be resistant to surveillance of data content or friendship graphs. It will have a secure email replacement, with some interoperability with email. There will also be a totally private and secure social network, where users are in control of who sees what (executed cryptographically). The name Peergos comes from the Greek word Πύργος (Pyrgos), which means stronghold or tower, but phonetically spelt with the nice connection to being peer-to-peer. Pronuniation: peer-goss (as in gossip).

C4F Vista Peer-to-Peer Toolkit

  •    

Develop peer-to-peer (P2P) applications for WinForms and WPF applications with no lines of code. Includes WinForm & WPF drag 'n drop controls including P2P Chat, P2P File transer; P2P Audio and P2P Audio & Video controls. All source code for samples available in both VB and ...

PeerVPN - the open source peer-to-peer VPN

  •    C

PeerVPN is a software that builds virtual ethernet networks between multiple computers. Such a virtual network can be useful to facilitate direct communication that applications like file sharing or gaming may need. Often, such direct communication is made impossible or very difficult by firewalls or NAT devices.

Coral CDN- Content Distribution Network

  •    C++

Coral is a peer-to-peer content distribution network. Sites that run Coral automatically replicate content. Using modern peer-to-peer indexing techniques, CoralCDN will efficiently find a cached object if it exists anywhere in the network.

peerdiscovery - Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:

  •    Go

Pure-go library for cross-platform thread-safe local peer discovery using UDP multicast. I needed to use peer discovery for croc and everything I tried had problems, so I made another one. Make sure you have Go 1.5+.

P2P WIKI - collaborative edition

  •    Java

WOOKI is a peer-to-peer wiki. It based on unstructured p2P network with data replication. WOOT framework synchronizes data. SWOOKI is a semantic extenion of WOOKI. It is implemented as a plugin of WOOKI. SWOOKI is peer-to-peer semantic wiki.

rpclib - rpclib is a modern C++ msgpack-RPC server and client library

  •    C++

When srv.run() is called, rpclib starts the server loop which listens to incoming connections and tries to dispatch calls to the bound functions. The functions are called from the thread where run was called from. There is also async_run that spawns worker threads and returns immediately. All planned 1.0.0 features are done and tested; the current state is production-ready.

TomP2P - A P2P-based high performance key-value pair storage library

  •    Java

TomP2P is a P2P library and a distributed hash table (DHT) implementation which provides a decentralized key-value infrastructure for distributed applications. Each peer has a table that can be configured either to be disk-based or memory-based to store its values. TomP2P stores key-value pairs in a distributed manner. To find the peers to store the data in the distributed hash table, TomP2P uses an iterative routing to find the closest peers. Since TomP2P uses non-blocking communication, a future object is required to keep track of future results. This key concept is used for all the communication (iterative routing and DHT operations, such as storing a value on multiple peers) in TomP2P and it is also exposed in the API. Thus, an operation such as get or put will return immediately and the user can either block the operation to wait for the completion or add a listener that gets notified when the operation completes.





We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.