RakNet alternatives and similar libraries
Based on the "Networking" category.
Alternatively, view RakNet alternatives based on common mentions on social networks and blogs.
libcurl9.8 9.9 L2 RakNet VS libcurlA command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
Muduo9.6 2.1 L4 RakNet VS MuduoEvent-driven network library for multi-threaded Linux server in C++11
uWebSockets9.5 5.8 RakNet VS uWebSocketsSimple, secure & standards compliant web server for the most demanding of applications
KCP9.5 0.0 RakNet VS KCP:zap: KCP - A Fast and Reliable ARQ Protocol
Mongoose9.3 9.5 L3 RakNet VS MongooseEmbedded Web Server
C++ Workflow9.2 9.6 RakNet VS C++ WorkflowC++ Parallel Computing and Asynchronous Networking Engine
cpp-httplib9.2 8.1 RakNet VS cpp-httplibA C++ header-only HTTP/HTTPS server and client library
POCO9.1 9.5 L2 RakNet VS POCOThe POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
Proxygen9.1 9.4 L4 RakNet VS ProxygenA collection of C++ HTTP libraries including an easy to use HTTP server.
C++ REST SDK9.1 0.0 L1 RakNet VS C++ REST SDKThe C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
WebSocket++8.9 0.0 L2 RakNet VS WebSocket++C++ websocket client/server library
libwebsockets8.4 7.6 L2 RakNet VS libwebsocketscanonical libwebsockets.org networking library
cpr8.4 9.6 L2 RakNet VS cprC++ Requests: Curl for People, a spiritual port of Python Requests.
nghttp28.2 8.7 L1 RakNet VS nghttp2nghttp2 - HTTP/2 C Library and tools
evpp8.1 0.0 RakNet VS evppA modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
boost.beast(new repo)8.0 7.1 RakNet VS boost.beast(new repo)HTTP and WebSocket built on Boost.Asio in C++11
Boost.Beast8.0 7.1 RakNet VS Boost.BeastHTTP and WebSocket built on Boost.Asio in C++11
Simple-Web-Server7.7 0.0 L4 RakNet VS Simple-Web-ServerA very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.
wdt7.6 4.2 RakNet VS wdtWarp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.
PcapPlusPlus7.3 8.2 RakNet VS PcapPlusPlusPcapPlusPlus is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. It provides C++ wrappers for the most popular packet processing engines such as libpcap, Npcap, WinPcap, DPDK and PF_RING.
cpp-netlib7.1 0.0 L2 RakNet VS cpp-netlibThe C++ Network Library Project -- cross-platform, standards compliant networking library.
netcode.io6.9 0.0 RakNet VS netcode.ioA protocol for secure client/server connections over UDP
Restbed6.9 0.0 L4 RakNet VS RestbedCorvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.
Onion6.8 5.0 L4 RakNet VS OnionC library to create simple HTTP servers and Web Applications.
libquic6.8 0.0 RakNet VS libquicQUIC, a multiplexed stream transport over UDP
Silicon6.4 0.0 L4 RakNet VS SiliconA high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead
Dyad.c6.2 0.0 L3 RakNet VS Dyad.cAsynchronous networking for C
dotenv-linter6.0 7.0 RakNet VS dotenv-linter⚡️Lightning-fast linter for .env files. Written in Rust 🦀
Simple-WebSocket-Server5.7 0.0 L4 RakNet VS Simple-WebSocket-ServerA very simple, fast, multithreaded, platform independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Boost.Asio and OpenSSL. Created to be an easy way to make WebSocket endpoints in C++.
libhttpserver5.2 1.0 RakNet VS libhttpserverC++ library for creating an embedded Rest HTTP server (and more)
RESTinio5.2 5.5 RakNet VS RESTinioCross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use
Tufão5.0 0.0 L2 RakNet VS TufãoAn asynchronous web framework for C++ built on top of Qt
nope.c4.8 0.0 L1 RakNet VS nope.cWAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.
curlcpp4.8 5.0 RakNet VS curlcppAn object oriented C++ wrapper for CURL (libcurl)
net_skeleton4.7 0.0 L3 RakNet VS net_skeletonAsync non-blocking multi-protocol networking library for C/C++
Seasocks4.7 3.5 RakNet VS SeasocksSimple, small, C++ embeddable webserver with WebSockets support
D++4.5 9.4 RakNet VS D++C++ Discord API Bot Library - D++ is Lightweight and scalable for small and huge bots!
verdigris4.4 0.0 RakNet VS verdigrisQt without moc: set of macros to use Qt without needing moc
IXWebSocket4.0 5.5 RakNet VS IXWebSocketwebsocket and http client and server library, with TLS support and very few dependencies
netLink3.4 0.0 L1 RakNet VS netLinkSocket and Networking Library using msgpack.org[C++11]
Boost.Http3.3 0.0 RakNet VS Boost.HttpEmbeddable C++ HTTP server
bredis3.0 0.0 RakNet VS bredisBoost::ASIO low-level redis client (connector)
tntnet2.7 0.0 L1 RakNet VS tntnetTntnet is a web application server for web applications written in C++.
Breep2.6 0.0 RakNet VS BreepC++ peer to peer library, built on the top of boost
QuantumGate2.5 0.0 RakNet VS QuantumGateQuantumGate is a peer-to-peer (P2P) communications protocol, library and API written in C++.
nanoMODBUS2.1 3.5 RakNet VS nanoMODBUSA compact MODBUS RTU/TCP C library for embedded/microcontrollers
Barracuda App Server1.6 6.4 RakNet VS Barracuda App ServerEmbedded Web Server Library with Integrated Scripting Engine
NetIF1.5 7.4 RakNet VS NetIFHeader-only C++14 library for getting addresses associated with network interfaces without name lookups on Windows, macOS, Linux, and FreeBSD
crispy-fortnight1.2 0.3 RakNet VS crispy-fortnightThis my first repository in github
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of RakNet or a related project?
Copyright (c) 2014, Oculus VR, Inc.
The Help directory contains index.html, which is full help documentation in HTML format The Source directory contain all files required for the core of Raknet and is used if you want to use the source in your program or create your own dll The Samples directory contains code samples and one game using an older version of Raknet. The code samples each demonstrate one feature of Raknet. The game samples cover several features. The lib directory contains libs for debug and release versions of RakNet and RakVoice There is a make file for linux users in the root directory. Windows users can use projects under Samples\Project Samples
Upgrading from version 3
Windows users (Visual Studio 2008 and 2010)
Load RakNet_VS2008.sln and convert if necessary.
After the project conversion, if you encounter error MSB4006, follow the steps below to fix it:
- Open project properties
- Click on "Common Properties"
- Click on "Framework and References"
- Look under "Build Properties"
- Change the "Copy Local" flag from "True" to "False"
For other compiler issues, please see Help/compilersetup.html
Windows users (VC6)
Not supported, but you can get by if you directly include the source.
Copy Include, Source, and whatever you want to run in the home directory. Then type
g++ ../../lib/w32api/libws2_32.a *.cpp
You can run
You might have to copy
cygwin\bin as well.
g++ -lpthread -g *.cpp in the /Source directory.
With libcat, use
g++ -pthread -g -I./../DependentExtensions *.cpp in the /Source directory.
64 bit use -m64 command line Sometimes you need -pthread instead of -lpthread
Command to build 64 bit chat example server from the /Source directory:
g++ -m64 -g -lpthread -I./ "../Samples/Chat Example/Chat Example Server.cpp" *.cpp
Command to build NATCompleteServer from the Samples/NATCompleteServer directory:
g++ -g -lpthread -I./ -I./../../Source main.cpp -I./../CloudServer ./../../Source/*.cpp ./../CloudServer/CloudServerHelper.cpp
Command to build autopatcher server from /Source directory:
g++ -lpthread -lpq -lssl -lbz2 -lssl -lcrypto -L/opt/PostgreSQL/9.0/lib -L../DependentExtensions/bzip2-1.0.6 -I/opt/PostgreSQL/9.0/include -I../DependentExtensions/bzip2-1.0.6 -I./ -I../DependentExtensions/Autopatcher -I../DependentExtensions/Autopatcher/AutopatcherPostgreRepository -I../DependentExtensions/PostgreSQLInterface -g *.cpp ../DependentExtensions/Autopatcher/AutopatcherServer.cpp ../DependentExtensions/Autopatcher/CreatePatch.cpp ../DependentExtensions/Autopatcher/MemoryCompressor.cpp ../DependentExtensions/Autopatcher/AutopatcherPostgreRepository/AutopatcherPostgreRepository.cpp ../DependentExtensions/PostgreSQLInterface/PostgreSQLInterface.cpp ../Samples/AutopatcherServer/AutopatcherServerTest.cpp
Command to build NATCompleteServer from /Source directory:
g++ -lpthread -I./ -I../Samples/CloudServer ../Samples/CloudServer/CloudServerHelper.cpp ../Samples/NATCompleteServer/main.cpp *.cpp
Command to build BigPacketTest from /Source directory:
g++ -lpthread -I./ ../Samples/BigPacketTest/BigPacketTest.cpp *.cpp
Or with debugging info on:
g++ -g -lpthread -I./ ../Samples/BigPacketTest/BigPacketTest.cpp *.cpp
If you get /usr/local/lib/libraknet.so: undefined reference to `__sync_fetch_and_add_4 then build with
To debug: http://www.unknownroad.com/rtfm/gdbtut/gdbstack.html http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html http://linux.bytesex.org/gdb.html http://www.delorie.com/gnu/docs/gdb/gdb_29.html
Disable a breakpoint:
Delete a breakpoint:
Get a list of breakpoints:
St breakpoint to be ignored that number of times
ignore <breakpointNumber> <count> run
Other useful commands:
info stack info locals delete (Clears all breakpoints) step (step into) next (step over) finish (step out) continue to keep going after step or next p <variableName> For example: p users.orderedList.listArray.guid
Command to install g++
sudo apt-get install gcc-c++ sudo apt-get install build-essential
yum install gcc-c++
sudo apt-get update sudo apt-get install g++
Command to install gdb
sudo apt-get install gdb
Command to install wget, used to download files from webpages sudo apt-get install wget
Series of commands for a new server: sudo apt-get install wget sudo apt-get update sudo apt-get install --fix-missing g++ sudo apt-get install gdb cd RakNet_Install_Directory\Source g++ -m64 -g -pthread -I./ "../Samples/Chat Example/Chat Example Server.cpp" *.cpp ./a.out
Open a Terminal window and type:
cd ~/Desktop/RakNet/Source g++ -c -DNDEBUG -I -isysroot /Developer/SDKs/MacOSX10.5u.sdk/ -arch i386 *.cpp
Use whichever SDK you have. However, the 10.4 SDK is bugged and will not compile unless you use GCC 4.0 from inside XCODE
The sources should build cleanly. This gives you a bunch of PowerPC binaries, compiled against the 10.3.9 SDK which is a good thing.
Give the following command:
libtool -static -o raknetppc.a *.o
This will stitch together a static library for the PowerPC architecture. There may be warnings that some .o files do not have any symbols. If you want to be prudent, remove the named files (the .o files, not the .cpp files!) and re-run the libtool command.
Now, we build the source files for Intel:
gcc -c -I ../Include -isysroot /Developer/SDKs/MacOSX10.4u.sdk/ -arch i386 *.cpp
..and stitch it into a i386 library:
libtool -static -o rakneti386.a *.o
which should list the two .a files. Now, we make them into a universal binary:
lipo -create *.a -o libraknet.a
You now have a file named libraknet.a. This is the RakNet library, built to run on both PowerPC and Intel Macs. Enjoy! ;-)
Depending on what version you target, you may have to change two defines to not use 64 bit integers and floats or doubles.
You will need the latest CYWGIN and the android SDK to build native code on the android. Under CYWGIN, you will need to run ndk-build on a directory for RakNet.
Under cygwin, create the RakNet directory somewhere, such as under samples. For example, if you create the path
I copied the Android.Manifest.xml and other files from another sample
Under jni, you will need the following Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := RakNet MY_PREFIX := $(LOCAL_PATH)/RakNetSources/ MY_SOURCES := $(wildcard $(MY_PREFIX)*.cpp) LOCAL_SRC_FILES += $(MY_SOURCES:$(MY_PREFIX)%=RakNetSources/%) include $(BUILD_SHARED_LIBRARY)
This version of Android.mk assumes there is a directory called RakNetSources, for example
Under RakNetSources should be the /Source directory to RakNet. Rather than copy the files I used junction.exe http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
The command I used to create the junction was:
D:/cygwin/home/Kevin/android-ndk-r4b/samples/RakNet/jni/junction.exe -s D:/cygwin/home/Kevin/android-ndk-r4b/samples/RakNet/jni/RakNetSources D:/RakNet4/Source
To unjunction I used:
D:/cygwin/home/Kevin/android-ndk-r4b/samples/RakNet/jni/junction.exe -d D:/cygwin/home/Kevin/android-ndk-r4b/samples/RakNet/jni/RakNetSources
From within the CYWGIN enviroment, navigate to home/Kevin/android-ndk-r4b/samples/RakNet. Then type
Everything should build and you should end up with a .so file.
You should then be able to create a project in eclipse, and import cygwin/home/Kevin/android-ndk-r4b/samples/RakNet
Solution: RakNet_NativeClient_VS2010. See Samples\nacl_sdk\RakNet_NativeClient_VS2010\HowToSetup.txt for detailed instructions on setup.
Windows Phone 8
Example solution: RakNet_WinPhone8_VS2012. Add to your project DependentExtensions\WinPhone8\ThreadEmulation.cpp Add DependentExtensions\WinPhone8\ to your include paths Define _CRT_SECURE_NO_WARNINGS and WINDOWS_PHONE_8
Windows Store 8
Example solution: RakNet_WindowsStore8_VS2012.sln Add to your project DependentExtensions\WinPhone8\ThreadEmulation.cpp Add DependentExtensions\WinPhone8\ and DependentExtensions\WinRT to your include paths TCP is not supported, only UDP (RakPeer). IPV4 only (not hard to also add IPV6 upon request). Define: _CRT_SECURE_NO_WARNINGS WINDOWS_STORE_RT _RAKNET_SUPPORT_TCPInterface=0 _RAKNET_SUPPORT_PacketizedTCP=0 _RAKNET_SUPPORT_EmailSender=0 _RAKNET_SUPPORT_HTTPConnection=0 _RAKNET_SUPPORT_HTTPConnection2=0 _RAKNET_SUPPORT_TelnetTransport=0 _RAKNET_SUPPORT_NatTypeDetectionServer=0 _RAKNET_SUPPORT_UDPProxyServer=0 _RAKNET_SUPPORT_UDPProxyCoordinator=0 _RAKNET_SUPPORT_UDPForwarder=0