Welcome to Cheroot documentation!#
Cheroot is the high-performance, pure-Python HTTP server used by CherryPy.
Status#
The test suite currently relies on pytest. It’s being run via GitHub Actions CI/CD workflows.
For Enterprise#
Professional support for Cheroot is available as part of the Tidelift Subscription. The CherryPy maintainers and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools. |
Contribute Cheroot#
Want to add something to upstream? Feel free to submit a PR or file an issue if unsure. Please follow CherryPy’s common contribution guidelines. Note that PR is more likely to be accepted if it includes tests and detailed description helping maintainers to understand it better 🎉
Oh, and be pythonic, please 🐍
Don’t know how? Check out How to Contribute to Open Source article by GitHub 🚀
License#
- Development guide
- Private (dev) API autodoc
- cheroot package
- Subpackages
- cheroot.ssl package
- Submodules
- cheroot.ssl.builtin module
BuiltinSSLAdapter
BuiltinSSLAdapter.CERT_KEY_TO_ENV
BuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODE
BuiltinSSLAdapter._abc_impl
BuiltinSSLAdapter._make_env_cert_dict()
BuiltinSSLAdapter._make_env_dn_dict()
BuiltinSSLAdapter._make_env_san_dict()
BuiltinSSLAdapter.bind()
BuiltinSSLAdapter.certificate
BuiltinSSLAdapter.certificate_chain
BuiltinSSLAdapter.ciphers
BuiltinSSLAdapter.context
BuiltinSSLAdapter.get_environ()
BuiltinSSLAdapter.makefile()
BuiltinSSLAdapter.private_key
BuiltinSSLAdapter.wrap()
_assert_ssl_exc_contains()
_loopback_for_cert()
_loopback_for_cert_thread()
_parse_cert()
_sni_callback()
- cheroot.ssl.pyopenssl module
- Method One
- Method Two (shortcut)
SSLConnection
SSLConnection.accept()
SSLConnection.bind()
SSLConnection.close()
SSLConnection.connect()
SSLConnection.connect_ex()
SSLConnection.family
SSLConnection.fileno()
SSLConnection.get_app_data()
SSLConnection.get_cipher_list()
SSLConnection.get_context()
SSLConnection.get_peer_certificate()
SSLConnection.getpeername()
SSLConnection.getsockname()
SSLConnection.getsockopt()
SSLConnection.gettimeout()
SSLConnection.listen()
SSLConnection.makefile()
SSLConnection.pending()
SSLConnection.read()
SSLConnection.recv()
SSLConnection.renegotiate()
SSLConnection.send()
SSLConnection.sendall()
SSLConnection.set_accept_state()
SSLConnection.set_app_data()
SSLConnection.set_connect_state()
SSLConnection.setblocking()
SSLConnection.setsockopt()
SSLConnection.settimeout()
SSLConnection.shutdown()
SSLConnection.sock_shutdown()
SSLConnection.state_string()
SSLConnection.want_read()
SSLConnection.want_write()
SSLConnection.write()
SSLConnectionProxyMeta
SSLFileobjectMixin
SSLFileobjectStreamReader
SSLFileobjectStreamWriter
pyOpenSSLAdapter
pyOpenSSLAdapter._abc_impl
pyOpenSSLAdapter.bind()
pyOpenSSLAdapter.certificate
pyOpenSSLAdapter.certificate_chain
pyOpenSSLAdapter.ciphers
pyOpenSSLAdapter.context
pyOpenSSLAdapter.get_context()
pyOpenSSLAdapter.get_environ()
pyOpenSSLAdapter.makefile()
pyOpenSSLAdapter.private_key
pyOpenSSLAdapter.wrap()
- cheroot.ssl.builtin module
- Module contents
- Submodules
- cheroot.test package
- Submodules
- cheroot.test._pytest_plugin module
- cheroot.test.conftest module
- cheroot.test.helper module
CherootWebCase
CherootWebCase._classSetupFailed
CherootWebCase._class_cleanups
CherootWebCase.assertEqualDates()
CherootWebCase.available_servers
CherootWebCase.date_tolerance
CherootWebCase.scheme
CherootWebCase.script_name
CherootWebCase.setup_class()
CherootWebCase.start()
CherootWebCase.stop()
CherootWebCase.teardown_class()
Controller
Request
Response
- cheroot.test.test__compat module
- cheroot.test.test_cli module
- cheroot.test.test_conn module
Controller
ErrorLogMonitor
ErrorLogMonitor.ErrorLogCall
ErrorLogMonitor.ErrorLogCall._asdict()
ErrorLogMonitor.ErrorLogCall._field_defaults
ErrorLogMonitor.ErrorLogCall._fields
ErrorLogMonitor.ErrorLogCall._make()
ErrorLogMonitor.ErrorLogCall._replace()
ErrorLogMonitor.ErrorLogCall.level
ErrorLogMonitor.ErrorLogCall.msg
ErrorLogMonitor.ErrorLogCall.traceback
FaultyGetMap
FaultySelect
header_exists()
header_has_value()
raw_testing_server()
test_100_Continue()
test_598()
test_Chunked_Encoding()
test_Content_Length_in()
test_Content_Length_not_int()
test_Content_Length_out()
test_HTTP11_Timeout()
test_HTTP11_Timeout_after_request()
test_HTTP11_persistent_connections()
test_HTTP11_pipelining()
test_No_CRLF()
test_No_Message_Body()
test_broken_connection_during_http_communication_fallback()
test_broken_connection_during_tcp_fin()
test_client()
test_invalid_selected_connection()
test_kb_int_from_http_handler()
test_keepalive()
test_keepalive_conn_management()
test_readall_or_close()
test_remains_alive_post_unhandled_exception()
test_streaming_10()
test_streaming_11()
test_unhandled_exception_in_request_handler()
testing_server()
- cheroot.test.test_core module
CloseController
CloseResponse
HelloController
_get_http_response()
test_client()
test_client_with_defaults()
test_content_length_required()
test_garbage_in()
test_http_connect_request()
test_large_request()
test_malformed_header()
test_malformed_http_method()
test_malformed_request_line()
test_no_content_length()
test_normal_request()
test_parse_acceptable_uri()
test_parse_no_leading_slash_invalid()
test_parse_uri_absolute_uri()
test_parse_uri_asterisk_uri()
test_parse_uri_fragment_uri()
test_parse_uri_invalid_uri()
test_parse_uri_unsafe_uri()
test_query_string_request()
test_request_line_split_issue_1220()
test_send_header_before_closing()
testing_server()
testing_server_close()
testing_server_with_defaults()
- cheroot.test.test_dispatch module
- cheroot.test.test_errors module
- cheroot.test.test_makefile module
- cheroot.test.test_server module
_TestGateway
_garbage_bin()
many_open_sockets()
peercreds_enabled_server()
resource_limit()
test_bind_addr_inet()
test_bind_addr_unix()
test_bind_addr_unix_abstract()
test_high_number_of_file_descriptors()
test_peercreds_unix_sock()
test_peercreds_unix_sock_with_lookup()
test_prepare_makes_server_ready()
test_reuse_port()
test_server_interrupt()
test_serving_is_false_and_stop_returns_after_ctrlc()
test_stop_interrupts_serve()
test_threadpool_invalid_threadrange()
test_threadpool_multistart_validation()
test_threadpool_threadrange_set()
unix_abstract_sock()
unix_file_sock()
unix_sock_file()
- cheroot.test.test_ssl module
HelloWorldGateway
_thread_except_hook()
ca()
make_tls_http_server()
test_http_over_https_error()
test_https_over_http_error()
test_ssl_adapters()
test_ssl_env()
test_tls_client_auth()
thread_exceptions()
tls_ca_certificate_pem_path()
tls_certificate()
tls_certificate_chain_pem_path()
tls_certificate_private_key_pem_path()
tls_http_server()
- cheroot.test.test_wsgi module
- cheroot.test.webtest module
- Framework Integration
NonDataProperty
ServerError
WebCase
WebCase.HOST
WebCase.HTTP_CONN
WebCase.PORT
WebCase.PROTOCOL
WebCase._Conn
WebCase._classSetupFailed
WebCase._class_cleanups
WebCase._handlewebError()
WebCase.assertBody()
WebCase.assertHeader()
WebCase.assertHeaderIn()
WebCase.assertHeaderItemValue()
WebCase.assertInBody()
WebCase.assertMatchesBody()
WebCase.assertNoHeader()
WebCase.assertNoHeaderItemValue()
WebCase.assertNotInBody()
WebCase.assertStatus()
WebCase.body
WebCase.console_height
WebCase.encoding
WebCase.getPage()
WebCase.get_conn()
WebCase.headers
WebCase.interactive
WebCase.interface()
WebCase.persistent
WebCase.scheme
WebCase.set_persistent()
WebCase.ssl_context
WebCase.status
WebCase.status_code
WebCase.status_matches()
WebCase.time
WebCase.url
_open_url_once()
cleanHeaders()
getchar()
interface()
openURL()
server_error()
shb()
strip_netloc()
- Module contents
- Submodules
- cheroot.workers package
- cheroot.ssl package
- Submodules
- cheroot.__main__ module
- cheroot._compat module
- cheroot.cli module
- cheroot.connections module
ConnectionManager
ConnectionManager._expire()
ConnectionManager._from_server_socket()
ConnectionManager._num_connections
ConnectionManager._remove_invalid_sockets()
ConnectionManager._run()
ConnectionManager.can_add_keepalive_connection
ConnectionManager.close()
ConnectionManager.put()
ConnectionManager.run()
ConnectionManager.stop()
_ThreadsafeSelector
prevent_socket_inheritance()
- cheroot.errors module
- cheroot.makefile module
- cheroot.server module
ChunkedRFile
DropUnderscoreHeaderReader
Gateway
HTTPConnection
HTTPConnection.RequestHandlerClass
HTTPConnection._close_kernel_socket()
HTTPConnection._conditional_error()
HTTPConnection._handle_no_ssl()
HTTPConnection.close()
HTTPConnection.communicate()
HTTPConnection.get_peer_creds()
HTTPConnection.last_used
HTTPConnection.linger
HTTPConnection.peer_gid
HTTPConnection.peer_group
HTTPConnection.peer_pid
HTTPConnection.peer_uid
HTTPConnection.peer_user
HTTPConnection.peercreds_enabled
HTTPConnection.peercreds_resolve_enabled
HTTPConnection.rbufsize
HTTPConnection.remote_addr
HTTPConnection.remote_port
HTTPConnection.resolve_peer_creds()
HTTPConnection.ssl_env
HTTPConnection.wbufsize
HTTPRequest
HTTPRequest.chunked_write
HTTPRequest.close_connection
HTTPRequest.conn
HTTPRequest.ensure_headers_sent()
HTTPRequest.header_reader
HTTPRequest.inheaders
HTTPRequest.outheaders
HTTPRequest.parse_request()
HTTPRequest.read_request_headers()
HTTPRequest.read_request_line()
HTTPRequest.ready
HTTPRequest.respond()
HTTPRequest.send_headers()
HTTPRequest.server
HTTPRequest.simple_response()
HTTPRequest.write()
HTTPServer
HTTPServer.ConnectionClass
HTTPServer._bind_addr
HTTPServer._interrupt
HTTPServer._make_socket_reusable()
HTTPServer._run_in_thread()
HTTPServer._stopping_for_interrupt
HTTPServer.bind()
HTTPServer.bind_addr
HTTPServer.bind_socket()
HTTPServer.bind_unix_socket()
HTTPServer.can_add_keepalive_connection
HTTPServer.clear_stats()
HTTPServer.error_log()
HTTPServer.expiration_interval
HTTPServer.gateway
HTTPServer.interrupt
HTTPServer.keep_alive_conn_limit
HTTPServer.max_request_body_size
HTTPServer.max_request_header_size
HTTPServer.maxthreads
HTTPServer.minthreads
HTTPServer.nodelay
HTTPServer.peercreds_enabled
HTTPServer.peercreds_resolve_enabled
HTTPServer.prepare()
HTTPServer.prepare_socket()
HTTPServer.process_conn()
HTTPServer.protocol
HTTPServer.put_conn()
HTTPServer.ready
HTTPServer.request_queue_size
HTTPServer.resolve_real_bind_addr()
HTTPServer.reuse_port
HTTPServer.runtime()
HTTPServer.safe_start()
HTTPServer.serve()
HTTPServer.server_name
HTTPServer.shutdown_timeout
HTTPServer.software
HTTPServer.ssl_adapter
HTTPServer.start()
HTTPServer.stop()
HTTPServer.timeout
HTTPServer.version
HeaderReader
KnownLengthRFile
SizeCheckWrapper
get_ssl_adapter_class()
- cheroot.testing module
- cheroot.wsgi module
- Module contents
- Subpackages
- cheroot package
Cheroot is the high-performance, pure-Python HTTP server used by CherryPy.