All Projects → Intel-bigdata → Hpnl

Intel-bigdata / Hpnl

Licence: apache-2.0
High Performance Network Library for RDMA

Projects that are alternatives of or similar to Hpnl

Mrboom Libretro
Mr.Boom is an 8 player Bomberman clone for RetroArch/Libretro
Stars: ✭ 162 (+604.35%)
Mutual labels:  multi-platform, network
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+3243.48%)
Mutual labels:  multi-platform, network
Node Escpos
🖨️ ESC/POS Printer driver for node
Stars: ✭ 752 (+3169.57%)
Mutual labels:  network
Celiagg
🎨Anti-Grain Geometry for Python 3 with Cython
Stars: ✭ 17 (-26.09%)
Mutual labels:  multi-platform
Fsociety
fsociety Hacking Tools Pack – A Penetration Testing Framework
Stars: ✭ 7,224 (+31308.7%)
Mutual labels:  network
Reaktive
Kotlin multi-platform implementation of Reactive Extensions
Stars: ✭ 760 (+3204.35%)
Mutual labels:  multi-platform
Nexer
Content based network multiplexer or redirector made with love and Go
Stars: ✭ 7 (-69.57%)
Mutual labels:  network
Drawthe.net
drawthe.net draws network diagrams dynamically from a text file describing the placement, layout and icons. Given a yaml file describing the hierarchy of the network and it's connections, a resulting diagram will be created.
Stars: ✭ 729 (+3069.57%)
Mutual labels:  network
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+3791.3%)
Mutual labels:  network
Bmon
bandwidth monitor and rate estimator
Stars: ✭ 787 (+3321.74%)
Mutual labels:  network
Is Online
Check if the internet connection is up
Stars: ✭ 894 (+3786.96%)
Mutual labels:  network
Java Knowledge Mind Map
【🌱🌱Java服务端知识技能图谱】用思维脑图梳理汇总Java服务端知识技能
Stars: ✭ 787 (+3321.74%)
Mutual labels:  network
Zltoolkit
一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
Stars: ✭ 838 (+3543.48%)
Mutual labels:  network
Scapy
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3.
Stars: ✭ 6,932 (+30039.13%)
Mutual labels:  network
Jetsonjs
Embed a JavaScript/WebGL application on a Nvidia Jetson TX2 and stream the results through websockets. It does not rely on CUDA/Jetpack. HDMI touchscreen, virtual keyboard, GPIO control, wifi config are included.
Stars: ✭ 18 (-21.74%)
Mutual labels:  network
Locationmanager
Simplify getting user's location for Android
Stars: ✭ 730 (+3073.91%)
Mutual labels:  network
Flannel
flannel is a network fabric for containers, designed for Kubernetes
Stars: ✭ 6,905 (+29921.74%)
Mutual labels:  network
Trinitycore
TrinityCore Open Source MMO Framework (master = 9.1.5.41488, 3.3.5 = 3.3.5a.12340)
Stars: ✭ 7,074 (+30656.52%)
Mutual labels:  multi-platform
Network Programming With Go
Network programming with Go
Stars: ✭ 903 (+3826.09%)
Mutual labels:  network
Naivecnn
A naive (very simple!) implementation of a convolutional neural network
Stars: ✭ 18 (-21.74%)
Mutual labels:  network

HPNL

Build Status hpnl release

HPNL is a Fast, CPU-Efficient network library designed for modern network technology(#1 #2)

Contents

Introduction

Nowadays data is growing at a faster rate than ever before and large-scale data analytics present new challenge. HPNL is a light-weight network library built on Libfabric for big data application. It provides C/JAVA API and high level abstraction to let developer easily replace other TCP/IP based network library, like ASIO or Netty, without knowing the low level details of RDMA programing model. Ease to use API, functionality and performance is of primary design concern.

High level design

Installation

Build prerequisites

Library dependencies:

  • C++ 11
  • Libfabric 1.6+
  • Boost 1.58+
  • PMDK (optional)
  • JDK 1.8+ (optional)
  • FlatBuffers (optional)

HPNL depends on Libfabri. Please make sure the Libfabric is installed in your setup. Persistent Memory over Fabric is another targeting feature of HPNL with which you can use HPNL interface to communicate with Persistent Memory over different kinds of network fabrics. If you want to try the PMoF example, please install PMDK, a library to manage and access persistent memory devices.

On Ubuntu/Debian, install other requirements with:

sudo apt-get install cmake \
                     libboost-dev \
                     libboost-system-dev \

Build for C/C++

This project supports CMake out of box.

git clone https://github.com/Intel-bigdata/HPNL.git
cd HPNL
git submodule update --init --recursive
mkdir build; cd build;

By default, HPNL runs over TCP/IP protocol, in this mode, you may expect similar performance to other sockets based network library. Thanks to Libfabric, HPNL also supports RDMA, Omni-Path protocol, you can switch between different protocols by adding cmake build option as follows.

cmake -DWITH_VERBS=ON ..     // for RDMA Protocol
cmake -DWITH_PSM2=ON ..      // for Omni-Path Protocol
make && make install

If you install LibFabric or FlatBuffers in a custom directory you can point them using :

cmake -DLIBFABRIC_PREFIX=..... -DFLATBUFFERS_PREFIX=.....

Build for Java

The HPNL Java API comes with HPNL C/C++ shared library, the native code won't be included without explicit cmake option.

cmake -DWITH_JAVA=ON ..      // to include native code for Java API
make && make install
cd ${project_root_path}/java/hpnl; mvn package

Test

cd ${project_root_path}/build
ctest                        // cmake ctest is binded to Catch2 unit-test framework

Usage

To get started, refer to the mini tutorial. Simple C/S examples can be found in HPNL/examples directory.

Contact

[email protected]

[email protected]

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