Skip to content

cppalliance/socks

Repository files navigation

Boost.Socks

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.

This is currently NOT an official Boost library.

Build Status

Branch GH Actions Drone Appveyor codecov.io Docs
master CI Build Status Build status codecov Documentation
develop CI Build Status Build status codecov Documentation

Properties

Boost.Socks offers these features:

  • Require only C++11
  • Works without exceptions
  • Fast compilation, no templates
  • Strict compliance with rfc1928

Requirements

  • 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

Header-Only

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>

Embedded

Boost.Socks works great on embedded devices. It is designed to work without exceptions if desired.

Supported Compilers

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

Quality Assurance

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

License

Distributed under the Boost Software License, Version 1.0.

More information

  • 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.