An easy-to-learn, high performance network io library written in modern cpp (c++11), It borrows concepts from Netty, and with well defined internal modules, It enables you to write rpc, http/https,websocket application with just few lines。

A new beginning of network programming

What is Netplus

Netplus is a network programming library written in c++11. It's highly extensible, and with default configuration it can reach high performance. It's easy to learn. Basically, you can just implement your own business in a channel handler, then the library would do all the dirty work (platform specific considerations, io event delivery&process, basic memory optimization, etc ) for you. You can also write http/https,websocket,based application even you only have little corresponding knowledge background, Cuz it has relevant modules to simplify programming tasks of such kinds. Netplus borrows lots of concepts from Netty, and tries to implement these concepts by c++, such as channel, channel handler, channel pipeline, executor, scheduler, promise. Any one who is familiar with Netty should be able to start with ease.

What can we use Netplus to do

1) Implement a message gateway
2) Use as the network component of a message queue, gameserver or any other network based application.
   please note that netplus is not a gameserver framework, But you can implement one with netplus
3) Implement protocol driver of Middleware, such as kinds of database, message queue server, etc
4) Implement http/https, websocket based application
5) Implement RPC server

Target Arch & Platform

1) Windows on x86
2) Linux on x86/arm
3) IOS/MAC on x86/arm
4) Android on x86/arm

Learn more from the following urls:

Build and usage: https://github.com/netplus/netplus/wiki#building--usage

Quick Start: https://github.com/netplus/netplus/wiki#quick-start

Benchmark: https://github.com/netplus/netplus/wiki#benchmark

Examples: https://github.com/netplus/netplus/wiki#examples

Basic concept: https://github.com/netplus/netplus/wiki#concept

Modules: https://github.com/netplus/netplus/wiki#modules

Zhihu: https://www.zhihu.com/column/c_1339539434091040768

Others

QQ group: 576499184 (加群请注明来源,thx)
Owner
BingBing
C/C++ Programmer
BingBing
Similar Resources

RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system

RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system

RPC++ RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system Installing requirements Arch based systems pacm

Jul 6, 2022

An easy to use and powerful open source websocket library written in C.

libwebsock Easy to use C library for websockets This library allows for quick and easy development of applications that use the websocket protocol, wi

May 4, 2022

AREG IoT SDK (or AREG SDK) is a real-time asynchronous communication framework written in C++ for embedded development that enables thin servers run on connected Things and provide device specific services at the edge of IoT network.

AREG IoT SDK to simplify multitasking programming Bring your product to live service enabled Introduction AREG IoT SDK (or AREG SDK) is an Object Remo

Sep 27, 2022

modern C++(C++11), simple, easy to use rpc framework

modern C++(C++11), simple, easy to use rpc framework

Sep 30, 2022

Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket,  MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Sep 28, 2022

websocket and http client and server library, coming with ws, a command line swiss army knife utility

Hello world IXWebSocket is a C++ library for WebSocket client and server development. It has minimal dependencies (no boost), is very simple to use an

Sep 18, 2022

Small and fast cross-platform networking library, with support for messaging, IPv6, HTTP, SSL and WebSocket.

frnetlib Frnetlib, is a cross-platform, small and fast networking library written in C++. There are no library dependencies (unless you want to use SS

May 16, 2022

Perf-ninja - This is an online course where you can learn and master the skill of low-level performance analysis and tuning.

Perf-ninja - This is an online course where you can learn and master the skill of low-level performance analysis and tuning.

Performance Ninja Class This is an online course where you can learn to find and fix low-level performance issues, for example CPU cache misses and br

Sep 26, 2022

H2O - the optimized HTTP/1, HTTP/2, HTTP/3 server

H2O - an optimized HTTP server with support for HTTP/1.x, HTTP/2 and HTTP/3 (experimental) Copyright (c) 2014-2019 DeNA Co., Ltd., Kazuho Oku, Tatsuhi

Oct 3, 2022
Comments
  • Netplus failed to build with error C1083: Cannot open include file: 'netp/core/compiler/msvc__NETP_ARCH_STR_.hpp' and C1189: #error:

    Netplus failed to build with error C1083: Cannot open include file: 'netp/core/compiler/msvc__NETP_ARCH_STR_.hpp' and C1189: #error: "Platform not supported!" with MSVC on windows

    Netplus failed to build with error C1083: Cannot open include file: 'netp/core/compiler/msvc__NETP_ARCH_STR_.hpp' and C1189: #error: "Platform not supported!" with MSVC on windows. It can reproduces on version https://github.com/netplus/netplus/commit/5db9e3ab4d370cbd9b9f105b0dce64100d0ab7bc. Could you please help look at this issue? Thank you very much

    Environment Compiler version: VS2019 (16.11.9) Operating system: Windows server 2019

    Steps to reproduce:

    1. open VS2019 x64 tools command
    2. git clone https://github.com/netplus/netplus F:\netplus
    3. cd F:\netplus\projects\cmake
    4. "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=arm64
    5. mkdir build_arm64 & cd build_arm64
    6. cmake -G "Visual Studio 16 2019" -A arm64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 ..
    7. msbuild /m /p:Platform=arm64 /p:Configuration=Release netplus.sln /t:Rebuild

    Build.log: msbuild.log

    Error info: 5>F:\netplus\projects\cmake....\include\netp/core/compiler.hpp(98,10): fatal error C1083: Cannot open include file: 'netp/core/compiler/msvc__NETP_ARCH_STR_.hpp': No such file or directory (d:\a01_work\3\s\src\vctools\Compiler\CxxFE\sl\p1\c\p0prepro.c:1968) [F:\netplus\projects\cmake\build_arm64\netplus.vcxproj] 5>F:\netplus\3rd\stack_walker\StackWalker.cpp(1194,1): fatal error C1189: #error: "Platform not supported!" [F:\netplus\projects\cmake\build_arm64\netplus.vcxproj]

  • Netplus failed to build due to

    Netplus failed to build due to "fatal error C1083: Cannot open include file: 'ares_build.h': No such file or directory" on x86 and x64 configuration with MSVC on windows

    Describe the bug Netplus failed to build due to "fatal error C1083: Cannot open include file: 'ares_build.h': No such file or directory" on x86 and x64 configuration with MSVC on windows. Could you please help look at this issue or provide some workarounds? Thanks in advance.

    To Reproduce

    1. git clone https://github.com/netplus/netplus F:\gitP\musescore\MuseScore
    2. mkdir F:\gitP\netplus\netplus\projects\cmake\build_amd64
    3. cd F:\gitP\netplus\netplus\projects\cmake\build_amd64
    4. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
    5. cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 .. 2>&1
    6. msbuild /m /p:Platform=x64 /p:Configuration=Release netplus.sln /t:Rebuild 2>&1

    Error Message "F:\gitP\netplus\netplus\projects\cmake\build_amd64\netplus.sln" (Rebuild target) (1) ->        "F:\gitP\netplus\netplus\projects\cmake\build_amd64\netplus.vcxproj.metaproj" (Rebuild target) (3) ->        "F:\gitP\netplus\netplus\projects\cmake\build_amd64\netplus.vcxproj" (Rebuild target) (5) ->        (ClCompile target) ->          F:\gitP\netplus\netplus\3rd\c-ares\c-ares-1.18.1\src\lib\ares_setup.h(83,10): fatal error C1083: Cannot open include file: 'ares_build.h': No such file or directory (D:\a01_work\2\s\src\vctools\Compiler\CxxFE\sl\p1\c\p0prepro.c:1934) [F:\gitP\netplus\netplus\projects\cmake\build_amd64\netplus.vcxproj]

        11 Warning(s)     1 Error(s)

    Expected behavior Build successfully.

    Setup VS 2019 + Windows Server 2019

    Additional context build.log log

cuehttp is a modern c++ middleware framework for http(http/https)/websocket(ws/wss).

cuehttp 简介 cuehttp是一个使用Modern C++(C++17)编写的跨平台、高性能、易用的HTTP/WebSocket框架。基于中间件模式可以方便、高效、优雅的增加功能。cuehttp基于boost.asio开发,使用picohttpparser进行HTTP协议解析。内部依赖了nl

Aug 15, 2022
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.

evpp Introduction 中文说明 evpp is a modern C++ network library for developing high performance network services using TCP/UDP/HTTP protocols. evpp provid

Sep 29, 2022
Pushpin is a reverse proxy server written in C++ that makes it easy to implement WebSocket, HTTP streaming, and HTTP long-polling services.
Pushpin is a reverse proxy server written in C++ that makes it easy to implement WebSocket, HTTP streaming, and HTTP long-polling services.

Pushpin is a reverse proxy server written in C++ that makes it easy to implement WebSocket, HTTP streaming, and HTTP long-polling services. The project is unique among realtime push solutions in that it is designed to address the needs of API creators. Pushpin is transparent to clients and integrates easily into an API stack.

Sep 28, 2022
A very basic eBPF Load Balancer in a few lines of C

An eBPF Load Balancer from scratch As seen at eBPF Summit 2021. This is not production ready :-) This uses libbpf as a git submodule. If you clone thi

Sep 21, 2022
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
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

CppServer Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and

Sep 28, 2022
Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use

What Is RESTinio? RESTinio is a header-only C++14 library that gives you an embedded HTTP/Websocket server. It is based on standalone version of ASIO

Sep 24, 2022
Gromox - Groupware server backend with MAPI/HTTP, RPC/HTTP, IMAP, POP3 and PHP-MAPI support for grommunio

Gromox is the central groupware server component of grommunio. It is capable of serving as a replacement for Microsoft Exchange and compatibles. Conne

Sep 23, 2022
Packio - An asynchronous msgpack-RPC and JSON-RPC library built on top of Boost.Asio.

Header-only | JSON-RPC | msgpack-RPC | asio | coroutines This library requires C++17 and is designed as an extension to boost.asio. It will let you bu

Aug 31, 2022
A high-performance and easy-to-use C++ network library.

pine A high-performance and easy-to-use C++ network library. Now this is just a toy library for education purpose, do not use in production. example A

Sep 24, 2022
A cross-platform network learning demos. Like high-performance http server

Network-Learn A cross-platform network learning demos (toys). And I try not to use 3rd-party libraries. Welcome to try it out and leave your comments.

Sep 6, 2022