Who is using Asio?

Here is a list of some projects that are using Asio. If you are using
Asio, feel free to ask for your project’s information to be added to
this page. Consider including information about scalability, performance
and so on; i.e. the sorts of things you would like to hear about other
projects. Thanks!

Loggly - high-performance cloud-based log aggregation and analytics

At Loggly we built our high-performance Collectors using the Boost ASIO
framework. We found its event-driven model to perform very well, and the
framework itself was a joy to code with. You can more details from our
blog post.

Remobo — create your own Instant Private Network (IPN)

Remobo allows you to easily creates an Instant Private Network (IPN)
between your computers and your friends. It’s a COMPUTER network based
on your social network circle. With IPN service, you and your friends
can work or play together over Internet as if you were sitting on the
same office or home LAN (Local Area Network).

Remobo uses Boost and
asio libraries for multi-threading,
asynchronous socket I/O, and timer. which are the building blocks for
our large-scale, fault-tolerant distributed systems.
Boost and asio are
chosen over other alternative libraries for its portability across
multiple platforms like Linux, Mac OSX, and Windows NT/2000/XP/Vista.
The simplicity of asio’s header-only implementation is also highly
appreciated.

Osiris - Serverless Portal System

Osiris is a free portal creation software. The portals created with
osiris don’t need a central server, they are safe, indestructible and
anonymous. In those portals, all users have the same rights, so the
standard hierarchys (administrators, moderators, members) of regular
forums are not present, even if they are supported.

Osiris uses the Boost and
asio libraries for multi-threading and
asynchronous I/O. Multi-threading allows the use of multiple CPUs or
processing cores to process HTTP requests simultaneously. Asynchronous
I/O allows each thread to handle many connections simultaneously
(otherwise, a single thread would be required for every connection to
the server).

Jet Infosystems, SKVT "Dozor-Jet"

Jet Infosystems, Moscow - one of the leading Russian integrator and
manufacturer of network security software. SKVT "Dozor-Jet" is web
traffic filtering system, that act as a proxy and perform bidirectional
filtering of web traffic - by URL, mime-type, words, time, etc.
Description (in Russian) available
here.

Software implement process per connection strategy, perform pre-forking
of handlers. Asio used both in sync and async mode. Sync mode use for
http connections, and async - for https.

Pion CEP Platform & Pion Network Library

The Pion Network Library (pion-net) is a C++ development library for
implementing lightweight HTTP interfaces.

pion-net uses the Boost and
asio libraries for multi-threading and
asynchronous I/O. Multi-threading allows the use of multiple CPUs or
processing cores to process HTTP requests simultaneously. Asynchronous
I/O allows each thread to handle many connections simultaneously
(otherwise, a single thread would be required for every connection to
the server). The combination of these technologies takes full advantage
of the most modern CPUs, and allows servers implemented using pion-net
to handle many thousands of connections simultaneously with a single
physical server.

pion-net lets you run multiple servers listening to any number of ports
and network devices. Each server may have its own collection of web
services defined which are bound to HTTP resources. Protocols other than
HTTP can also easily be implemented for any server. A common thread pool
is used to handle operations for all servers. pion-net also supports
server-side SSL & TLS encryption when built with the
OpenSSL library.

The Pion CEP Platform is open source software, published under the GNU
Affero GPL license. It is a real-time event processing engine that is
designed to be extremely extensible through the use of plugins. Plugins
can be developed to provide specialized data processing logic and web
services, and to enable support for different data encoding formats and
databases.

Bit Factory Software GmbH: "Alex der Dienstplanassistent"

a) to hide the network communication with its fine socket abstraction.

On the client in sync, on the server side in async mode.

b) in conjunction with the Boost threads library
as the backbone of the server’s task dispatching strategy:

Here multiple threads serve the client requests simultaniously

'read' requests it are processed in sync

'write' requests are dispatched(queued) to a seperate
asio::io_service, runing in its own dedicated writer thread

DB-resources are shared between different clients

The clou is: Thanks to asio, the whole
thing fits nearly on a screen page! If you need sample code, send a
mail!

Videofon MV JSC, TIP KSOT

Videofon MV is one of the biggest complex security solutions provider in
Moscow.

TIP KSOT is an integrated video security system based on unique
technology all-in-one-cable. TIP KSOT provides video observation of a
significant part of Moscow to state government. TIP KSOT network
subsystem uses boost::asio to control and receive online and archive
video from about 1000 hosts in fast, reliable and secured way.
Description in Russian is available
here

libtorrent - BitTorrent library

libtorrent is a library that implements a bittorrent client. Asio is
used as the main message loop to process, typically, up to 200 tcp
connections. It handles all connections in one thread as asynchronous
operations.

CodeShop used boost.asio for Zoep and
OpenZoep: a voip sdk built
for/together with Voipster. Note: the SSL layer in Asio was developed
during this project.

Asio works great on every thing we made!

ReSP - Reflective Simulation Platform

ReSP (http://www.resp-sim.org) is a simulation platform based on Python
and SystemC; the final aim is assisting the developer in the design of
mixed Hardware/Software embedded systems, in particular Multi-Processor
Systems-On-Chip.

The Asio libraries are used for the communication among the simulation
platform and the GDB debugger in order to allow the debugging of the
software running on the simulated processors.

JukeFly - Social Music Player

JukeFly is a social music player for your browser. You can listen to
your mp3, ogg, flac, wma, aac, itunes music from any browser. You can
also listen to playlists your friends make as well as see cover-art for
your music etc.

JukeFly uses Asio for it’s PC Server software that the user downloads
onto the computer with their music. It operates as a secured web-server
to stream the music to wherever the user is at. It’s worked really great
and saved a lot of development time not to mention the code is all
portable for future linux and OS X versions.

Wt - Web toolkit

Wt allows the choice of using FastCGI in combination with a foreign web
server, or a built-in wthttpd. This built-in httpd is based on the HTTP
server example include in asio, modified mainly to support HTTP 1.1 and
interact with Wt sessions.

We are so pleased with how it behaves that it is not only preferred
during application development, but we also use it to deploy the
high-volume Wt homepage and online examples. Since asio 0.3.9, they have
been running without a single glitch. Importantly, also in embedded
devices, asio allows us to achieve high throughput, even when only using
a single thread of execution, by serving multiple connections
simultaneously, and eliminates the requirement for separate webserver.

Dragon Intrusion Detection/Prevention System

Dragon is a Network and Host IDS and IPS, used by customers worldwide to
monitor and respond to threats on both their networks and server
machines. Administrators manage and deploy policy from a central console
to their IDS/IPS infrastructure, which in large installations can
feature dozens of Network Sensors and many hundreds of Host Sensors.
Security events, ranging from suspicious activity to data on compromise
attempts or worms, are channeled back to a central reporting point, from
where statistics and reports are produced and can be monitored. For more
information, see http://dragon.enterasys.com.

We are using Asio to underpin our enterprise middleware, which is
responsible for communication between our management point and all
(potentially hundreds) of deployed sensors. In stressful conditions,
sensors can generate large bursts of security events (scores per
second), and we are dependent on Asio for ensuring efficient and correct
communication of these events back to our management point. Our
middleware is running successfully on a number of Unix platforms,
including Solaris, AIX, HPUX and Linux. We will switch our Windows
middleware to it soon. We love Asio - thanks for the wonderful work.

Rep Invariant JAUS SDK

The Rep Invariant JAUS SDK
(RI-JAUS) is a C++ library implementing the Joint Architecture for
Unmanned Systems (JAUS) protocol for autonomous
system interoperation. Users can create robots or other autonomous
systems which are controllable via any JAUS Operator Control Unit, and
Operator Control units can be created which can operate any compliant
robot.

Asio operates our event loop, UDP network communications, and serial
communications. It enables users of RI-JAUS to integrate the library
easily with alternate event loops and infrastructures. We have been
impressed with its robustness and flexibility. So far it has been
capable of everything we needed it to do.

BigLog - Database and messaging System

A framework for capturing, storing, processing and distributing events
(that is, changing data). It leverages Boost threads and Asio’s
networking and IO service handling to provide a powerful abstraction
layer to application design. A highly modular design built around
message passing allows an event to be posted locally, or via a stub
handler, networked. A multicast stub allows for clustering of any module
for redundancy and load sharing, unicast UDP or TCP for direct
off-loading (eg. client front-end processors).

PokerTH - Texas Hold’em Poker Game

PokerTH is a portable Open Source poker game writen in C++ using boost
and Qt4. It supports offline games against computer players as well as
LAN and internet games with up to 10 players per table.

The PokerTH dedicated server is using asio for all network I/O and
timers. Several hundred players are being handled in a single thread -
this also includes avatar picture uploads. Compared to a previous
version of the server which used a multithreaded approach, CPU usage is
now less than half while response time has improved notably.

asio is also used by the PokerTH client on Windows, Linux, Mac OS and
BSD systems, and the asio I/O service supports the communication of the
GUI and engine threads.

x0 - HTTP Web Server and Framework

x0 is a (currently Linux-only) HTTP web server and web
server framework, designed with speed and scalarability in mind. This
project is divided into three parts, the core framework (which any
3rd-party can link against), the plugins (that extend the core with
custom features, like SSL, content compression, virtual hosting, CGI,
etc…​), and the x0d UNIX daemon (which uses the other both to reflect a
fully featured HTTP server).

xiva - simple HTTP server and framework

xiva (acronym for HTTP Extended EVent
Automata) is a simple HTTP server that notifies the browser about events
on the server-side. It was developed in Yandex to
work with real-time events such as updating news, weather or traffic
informers.

The stack uses a completely asynchronous design. The core library is
written in C++11 and has abstracted execution services, timers, and
physical layers called the Platform Abstraction Layer (PAL). Asio
provides opendnp3 with a very portable PAL implementation for systems
with an OS.

Dr.Web for mail servers
Unix is a unique modular solution for processing and filtering of
incoming and outgoing mail traffic under Unix-systems
(Linux/FreeBSD/Solaris(x86). Depending on the set of connected plug-ins
it can filter e-mail for viruses and spam.

The modular structure of Dr.Web for mail servers Unix allows to use this
product with any e-mail system, even if it is not found in the supported
e-mail systems' list. An experienced user can develop his own plug-in
and use Dr.Web for mail servers Unix with an e-mail system that
officially is not supported. Moreover the product can be installed prior
to the mail system %u2013 i.e. it can as well receive, send and analyze
e-mail.

QuickFAST — Open source implementation of the FAST protocol

QuickFAST is an Open Source native C++ implementation of the FAST
Protocol [SM]. FAST(Fix Adapted for STreaming) protocol was developed by
FIX Protocol Limited [FPL] (http://www.fixprotocol.org/fast/) as a way
to reduce the bandwidth and network-latency required to distribute
market data without incurring excessive CPU costs. It is being widely
adopted in the financial industry.

Low latency is a critical factor in handling market data.

FAST encoded data is usually distributed via multicast or TCP data
feeds. QuickFAST uses asio to allow a single process to accept data from
multiple feeds simultaneously and efficiently.

Swift IM - XMPP Client & Library

Swift is a user-friendly, robust, high-quality,
cross-platform and performant IM client using the XMPP
messaging protocol. It relies on Boost heavily, and more specifically on
Asio for all its networking needs. The underlying
Swiften XMPP Library is also used for various
other XMPP applications, which are more sensitive to scalability (server
components, load testers, …​), and Asio fulfills all the needs there.

Blue Gene/Q System Software

The software
managing Blue Gene/Q supercomputers relies heavily on Boost, and
particularly for Asio for scalable network architecture. Blue Gene/Q is
a multi-petaflop supercomputer with a very energy efficient design.

avhttp async http library

The avhttp is an http library based
on asio, it is extermly simple and powerful to use. It is used by avbot,
the same product produced by avplayer comunity, to perform async http
request. avhttp is the best replacement to Urdl.

DDT3 Lua remote debugger

DDT3 is a C++ 11/14-based remote Lua
debugger using asio non-Boost. The client runs on Windows, Linux and
OSX, while the daemon runs on the same platforms plus Apple iOS,
including physical devices and the iOS simulator. Thanks to Asio a
Windows client can talk directly to an iPhone daemon, without OSX
bridge.

Rippled - decentralized global payment system

Rippled is the P2P server software
used to validate transactions sent through the Ripple protocol - an
open-source, distributed payment protocol.
It enables free and instant payments with no chargebacks and in any
currency — including dollars, yen, euros, bitcoins, and even loyalty
points. Ripple enables the world to move value like information moves
today.