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#
Contributing
Maintenance
Reference
- Development guide
- Private (dev) API autodoc
- cheroot package
- Subpackages
- cheroot.ssl package
- Submodules
- cheroot.ssl.builtin module
BuiltinSSLAdapterBuiltinSSLAdapter.CERT_KEY_TO_ENVBuiltinSSLAdapter.CERT_KEY_TO_LDAP_CODEBuiltinSSLAdapter._abc_implBuiltinSSLAdapter._make_env_cert_dict()BuiltinSSLAdapter._make_env_dn_dict()BuiltinSSLAdapter._make_env_san_dict()BuiltinSSLAdapter.bind()BuiltinSSLAdapter.certificateBuiltinSSLAdapter.certificate_chainBuiltinSSLAdapter.ciphersBuiltinSSLAdapter.contextBuiltinSSLAdapter.get_environ()BuiltinSSLAdapter.makefile()BuiltinSSLAdapter.private_keyBuiltinSSLAdapter.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)
SSLConnectionSSLConnection.accept()SSLConnection.bind()SSLConnection.close()SSLConnection.connect()SSLConnection.connect_ex()SSLConnection.familySSLConnection.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()
SSLConnectionProxyMetaSSLFileobjectMixinSSLFileobjectStreamReaderSSLFileobjectStreamWriter_morph_syscall_to_connection_error()pyOpenSSLAdapterpyOpenSSLAdapter._abc_implpyOpenSSLAdapter.bind()pyOpenSSLAdapter.certificatepyOpenSSLAdapter.certificate_chainpyOpenSSLAdapter.cipherspyOpenSSLAdapter.contextpyOpenSSLAdapter.get_context()pyOpenSSLAdapter.get_environ()pyOpenSSLAdapter.makefile()pyOpenSSLAdapter.private_keypyOpenSSLAdapter.wrap()
- cheroot.ssl.builtin module
- Module contents
- Submodules
- cheroot.test package
- Subpackages
- Submodules
- cheroot.test._pytest_plugin module
- cheroot.test.conftest module
- cheroot.test.helper module
CherootWebCaseCherootWebCase._classSetupFailedCherootWebCase._class_cleanupsCherootWebCase.assertEqualDates()CherootWebCase.available_serversCherootWebCase.date_toleranceCherootWebCase.schemeCherootWebCase.script_nameCherootWebCase.setup_class()CherootWebCase.start()CherootWebCase.stop()CherootWebCase.teardown_class()
ControllerRequestResponse
- cheroot.test.test__compat module
- cheroot.test.test_cli module
- cheroot.test.test_conn module
ControllerErrorLogMonitorErrorLogMonitor.ErrorLogCallErrorLogMonitor.ErrorLogCall._asdict()ErrorLogMonitor.ErrorLogCall._field_defaultsErrorLogMonitor.ErrorLogCall._fieldsErrorLogMonitor.ErrorLogCall._make()ErrorLogMonitor.ErrorLogCall._replace()ErrorLogMonitor.ErrorLogCall.levelErrorLogMonitor.ErrorLogCall.msgErrorLogMonitor.ErrorLogCall.traceback
FaultyGetMapFaultySelectWSGICallablesWSGICallables._munge()WSGICallables.custom_204()WSGICallables.custom_304()WSGICallables.err_before_read()WSGICallables.hello()WSGICallables.one_megabyte_of_a()WSGICallables.pov()WSGICallables.stream()WSGICallables.upload()WSGICallables.wrong_cl_buffered()WSGICallables.wrong_cl_unbuffered()
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
CloseControllerCloseResponseHelloControllerWSGICallables_get_http_response()_munge()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_overload_results_in_suitable_http_error()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
NonDataPropertyServerErrorWebCaseWebCase.HOSTWebCase.HTTP_CONNWebCase.PORTWebCase.PROTOCOLWebCase._ConnWebCase._classSetupFailedWebCase._class_cleanupsWebCase._handlewebError()WebCase.assertBody()WebCase.assertHeader()WebCase.assertHeaderIn()WebCase.assertHeaderItemValue()WebCase.assertInBody()WebCase.assertMatchesBody()WebCase.assertNoHeader()WebCase.assertNoHeaderItemValue()WebCase.assertNotInBody()WebCase.assertStatus()WebCase.bodyWebCase.console_heightWebCase.encodingWebCase.getPage()WebCase.get_conn()WebCase.headersWebCase.interactiveWebCase.interface()WebCase.persistentWebCase.schemeWebCase.set_persistent()WebCase.ssl_contextWebCase.statusWebCase.status_codeWebCase.status_matches()WebCase.timeWebCase.url
_open_url_once()cleanHeaders()getchar()interface()openURL()server_error()shb()strip_netloc()
- Module contents
- cheroot.workers package
- cheroot.ssl package
- Submodules
- cheroot.__main__ module
- cheroot._compat module
- cheroot.cli module
- cheroot.connections module
ConnectionManagerConnectionManager._expire()ConnectionManager._from_server_socket()ConnectionManager._num_connectionsConnectionManager._remove_invalid_sockets()ConnectionManager._run()ConnectionManager.can_add_keepalive_connectionConnectionManager.close()ConnectionManager.put()ConnectionManager.run()ConnectionManager.stop()
_ThreadsafeSelectorprevent_socket_inheritance()
- cheroot.errors module
- cheroot.makefile module
- cheroot.server module
ChunkedRFileDropUnderscoreHeaderReaderGatewayHTTPConnectionHTTPConnection.RequestHandlerClassHTTPConnection._close_kernel_socket()HTTPConnection._conditional_error()HTTPConnection._handle_no_ssl()HTTPConnection.close()HTTPConnection.communicate()HTTPConnection.get_peer_creds()HTTPConnection.last_usedHTTPConnection.lingerHTTPConnection.peer_gidHTTPConnection.peer_groupHTTPConnection.peer_pidHTTPConnection.peer_uidHTTPConnection.peer_userHTTPConnection.peercreds_enabledHTTPConnection.peercreds_resolve_enabledHTTPConnection.rbufsizeHTTPConnection.remote_addrHTTPConnection.remote_portHTTPConnection.resolve_peer_creds()HTTPConnection.ssl_envHTTPConnection.wbufsize
HTTPRequestHTTPRequest.chunked_writeHTTPRequest.close_connectionHTTPRequest.connHTTPRequest.ensure_headers_sent()HTTPRequest.header_readerHTTPRequest.inheadersHTTPRequest.outheadersHTTPRequest.parse_request()HTTPRequest.read_request_headers()HTTPRequest.read_request_line()HTTPRequest.readyHTTPRequest.respond()HTTPRequest.send_headers()HTTPRequest.serverHTTPRequest.simple_response()HTTPRequest.write()
HTTPServerHTTPServer.ConnectionClassHTTPServer._bind_addrHTTPServer._interruptHTTPServer._make_socket_reusable()HTTPServer._run_in_thread()HTTPServer._serve_unservicable()HTTPServer._stopping_for_interruptHTTPServer.bind()HTTPServer.bind_addrHTTPServer.bind_socket()HTTPServer.bind_unix_socket()HTTPServer.can_add_keepalive_connectionHTTPServer.clear_stats()HTTPServer.error_log()HTTPServer.expiration_intervalHTTPServer.gatewayHTTPServer.interruptHTTPServer.keep_alive_conn_limitHTTPServer.max_request_body_sizeHTTPServer.max_request_header_sizeHTTPServer.maxthreadsHTTPServer.minthreadsHTTPServer.nodelayHTTPServer.peercreds_enabledHTTPServer.peercreds_resolve_enabledHTTPServer.prepare()HTTPServer.prepare_socket()HTTPServer.process_conn()HTTPServer.protocolHTTPServer.put_conn()HTTPServer.readyHTTPServer.request_queue_sizeHTTPServer.resolve_real_bind_addr()HTTPServer.reuse_portHTTPServer.runtime()HTTPServer.safe_start()HTTPServer.serve()HTTPServer.server_nameHTTPServer.shutdown_timeoutHTTPServer.softwareHTTPServer.ssl_adapterHTTPServer.start()HTTPServer.stop()HTTPServer.timeoutHTTPServer.version
HeaderReaderKnownLengthRFileSizeCheckWrapperget_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.
