All Projects → IronsDu → Brynet

IronsDu / Brynet

Licence: mit
A Header-Only cross-platform C++ TCP network library . Can use vcpkg(https://github.com/Microsoft/vcpkg/tree/master/ports/brynet) install

Programming Languages

cpp11
221 projects

Projects that are alternatives of or similar to Brynet

Hp Socket
High Performance TCP/UDP/HTTP Communication Component
Stars: ✭ 4,420 (+555.79%)
Mutual labels:  networking, cross-platform, https
Easyhttpcpp
A cross-platform HTTP client library with a focus on usability and speed
Stars: ✭ 110 (-83.68%)
Mutual labels:  networking, cross-platform, https
Echo
High performance, minimalist Go web framework
Stars: ✭ 21,297 (+3059.79%)
Mutual labels:  websocket, https
Curlcpp
An object oriented C++ wrapper for CURL (libcurl)
Stars: ✭ 462 (-31.45%)
Mutual labels:  networking, cross-platform
Libhttpserver
C++ library for creating an embedded Rest HTTP server (and more)
Stars: ✭ 464 (-31.16%)
Mutual labels:  cross-platform, https
Microwebsrv2
The last Micro Web Server for IoTs (MicroPython) or large servers (CPython), that supports WebSockets, routes, template engine and with really optimized architecture (mem allocations, async I/Os). Ready for ESP32, STM32 on Pyboard, Pycom's chipsets (WiPy, LoPy, ...). Robust, efficient and documented!
Stars: ✭ 295 (-56.23%)
Mutual labels:  websocket, https
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (-55.93%)
Mutual labels:  websocket, cross-platform
Actix Net
A collection of lower-level libraries for composable network services.
Stars: ✭ 415 (-38.43%)
Mutual labels:  multithreading, networking
Airshare
Cross-platform content sharing in a local network
Stars: ✭ 497 (-26.26%)
Mutual labels:  networking, cross-platform
Cppserver
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 528 (-21.66%)
Mutual labels:  websocket, https
Tor2web
Tor2web is an HTTP proxy software that enables access to Tor Hidden Services by mean of common web browsers
Stars: ✭ 531 (-21.22%)
Mutual labels:  networking, https
Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+385.76%)
Mutual labels:  networking, cross-platform
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+380.86%)
Mutual labels:  websocket, networking
Pode
Pode is a Cross-Platform PowerShell web framework for creating REST APIs, Web Sites, and TCP/SMTP servers
Stars: ✭ 329 (-51.19%)
Mutual labels:  cross-platform, https
Lightio
LightIO is a userland implemented green thread library for ruby
Stars: ✭ 165 (-75.52%)
Mutual labels:  multithreading, networking
Liteexchange
My programming lab : multithreaded order matching engine in C++11 using FIX for order entry for Linux/Windows , no 3rd party libraries
Stars: ✭ 142 (-78.93%)
Mutual labels:  multithreading, cross-platform
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (-12.91%)
Mutual labels:  websocket, https
So 5 5
SObjectizer: it's all about in-process message dispatching!
Stars: ✭ 87 (-87.09%)
Mutual labels:  multithreading, cross-platform
Watsonwebserver
Watson is the fastest, easiest way to build scalable RESTful web servers and services in C#.
Stars: ✭ 125 (-81.45%)
Mutual labels:  multithreading, https
Telegraph
Secure Web Server for iOS, tvOS and macOS
Stars: ✭ 474 (-29.67%)
Mutual labels:  websocket, https

Brynet

Header Only Cross platform high performance TCP network library using C++ 11.

996.icu LICENSE SonarCloud Platform

Build status

Windows : Build status Linux/MacOS : Build Status

Features

  • Header only
  • Cross platform (Linux | Windows | MacOS)
  • High performance and safety use.
  • None depend
  • Multi-threaded
  • SSL support
  • Support HTTP、HTTPS、WebSocket
  • IPv6 support

Documentation

Compatibility

  • Visual C++ 2013+ (32/64-bit)
  • GCC 4.8+ (32/64-bit)
  • Clang (Supported C++ 11)

Macro

  • BRYNET_VERSION
  • BRYNET_USE_OPENSSL

Build Example

  1. cmake . -Dbrynet_BUILD_EXAMPLES=ON -Dbrynet_BUILD_TESTS=ON
  2. If you use Windows, please open brynet.sln then build. If on Linux or MacOS, only enter make.

Only Install

  1. cmake .
  2. sudo make install

Usages

Benchmark

Under localhost, use CentOS 6.5 virtual mahcine(host machine is Win10 i5)

  • PingPong

    Benchamrk's server and client both only use one thread, and packet size is 4k

    PingPong

  • Broadcast

    Server use two network threads and one logic thread, client use one network(also process logic) thread. every packet size is 46 bytes. every packet contain client's id. server broadcast packet to all client when recv one packet from any client. client send one packet when recv packet from server and packet's id equal self.

    Broadcast

  • Ab HTTP(1 network thread)

    Server Hostname:        127.0.0.1
    Server Port:            9999
  
    Document Path:          /abc/de?a=1
    Document Length:        25 bytes
    
    Concurrency Level:      100
    Time taken for tests:   17.734 seconds
    Complete requests:      500000
    Failed requests:        0
    Total transferred:      41000000 bytes
    HTML transferred:       12500000 bytes
    Requests per second:    28194.36 [#/sec] (mean)
    Time per request:       3.547 [ms] (mean)
    Time per request:       0.035 [ms] (mean, across all concurrent requests)
    Transfer rate:          2257.75 [Kbytes/sec] received
    
    Connection Times (ms)
    min  mean[+/-sd] median   max
    Connect:        0    2   0.2      2       3
    Processing:     1    2   0.3      2       7
    Waiting:        0    1   0.4      1       6
    Total:          2    4   0.2      4       7
    
    Percentage of the requests served within a certain time (ms)
    50%      4
    66%      4
    75%      4
    80%      4
    90%      4
    95%      4
    98%      4
    99%      4
    100%      7 (longest request)

Examples

Users

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