SOCKS parsing and serialization algorithms using C++11
Boost.Socks is a portable, low-level C++ library which provides containers and algorithms for implementing the SOCKS protocol described in the document RFC1928: SOCKS Protocol Version 5, and extensions described in RFC1929, RFC1961, and RFC3089.
Branch | GH Actions | Drone | Appveyor | codecov.io | Docs |
---|---|---|---|---|---|
master |
|||||
develop |
Boost.Socks offers these features:
- Require only C++11
- Works without exceptions
- Fast compilation, no templates
- Strict compliance with rfc1928
- Requires Boost and a compiler supporting at least C++11
- Aliases for standard types use their Boost equivalents
- Link to a built static or dynamic Boost library, or use header-only (see below)
- Supports -fno-exceptions, detected automatically
To use the library as header-only; that is, to eliminate the requirement to link a program to a static or dynamic Boost.Socks library, simply place the following line in exactly one new or existing source file in your project.
#include <boost/socks/src.hpp>
Boost.Socks works great on embedded devices. It is designed to work without exceptions if desired.
Boost.Socks has been tested with the following compilers:
- clang: 3.8, 4, 5, 6, 7, 8, 9, 10, 11, 12
- gcc: 4.8, 4.9, 5, 6, 7, 8, 9, 10, 11
- msvc: 14.0, 14.1, 14.2, 14.3
The development infrastructure for the library includes these per-commit analyses:
- Coverage reports
- Benchmark performance comparisons
- Compilation and tests on Drone.io, Azure Pipelines, Appveyor
- Fuzzing using clang-llvm and machine learning
Distributed under the Boost Software License, Version 1.0.
- Report bugs: Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
- Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
- Discussions about the library are held on
the Boost developers mailing list. Be sure to read
the discussion policy before posting and add the
[template]
tag at the beginning of the subject line.