Git Product home page Git Product logo

brynet's Introduction

Brynet

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

Windows : Build status Linux : Build Status

Features

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

Documentation

Compatibility

  • Visual C++ 2013+ on Windows (32/64-bit)
  • GCC 4.8+ on Linux (32/64-bit)
  • Not Support Mac OS X

Build

  1. cmake .
  2. If you use Windows, please open brynet.sln then build. If on Linux, only enter make.

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) Document Path: / Document Length: 18 bytes

      Concurrency Level:      100
      Time taken for tests:   5.871 seconds
      Complete requests:      100000
      Failed requests:        0
      Write errors:           0
      Non-2xx responses:      100000
      Total transferred:      5200000 bytes
      HTML transferred:       1800000 bytes
      Requests per second:    17031.62 [#/sec] (mean)
      Time per request:       5.871 [ms] (mean)
      Time per request:       0.059 [ms] (mean, across all concurrent requests)
      Transfer rate:          864.89 [Kbytes/sec] received
    
      Connection Times (ms)
                  min  mean[+/-sd] median   max
      Connect:        0    2   0.7      2       8
      Processing:     1    3   0.7      3       9
      Waiting:        0    3   0.8      3       8
      Total:          2    6   0.8      6      11
    
      Percentage of the requests served within a certain time (ms)
      50%      6
      66%      6
      75%      6
      80%      6
      90%      7
      95%      7
      98%      7
      99%      8
      100%     11 (longest request)
    

About session safety

This library use three layer ident one session(also is three way to use this library).

I suggest you use the second or thrid way above, because don't worry memory manager

Examples

Users

brynet's People

Contributors

dyu avatar ironsdu avatar nxrighthere avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.