Tasklet-blocking sockets for use with carbon-scheduler. This module exists in order to allow for tasklet-friendly asynchronous IO with an interface as close to the standard Python socket module as possible. Tasklet-blocking behavior is supported for TCP and UDP connections only. Other socket types will exhibit the standard blocking behavior. Some functionality to support sending / receiving of machoNet packets has been added.
This project provides modified versions of the C part of the Python socket and ssl modules, as well as an unmodified version of the select module. The modules have the prefix "_carbon" in order to distinguish them from their unmodified counterparts. In order to use them with the standard socket and ssl modules, they need to be injected into sys.modules with the carbon prefix removed.
Build using provided CMakeLists in the repository root using the provided presets.
- Documentation can be built on either Windows or macOS
- Doxygen 1.12.0 (or higher) installed on build machine
Documentation is built using the following defaults:
- TeamCity build agents: ON
- Local dev build: OFF
To override the default documentation build settings, turn the CMake option BUILD_DOCUMENTATION to ON/OFF.
Building the INSTALL target will build all documentation and place it in the path specified by CMAKE_INSTALL_PREFIX.
Entry point for the documentation is documentation/index.html.
Documentation can be built using either .rst (restructuredText) or .md (markdown) files as sources.
Contribution follows the standard GIT PR model.
By submitting a pull request or otherwise contributing to this project, you agree to license your contribution under the PSF2.0 Licence, and you confirm that you have the right to do so.
Carbon.io
Copyright (c) 2001 Python Software Foundation; All Rights Reserved
Copyright (c) 2026 CCP Games
This software is a derivative work incorporating Python as modified by CCP Games.
This software provides low-level networking functionality.
Trademark Notice: CCP Games is a trademark of CCP ehf.
This project is licensed under the PSF-2.0 LICENSE. Nothing in the PSF-2.0 License grants any rights to CCP Games' trademarks or game content.