Writing a Network Client with Facebook's Wangle


Details
Networking is often a core requirement for modern applications, but the standard C++ library doesn't yet include any networking support. The Boost libraries have had networking components in the ASIO library, but it looks complicated and filled with details. What if we aren't experts in networking but we need to have networking to support a feature in our application, what options are available to us?
Wangle claims to be "a library that makes it easy to build protocols, application clients, and application servers." Wangle is an open source library created at Facebook and depends on the folly and fizz libraries, also from Facebook. Folly is what you might call a "support library" containing various utility components that fill gaps in the standard C++ library, or provide components similar to those in the standard library that are optimized for particular use cases. Fizz is a TLS 1.2 (transport layer security) implementation from Facebook.
This month, Richard Thomson will give us an introduction to Wangle centered around writing a network client to talk to an NNTP server. We'll look at the main abstractions provided by Wangle and how those are used to build a network client to an NNTP server. NNTP (Network News Transfer Protocol) is a stateful network protocol for reading articles from newsgroups, generally referred to as "usenet". Unlike single hosted forums or mailing lists, usenet is a distributed system with no central authority, providing redundancy and resiliency from single point failures (like the host of your favorite forum suddenly deciding they don't want to pay server costs anymore and deleting the whole thing).
This will be an online event, so drinks and snacks are on you!
Wangle: https://github.com/facebook/wangle
NNTP: https://datatracker.ietf.org/doc/html/rfc3977
Watch previous topics on the Utah C++ Programmers YouTube channel:
https://www.youtube.com/channel/UC56D6OIs_IAy24ubjC2_hmQ
Future topics: https://utahcpp.wordpress.com/future-meeting-topics/
Past topics: https://utahcpp.wordpress.com/past-meeting-topics/

Writing a Network Client with Facebook's Wangle