Instalando Asio
Existem duas versões principais disponíveis:
-
Asio Standalone (sem Boost) — Versão mais recente: 1.38.0 (dez/2025). Requer C++11 ou posterior. Recomendado para projetos novos que não dependem do Boost.
-
Boost.Asio — Faz parte do ecossistema Boost. Versão atual do Boost: 1.87.0 (2025). Mais comum em projetos que já usam Boost.
-
Networking-TS — Baseado no Asio/Boost.Asio, proposto para a biblioteca padrão como
std::net(ainda em discussão no ISO).
O Asio é uma biblioteca header-only — não requer compilação prévia. Basta adicionar o diretório de headers ao seu projeto.
Asio Standalone
Linux
Ubuntu/Debian:
sudo apt install libasio-dev
Arch Linux:
sudo pacman -S asio
Para compilar sem Boost:
g++ -std=c++20 client.cpp -o client -pthread -DASIO_STANDALONE
macOS
brew install asio
Windows (vcpkg)
vcpkg install asio
CMake com FetchContent (sem Boost, qualquer plataforma)
Esta é a forma recomendada para projetos CMake — garante sempre a versão correta:
cmake_minimum_required(VERSION 3.14)
project(meu_projeto)
include(FetchContent)
FetchContent_Declare(
asio
GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
GIT_TAG asio-1-38-0
SOURCE_SUBDIR asio
)
FetchContent_MakeAvailable(asio)
add_executable(meu_programa main.cpp)
target_include_directories(meu_programa PRIVATE ${asio_SOURCE_DIR}/asio/include)
target_compile_definitions(meu_programa PRIVATE ASIO_STANDALONE)
target_link_libraries(meu_programa PRIVATE pthread)
No código, use:
#include <asio.hpp> // Standalone Asio
// em vez de:
// #include <boost/asio.hpp> // Boost.Asio
Boost.Asio
Linux
Ubuntu/Debian:
sudo apt install libboost-dev
Arch Linux:
sudo pacman -S boost
Para compilar:
g++ -std=c++20 client.cpp -o client -pthread -lboost_system
BSD
OpenBSD:
pkg_add boost
Para compilar:
c++ -std=c++20 -L/usr/local/lib client.cpp -o client -lboost_system
Windows
vcpkg (recomendado):
# x64
vcpkg install boost-asio:x64-windows
# x86
vcpkg install boost-asio:x86-windows
MinGW (MSYS2):
# x86_64
pacman -S mingw-w64-x86_64-boost
# i686
pacman -S mingw-w64-i686-boost
Nota: O ambiente MSYS2 não requer
sudopara instalação de pacotes.
Conan 2.x:
conan install --requires="boost/1.87.0" --build=missing
Atenção: A sintaxe antiga
Boost/1.72.0@bincrafters/stablepertence ao Conan 1.x e ao Bintray, que encerrou em maio de 2021. Use sempre a sintaxe do Conan 2.x mostrada acima.
MSVC (linha de comando):
cl /EHsc /std:c++20 /I "C:\path\to\boost" example.cpp
Diferença entre Standalone e Boost.Asio
| Aspecto | Asio Standalone | Boost.Asio |
|---|---|---|
| Dependência | Nenhuma | Boost |
| Header principal | <asio.hpp> | <boost/asio.hpp> |
| Namespace | asio:: | boost::asio:: |
| Error codes | asio::error_code | boost::system::error_code |
| Macro necessária | ASIO_STANDALONE | — |
| Versão atual | 1.38.0 (dez/2025) | Parte do Boost 1.87.0 |
Dica: As duas versões compartilham praticamente a mesma API. Migrar entre elas é simples: basta trocar os includes, o namespace e a macro de compilação.