All Projects → HumbleNet → Humblenet

HumbleNet / Humblenet

Licence: bsd-3-clause
a cross-platform networking library that works in the browser

Projects that are alternatives of or similar to Humblenet

Ice
A Go implementation of ICE
Stars: ✭ 114 (-77.86%)
Mutual labels:  networking, webrtc
Spitfire
An easy to use WebRTC Datachannels library for .NET applications.
Stars: ✭ 164 (-68.16%)
Mutual labels:  networking, webrtc
Rtp
A Go implementation of RTP
Stars: ✭ 120 (-76.7%)
Mutual labels:  networking, webrtc
Lance
Multiplayer game server based on Node.JS
Stars: ✭ 1,161 (+125.44%)
Mutual labels:  networking, websockets
Colyseus
⚔ Multiplayer Framework for Node.js
Stars: ✭ 3,817 (+641.17%)
Mutual labels:  networking, websockets
Facil.io
Your high performance web application C framework
Stars: ✭ 1,393 (+170.49%)
Mutual labels:  networking, websockets
Stun
A Go implementation of STUN
Stars: ✭ 141 (-72.62%)
Mutual labels:  networking, webrtc
Kalm.js
The socket manager
Stars: ✭ 155 (-69.9%)
Mutual labels:  webrtc, websockets
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+529.32%)
Mutual labels:  networking, websockets
Study-Room
Connect and study together with friends over text and voice channels, over a click of a button. Web application for chat and audio streaming.
Stars: ✭ 21 (-95.92%)
Mutual labels:  webrtc, websockets
Squid
Declarative and Reactive Networking for Swift.
Stars: ✭ 61 (-88.16%)
Mutual labels:  networking, websockets
Ntex
framework for composable networking services
Stars: ✭ 381 (-26.02%)
Mutual labels:  networking, websockets
Carrot
🥕 Build multi-device AR applications
Stars: ✭ 32 (-93.79%)
Mutual labels:  networking, websockets
Colyseus Examples
Colyseus Game Server examples for learning purposes
Stars: ✭ 109 (-78.83%)
Mutual labels:  networking, websockets
Netflux
JavaScript client and server side transport API based on WebRTC & WebSocket
Stars: ✭ 188 (-63.5%)
Mutual labels:  webrtc, websockets
Quic
A Go implementation of the QUIC API for Peer-to-peer and Client-to-Server Connections
Stars: ✭ 137 (-73.4%)
Mutual labels:  networking, webrtc
Wt Tracker
High-performance WebTorrent tracker
Stars: ✭ 144 (-72.04%)
Mutual labels:  webrtc, websockets
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (-70.49%)
Mutual labels:  webrtc, websockets
Simple Vpn
A simple VPN allowing mesh-like communication between nodes, over websockets
Stars: ✭ 201 (-60.97%)
Mutual labels:  networking, websockets
Filedrop Web
📲 WebRTC file transfer - React/TypeScript front end.
Stars: ✭ 375 (-27.18%)
Mutual labels:  webrtc, websockets

HumbleNet

HumbleNet is a cross platform networking library that utilizes WebRTC and WebSockets to handle network communication.

Using WebRTC and Websockets allows HumbleNet to support not only traditional platforms such as Windows, OS X, and Linux, but also web platforms such as ASM.JS / Emscripten.

Language Support

HumbleNet is a simple clean C based API that allows for wrappers to be written for any language that offers C binding.

Included Language Bindings

  • C/C++
    • a simple C header is available for both C and C++ development. There is also a BSD socket wrapper that will redirect the C socket API through humblenet.
  • C#
    • wrappers are included that work in Unity for its Desktop and WebGL platform support. They should also work in any other .NET application.

Demo applications

We have several demos to show off integrating HumbleNet.

TestPeer

This is a simple "chat" app in the tests folder for both C and C#. The C app will run on Windows, MacOS X, Linux, and Emscripten. The C# will run on .NET or Mono.

Quake 2

We have a port of Quake2 (Based on R1Q2) that includes HumbleNet networking and runs on Windows, Mac OS X, Linux and Emscripten.

Quake 2 HumbleNet port

Quake 3

We have a port of Quake3 (Based on QuakeJS) that includes HumbleNet networking and runs on Windows, Mac OS X, Linux and Emscripten.

Quake 3 HumbleNet port

Build Instructions

Project Dependencies:

  1. CMake (https://cmake.org/):
    • Linux: use your preferred package manager, like apt-get.
    • Mac: can be installed using brew.
    • Win: download the installer via site https://cmake.org/download/.
  2. Make (https://www.gnu.org/software/make/manual/make.html)
    • Unix: already installed.
    • Win: you can use Cygwin.
  3. FlatBuffers (https://google.github.io/flatbuffers/index.html)
    • Download the source code. The HumbleNet is way behind the current version of FlatBuffers. It's using the version 1.6.0 (currently 1.7.1).
      1. You can download/clone the repo, and revert the master to commit 81ecc98e023f85fe003a27e920e78b34db8a0087 here.
      2. Or download the Release here. This should work (not tested).
    • Follow the instructions here (https://google.github.io/flatbuffers/flatbuffers_guide_building.html);
    • You should get as result the flatc compiler executable.
    • Put your output directory (where the flatc exists, generally a build dir) into your PATH, so the compiler can be accessed anywhere.
  4. Go Language here
    • Download and install the compiler via download page.
    • Test on your terminal if you can execute go version;
    • Tested here with version go1.9.1 darwin/amd64.

Compilation:

  1. Download the project from github;
  2. Go the downloaded folder;
  3. Create a build folder (just to better organize the output code) and enter the directory;
  4. Run the command: cmake .. (with 2 dots), this will configure into the directory all files needed to build the library;
  5. Now it's need to copy the FlatBuffers include files:
    1. Go to folder where you downloaded the FlatBuffers;
    2. Copy the folder flatbuffers inside the include dir;
    3. Go back to your <HumbleNetDir>/build folder;
    4. Paste the flatbuffers folder into the humblenet dir, along side the humblepeer_generated.h file;
    5. This folder contains the flatbuffers.h file, that is a source dependency.
  6. From the build folder you can run the make command alone, and it will try to build all code, or with the desired target, example:
    1. make all: will build all executables and libraries;
    2. make clean: will clean the directory, but mantain the config files;
    3. make humblenet_test_peer: build the test peer found in <HumberNetDir>/tests/test_peer.cpp;
    4. make peer-server: will build the test server found in <HumbleNetDir>/src/peer-server;
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].