Best C/C++ Network Library - c++

This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
I haven't done work in C/C++ for a little bit and was just wondering what people's favorite cross platform libraries are to use.
I'm looking for something that is a good quick and dirty library as well as a library that is a little more robust. Often those are two different libraries and that's okay.

Aggregated List of Libraries
Boost.Asio is really good.
Asio is also available as a stand-alone library.
ACE is also good, a bit more mature and has a couple of books to support it.
C++ Network Library
POCO
Qt
Raknet
ZeroMQ (C++)
nanomsg (C Library)
nng (C Library)
Berkeley Sockets
libevent
Apache APR
yield
Winsock2(Windows only)
wvstreams
zeroc
libcurl
libuv (Cross-platform C library)
SFML's Network Module
C++ Rest SDK (Casablanca)
RCF
Restbed (HTTP Asynchronous Framework)
SedNL
SDL_net
OpenSplice|DDS
facil.io (C, with optional HTTP and Websockets, Linux / BSD / macOS)
GLib Networking
grpc from Google
GameNetworkingSockets from Valve
CYSockets To do easy things in the easiest way
yojimbo
GGPO
ENet
SLikeNet is a fork of Raknet
netcode
photon is closed source, requires license to use their sdk
crossplatform network - open source non blocking metatemplate framework built on top of boost asio

Related

HTTP Websockets client library in C++ for Windows CE/Mobile

I am looking for a C/C++ based http/websocket library with SSL(HTTPS/wss) support on Windows CE/Mobile that uses Windows SChannel (rather than OpenSSL). I ported over the wslay library so that I could use it with libcurl. This is turning out to be difficult to integrate. Is anyone aware of a library that I can use on Windows CE/Mobile platforms that's not dependent on OpenSSL?
I found POCO but that seemed to have OpenSSL dependencies. So in turn ended up porting wslay to Windows CE and filled in the necessary callbacks with libcurl's curl_easy_send and curl_easy_receive functions for IO. Wslay doesn't have an implemented IO layer and gives the user the choice to use the appropriate IO library needed. Libcurl doss come with SChannel support that made things even more easier for using secure WebSocket over wslay.

Does Boost C++ have a Download/Web Library [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Boost.ASIO-based HTTP client library (like libcurl)
Does Boost C++ have a namespace/library that downloads a file via HTTP or FTP? I am writting an application that will download an XML file.
The application needs to work on Windows XP and up which is why I am looking at Boost C++ because of portability and speed of development.
If Boost doesn't have a download library, do you know of a library that can download a file and is Cross Windows Version compatible?
Boost.Asio may be what you want.
There is another good C++ Library named C++ Poco, which also provides HTTP/FTP download functionality.

zlib for WinRT?

I require zlib library for the development of Windows Store app.
Has anyone converted Win32 zlib project to WinRT yet?
Can anyone please describe the steps to convert the existing win32 static lib project to winRT?
Visual C++ is already a supported language for WinRT development, if you wan't to use zlib, just compile it together with your solution. There is nothing that is preventing you from reusing standard ISO C and C++ libraries from within the WinRT, if you are using the C++ language, you might have to expose certain aspects of your library as WinRT Components but only if you need to interface with facilities like XAML or other WinRT languages but that should be a walk in the park. Not something which is tremendously difficult to do.
The whole point of supporting C++ in the WinRT is to allow an existing ecosystem of largely native applications to be ported to the Windows Store. zlib is not an exception. Non-standard ISO C and C++ such as sockets are not supported but there you have alternatives that you can plug-in to, just check that the library you're using has some kind of portability support.
WinRT is very limited with regards to C library functions which are present. What this means is that virtually all cross-platform C libraries are (AFAIK, I'm not a WinRT dev) unusable for that target.
For the case of zlib, there is an alternative: see this question
EDIT: to clarify what I'm saying above, I dug up a list of all CRT functions that are absent for WinRT, which you can find here. As long as zlib or any other C library does not depend on these function calls, you should be able to use the WinRT tools to build that C library. I even found a project file for zlib on winrt by the Ogre team here, not sure how useful it is to you.
You could take a look into this WinRT (Un)Zip component. Its used in production code already.
See the unit tests inside on how to use the component. It compiles on all WinRT architectures including ARM. It has no custom asm for ARM though.

C++ Crossplatform lightweight file, threading and processing library

I'm writing for sometime an wrapper library for my own programming language in C++.
Some of the most important intensions of my library is that it must be fast, easy, portable and lightweighted.
Currently it's depending on the Boost libraries. The problem with the boost libraries is that it's relatively large (file sizes). Also, it's depending on static libraries you have to build yourself. Compared to the prebuilt libraries coming with any native compiler (std), it's lacking on 2 out of the 4 intensions:
Easy - Users need to build boost itself
Lightweighted - Boost itself is about 100 MB
I was hoping for some advice, since currently I´m only using boost for purposes std doesn´t provide like threading, file searching and process creation (using unaccepted Boost.Process).
What is the best go for me, stay with boost, writing the libraries myself or maybe you guys know any other good librarie(s) which settle my needs?
Edit: This project is being developed with MinGW on Windows, for portability with other platforms (GCC).
Since the C++11 standard, C++ have threading built into the standard library.

Com port library in C or C++

i need to manage a COM printer port by Tomcat webserver. I tried a lot of java solutions, for example RxTx library but i had a lot of troubles: when i switch off the printer the jvm crashed!!
Now i would like to use an jvm external library linked by JNA, so i need a C or C++ library with raw methods to read and write to a COM port. This library should be compile under windows or linux. Can I find somethings already done? (I can not write programs in C or C++).
Thank you.
Use Boost Asio!
Its guaranteed to be fully portable. Its also very reliable. I've actually used it in my own application (SMS sender through gsm devices using AT commands).
Please also see: Access the serial port in a platform-independant way
Try another one library: http://code.google.com/p/qextserialport/
This project targeted for Qt users.
Supports Qt4 and Qt5 both!
In case you're looking for something lightweight with no additional dependencies, I'd like to plug my own library https://github.com/nullpunktTUD/SerialPort
It is fully cross-platform and supports enumeration.