IronsDu/brynet

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

C++

1,064

496 commits

updated May 25, 2026

See the code

README

Brynet

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

996.icu LICENSE Platform

Build status

build-and-test

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

c-plus-plus
cpp11
cross-platform
header-only
http
https
multithreading
networking
tcp-library
websocket

IronsDu/brynet

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

C++

1,064

496 commits

updated May 25, 2026

See the code

README

Brynet

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

996.icu LICENSE Platform

Build status

build-and-test

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

c-plus-plus
cpp11
cross-platform
header-only
http
https
multithreading
networking
tcp-library
websocket

Project health

Overall

3.1/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

disksing

622 followers · starred Dec 2019

Pavel Artemkin

44 followers · starred Dec 2019

Yuan Wang

140 followers · starred Jun 2017

Hossein Moein

256 followers · starred Oct 2020