django-bolt 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of django-bolt might be problematic. Click here for more details.
- {django_bolt-0.1.0 → django_bolt-0.1.1}/.github/workflows/CI.yml +1 -1
- django_bolt-0.1.1/BENCHMARK_BASELINE.md +203 -0
- django_bolt-0.1.1/BENCHMARK_DEV.md +203 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/CLAUDE.md +227 -17
- {django_bolt-0.1.0 → django_bolt-0.1.1}/Cargo.lock +1 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/Cargo.toml +1 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/Makefile +5 -5
- {django_bolt-0.1.0 → django_bolt-0.1.1}/PKG-INFO +178 -196
- {django_bolt-0.1.0 → django_bolt-0.1.1}/README.md +178 -195
- {django_bolt-0.1.0 → django_bolt-0.1.1}/TODO.md +6 -2
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/ASYNC_DJANGO.md +50 -37
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/CLASS_BASED_VIEWS.md +1223 -1
- django_bolt-0.1.1/docs/DEPENDENCY_INJECTION.md +1300 -0
- django_bolt-0.1.1/docs/GETTING_STARTED.md +1459 -0
- django_bolt-0.1.1/docs/LOGGING.md +1168 -0
- django_bolt-0.1.1/docs/MIDDLEWARE.md +465 -0
- django_bolt-0.1.1/docs/OPENAPI.md +1232 -0
- django_bolt-0.1.1/docs/OPENAPI_METADATA_IMPLEMENTATION.md +236 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/PAGINATION.md +25 -11
- django_bolt-0.1.1/docs/README.md +468 -0
- django_bolt-0.1.1/docs/RESPONSES.md +1065 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/SECURITY.md +192 -24
- django_bolt-0.1.1/docs/SERIALIZATION.md +1266 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/TESTING_UTILITIES.md +6 -6
- {django_bolt-0.1.0 → django_bolt-0.1.1}/pyproject.toml +1 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/pytest.ini +1 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/__init__.py +2 -2
- django_bolt-0.1.1/python/django_bolt/_json.py +169 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/static_routes.py +15 -21
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/api.py +181 -61
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/__init__.py +2 -2
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/decorators.py +15 -3
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/dependencies.py +30 -24
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/error_handlers.py +2 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/plugins.py +3 -2
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/schema_generator.py +65 -20
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/pagination.py +2 -1
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/responses.py +3 -2
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/serialization.py +5 -4
- django_bolt-0.1.1/python/example/test_data/100B +1 -0
- django_bolt-0.1.1/python/example/test_data/100B.txt +2 -0
- django_bolt-0.1.1/python/example/test_data/100K +0 -0
- django_bolt-0.1.1/python/example/test_data/100K.json +3146 -0
- django_bolt-0.1.1/python/example/test_data/100K.txt +1299 -0
- django_bolt-0.1.1/python/example/test_data/10K +0 -0
- django_bolt-0.1.1/python/example/test_data/10K.json +298 -0
- django_bolt-0.1.1/python/example/test_data/10K.txt +130 -0
- django_bolt-0.1.1/python/example/test_data/1K +0 -0
- django_bolt-0.1.1/python/example/test_data/1K.json +30 -0
- django_bolt-0.1.1/python/example/test_data/1K.txt +13 -0
- django_bolt-0.1.1/python/example/test_data/1M +0 -0
- django_bolt-0.1.1/python/example/test_data/1M.json +32138 -0
- django_bolt-0.1.1/python/example/test_data/1M.txt +12988 -0
- django_bolt-0.1.1/python/example/test_data/500K +0 -0
- django_bolt-0.1.1/python/example/test_data/500K.json +15466 -0
- django_bolt-0.1.1/python/example/test_data/500K.txt +6494 -0
- django_bolt-0.1.1/python/example/test_data/5M +0 -0
- django_bolt-0.1.1/python/example/test_data/5M.json +150398 -0
- django_bolt-0.1.1/python/example/test_data/5M.txt +64936 -0
- django_bolt-0.1.1/python/example/test_data/FILE_UPLOAD_1K +0 -0
- django_bolt-0.1.1/python/example/test_data/FILE_UPLOAD_1K_HEADERS.json +1 -0
- django_bolt-0.1.1/python/example/test_data/FORM_URLENCODED_1K +1 -0
- django_bolt-0.1.1/python/example/test_data/FORM_URLENCODED_1K_HEADERS.json +1 -0
- django_bolt-0.1.1/python/example/test_data/MULTIPART_1K +82 -0
- django_bolt-0.1.1/python/example/test_data/MULTIPART_1K_HEADERS.json +1 -0
- django_bolt-0.1.1/python/example/test_data/__init__.py +51 -0
- django_bolt-0.1.1/python/example/test_data/objects.py +56 -0
- django_bolt-0.1.1/python/example/test_data/persons_100.json +1 -0
- django_bolt-0.1.1/python/example/test_data/persons_50.json +1 -0
- django_bolt-0.1.1/python/example/test_data/persons_500.json +1 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/api.py +13 -6
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/urls.py +2 -1
- django_bolt-0.1.1/python/example/testproject/views.py +5 -0
- django_bolt-0.1.1/python/tests/cbv/__init__.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/cbv/test_class_views_features.py +0 -48
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/conftest.py +2 -2
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_integration_validation.py +17 -17
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_jwt_auth.py +6 -6
- django_bolt-0.1.1/python/tests/test_openapi_docs.py +102 -0
- django_bolt-0.1.1/python/tests/test_openapi_metadata.py +326 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_pagination.py +1 -1
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_parameter_validation.py +14 -14
- {django_bolt-0.1.0 → django_bolt-0.1.1}/scripts/benchmark.sh +35 -31
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/handler.rs +362 -54
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/lib.rs +3 -3
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/metadata.rs +165 -1
- django_bolt-0.1.1/src/middleware/mod.rs +2 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/middleware/rate_limit.rs +7 -19
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/server.rs +2 -10
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/state.rs +2 -3
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/streaming.rs +10 -14
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/test_state.rs +109 -63
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/testing.rs +2 -6
- django_bolt-0.1.1/uv.lock +1449 -0
- django_bolt-0.1.0/BENCHMARKS.md +0 -79
- django_bolt-0.1.0/BENCHMARK_BASELINE.md +0 -196
- django_bolt-0.1.0/BENCHMARK_DEV.md +0 -196
- django_bolt-0.1.0/BOLT.md +0 -173
- django_bolt-0.1.0/Fast.md +0 -166
- django_bolt-0.1.0/PLATFORM_SUPPORT.md +0 -134
- django_bolt-0.1.0/docs/LOGGING.md +0 -103
- django_bolt-0.1.0/docs/MIDDLEWARE.md +0 -128
- django_bolt-0.1.0/python/django_bolt/auth/README.md +0 -464
- django_bolt-0.1.0/python/django_bolt/auth/REVOCATION_EXAMPLE.md +0 -391
- django_bolt-0.1.0/python/examples/testproject/README.md +0 -102
- django_bolt-0.1.0/src/middleware/cors.rs +0 -180
- django_bolt-0.1.0/src/middleware/mod.rs +0 -94
- django_bolt-0.1.0/uv.lock +0 -1190
- {django_bolt-0.1.0 → django_bolt-0.1.1}/.gitignore +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/.python-version +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/.vscode/settings.json +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/ANNOTATION_GUIDE.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/COMPRESSION.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/DJANGO_ADMIN.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/EXCEPTIONS.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/GIL_OPTIMIZATION.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/OPENAPI_ERROR_RESPONSES.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/PUBLISHING.md +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/favicon.png +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/icon.png +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/docs/logo.png +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/admin_detection.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/asgi_bridge.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/routes.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/admin/static.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/apps.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/async_collector.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/backends.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/guards.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/jwt_utils.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/revocation.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/auth/token.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/binding.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/bootstrap.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/cli.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/compression.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/exceptions.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/health.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/logging/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/logging/config.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/logging/middleware.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/management/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/management/commands/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/management/commands/runbolt.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/middleware/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/middleware/compiler.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/middleware/middleware.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/config.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/routes.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/base.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/callback.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/components.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/contact.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/discriminator.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/encoding.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/enums.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/example.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/external_documentation.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/header.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/info.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/license.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/link.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/media_type.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/oauth_flow.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/oauth_flows.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/open_api.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/operation.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/parameter.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/path_item.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/paths.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/reference.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/request_body.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/response.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/responses.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/schema.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/security_requirement.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/security_scheme.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/server.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/server_variable.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/tag.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/openapi/spec/xml.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/param_functions.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/params.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/request_parsing.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/router.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/status_codes.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/testing/__init__.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/testing/client.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/testing/helpers.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/typing.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/python/django_bolt/views.py +0 -0
- /django_bolt-0.1.0/python/django_bolt/tests/__init__.py → /django_bolt-0.1.1/python/example/README.md +0 -0
- {django_bolt-0.1.0/python/django_bolt/tests/cbv → django_bolt-0.1.1/python/example/bench}/__init__.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/admin.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/api.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/apps.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/migrations/0001_initial.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject/bench → django_bolt-0.1.1/python/example/bench/migrations}/__init__.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/models.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/tests.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/bench/views.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/manage.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject/bench/migrations → django_bolt-0.1.1/python/example/testproject}/__init__.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/asgi.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/settings.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/test_api.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/testproject/wsgi.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject/testproject → django_bolt-0.1.1/python/example/users}/__init__.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/admin.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/api.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/apps.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/migrations/0001_initial.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject/users → django_bolt-0.1.1/python/example/users/migrations}/__init__.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/models.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/tests.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject → django_bolt-0.1.1/python/example}/users/views.py +0 -0
- {django_bolt-0.1.0/python/examples/testproject/users/migrations → django_bolt-0.1.1/python/tests}/__init__.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/admin_tests/__init__.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/admin_tests/conftest.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/admin_tests/test_admin_with_django.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/admin_tests/urls.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/cbv/test_class_views.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/cbv/test_class_views_django_orm.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/cbv/test_class_views_with_client.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_action_decorator.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_auth_secret_key.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_decorator_syntax.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_error_handling.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_file_response.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_global_cors.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_guards_auth.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_guards_integration.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_health.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_json_validation.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_jwt_token.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_logging.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_logging_merge.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_middleware.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_middleware_server.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_model_viewset.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_models.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_syntax.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_testing_utilities.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_testing_utilities_simple.py +0 -0
- {django_bolt-0.1.0/python/django_bolt → django_bolt-0.1.1/python}/tests/test_viewset_unified.py +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/scripts/install_hey.sh +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/direct_stream.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/error.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/json.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/middleware/auth.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/permissions.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/request.rs +0 -0
- {django_bolt-0.1.0 → django_bolt-0.1.1}/src/router.rs +0 -0
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
run: uv run maturin develop --release
|
|
44
44
|
|
|
45
45
|
- name: Run tests
|
|
46
|
-
run: uv run --with pytest pytest python/
|
|
46
|
+
run: uv run --with pytest pytest python/tests -s -vv
|
|
47
47
|
|
|
48
48
|
# Build wheels for Linux x86_64 (covers most Linux users including Arch)
|
|
49
49
|
linux:
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Django-Bolt Benchmark
|
|
2
|
+
Generated: Wed Oct 22 11:49:31 PM PKT 2025
|
|
3
|
+
Config: 8 processes × 1 workers | C=100 N=10000
|
|
4
|
+
|
|
5
|
+
## Root Endpoint Performance
|
|
6
|
+
Failed requests: 0
|
|
7
|
+
Requests per second: 75788.01 [#/sec] (mean)
|
|
8
|
+
Time per request: 1.319 [ms] (mean)
|
|
9
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
10
|
+
|
|
11
|
+
## 10kb JSON Response Performance
|
|
12
|
+
### 10kb JSON (/10k-json)
|
|
13
|
+
Failed requests: 0
|
|
14
|
+
Requests per second: 62156.20 [#/sec] (mean)
|
|
15
|
+
Time per request: 1.609 [ms] (mean)
|
|
16
|
+
Time per request: 0.016 [ms] (mean, across all concurrent requests)
|
|
17
|
+
|
|
18
|
+
## Response Type Endpoints
|
|
19
|
+
### Header Endpoint (/header)
|
|
20
|
+
Failed requests: 0
|
|
21
|
+
Requests per second: 73022.55 [#/sec] (mean)
|
|
22
|
+
Time per request: 1.369 [ms] (mean)
|
|
23
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
24
|
+
### Cookie Endpoint (/cookie)
|
|
25
|
+
Failed requests: 0
|
|
26
|
+
Requests per second: 71119.20 [#/sec] (mean)
|
|
27
|
+
Time per request: 1.406 [ms] (mean)
|
|
28
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
29
|
+
### Exception Endpoint (/exc)
|
|
30
|
+
Failed requests: 0
|
|
31
|
+
Requests per second: 69398.18 [#/sec] (mean)
|
|
32
|
+
Time per request: 1.441 [ms] (mean)
|
|
33
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
34
|
+
### HTML Response (/html)
|
|
35
|
+
Failed requests: 0
|
|
36
|
+
Requests per second: 75268.33 [#/sec] (mean)
|
|
37
|
+
Time per request: 1.329 [ms] (mean)
|
|
38
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
39
|
+
### Redirect Response (/redirect)
|
|
40
|
+
Failed requests: 0
|
|
41
|
+
Requests per second: 81905.45 [#/sec] (mean)
|
|
42
|
+
Time per request: 1.221 [ms] (mean)
|
|
43
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
44
|
+
### File Static via FileResponse (/file-static)
|
|
45
|
+
Failed requests: 0
|
|
46
|
+
Requests per second: 22422.03 [#/sec] (mean)
|
|
47
|
+
Time per request: 4.460 [ms] (mean)
|
|
48
|
+
Time per request: 0.045 [ms] (mean, across all concurrent requests)
|
|
49
|
+
|
|
50
|
+
## Streaming and SSE Performance
|
|
51
|
+
### Streaming Plain Text (/stream)
|
|
52
|
+
Total: 0.2433 secs
|
|
53
|
+
Slowest: 0.0146 secs
|
|
54
|
+
Fastest: 0.0002 secs
|
|
55
|
+
Average: 0.0023 secs
|
|
56
|
+
Requests/sec: 41097.7240
|
|
57
|
+
Status code distribution:
|
|
58
|
+
### Server-Sent Events (/sse)
|
|
59
|
+
Total: 0.2444 secs
|
|
60
|
+
Slowest: 0.0121 secs
|
|
61
|
+
Fastest: 0.0002 secs
|
|
62
|
+
Average: 0.0023 secs
|
|
63
|
+
Requests/sec: 40918.9412
|
|
64
|
+
Status code distribution:
|
|
65
|
+
### Server-Sent Events (async) (/sse-async)
|
|
66
|
+
Total: 0.4208 secs
|
|
67
|
+
Slowest: 0.0164 secs
|
|
68
|
+
Fastest: 0.0003 secs
|
|
69
|
+
Average: 0.0040 secs
|
|
70
|
+
Requests/sec: 23766.0131
|
|
71
|
+
Status code distribution:
|
|
72
|
+
### OpenAI Chat Completions (stream) (/v1/chat/completions)
|
|
73
|
+
Total: 0.7807 secs
|
|
74
|
+
Slowest: 0.0328 secs
|
|
75
|
+
Fastest: 0.0005 secs
|
|
76
|
+
Average: 0.0068 secs
|
|
77
|
+
Requests/sec: 12808.5086
|
|
78
|
+
Status code distribution:
|
|
79
|
+
### OpenAI Chat Completions (async stream) (/v1/chat/completions-async)
|
|
80
|
+
Total: 1.0009 secs
|
|
81
|
+
Slowest: 0.0465 secs
|
|
82
|
+
Fastest: 0.0005 secs
|
|
83
|
+
Average: 0.0094 secs
|
|
84
|
+
Requests/sec: 9990.9942
|
|
85
|
+
Status code distribution:
|
|
86
|
+
|
|
87
|
+
## Items GET Performance (/items/1?q=hello)
|
|
88
|
+
Failed requests: 0
|
|
89
|
+
Requests per second: 69759.33 [#/sec] (mean)
|
|
90
|
+
Time per request: 1.433 [ms] (mean)
|
|
91
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
92
|
+
|
|
93
|
+
## Items PUT JSON Performance (/items/1)
|
|
94
|
+
Failed requests: 0
|
|
95
|
+
Requests per second: 65544.54 [#/sec] (mean)
|
|
96
|
+
Time per request: 1.526 [ms] (mean)
|
|
97
|
+
Time per request: 0.015 [ms] (mean, across all concurrent requests)
|
|
98
|
+
|
|
99
|
+
## ORM Performance
|
|
100
|
+
### Users Full10 (/users/full10)
|
|
101
|
+
Failed requests: 0
|
|
102
|
+
Requests per second: 12058.51 [#/sec] (mean)
|
|
103
|
+
Time per request: 8.293 [ms] (mean)
|
|
104
|
+
Time per request: 0.083 [ms] (mean, across all concurrent requests)
|
|
105
|
+
### Users Mini10 (/users/mini10)
|
|
106
|
+
Failed requests: 0
|
|
107
|
+
Requests per second: 13532.07 [#/sec] (mean)
|
|
108
|
+
Time per request: 7.390 [ms] (mean)
|
|
109
|
+
Time per request: 0.074 [ms] (mean, across all concurrent requests)
|
|
110
|
+
|
|
111
|
+
## Class-Based Views (CBV) Performance
|
|
112
|
+
### Simple APIView GET (/cbv-simple)
|
|
113
|
+
Failed requests: 0
|
|
114
|
+
Requests per second: 74997.94 [#/sec] (mean)
|
|
115
|
+
Time per request: 1.333 [ms] (mean)
|
|
116
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
117
|
+
### Simple APIView POST (/cbv-simple)
|
|
118
|
+
Failed requests: 0
|
|
119
|
+
Requests per second: 65872.68 [#/sec] (mean)
|
|
120
|
+
Time per request: 1.518 [ms] (mean)
|
|
121
|
+
Time per request: 0.015 [ms] (mean, across all concurrent requests)
|
|
122
|
+
### Items100 ViewSet GET (/cbv-items100)
|
|
123
|
+
Failed requests: 0
|
|
124
|
+
Requests per second: 52685.93 [#/sec] (mean)
|
|
125
|
+
Time per request: 1.898 [ms] (mean)
|
|
126
|
+
Time per request: 0.019 [ms] (mean, across all concurrent requests)
|
|
127
|
+
|
|
128
|
+
## CBV Items - Basic Operations
|
|
129
|
+
### CBV Items GET (Retrieve) (/cbv-items/1)
|
|
130
|
+
Failed requests: 0
|
|
131
|
+
Requests per second: 68210.50 [#/sec] (mean)
|
|
132
|
+
Time per request: 1.466 [ms] (mean)
|
|
133
|
+
Time per request: 0.015 [ms] (mean, across all concurrent requests)
|
|
134
|
+
### CBV Items PUT (Update) (/cbv-items/1)
|
|
135
|
+
Failed requests: 0
|
|
136
|
+
Requests per second: 66305.52 [#/sec] (mean)
|
|
137
|
+
Time per request: 1.508 [ms] (mean)
|
|
138
|
+
Time per request: 0.015 [ms] (mean, across all concurrent requests)
|
|
139
|
+
|
|
140
|
+
## CBV Additional Benchmarks
|
|
141
|
+
### CBV Bench Parse (POST /cbv-bench-parse)
|
|
142
|
+
Failed requests: 0
|
|
143
|
+
Requests per second: 70979.88 [#/sec] (mean)
|
|
144
|
+
Time per request: 1.409 [ms] (mean)
|
|
145
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
146
|
+
### CBV Response Types (/cbv-response)
|
|
147
|
+
Failed requests: 0
|
|
148
|
+
Requests per second: 75799.50 [#/sec] (mean)
|
|
149
|
+
Time per request: 1.319 [ms] (mean)
|
|
150
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
151
|
+
### CBV Streaming Plain Text (/cbv-stream)
|
|
152
|
+
Total: 0.5386 secs
|
|
153
|
+
Slowest: 0.0587 secs
|
|
154
|
+
Fastest: 0.0002 secs
|
|
155
|
+
Average: 0.0052 secs
|
|
156
|
+
Requests/sec: 18567.4536
|
|
157
|
+
Status code distribution:
|
|
158
|
+
### CBV Server-Sent Events (/cbv-sse)
|
|
159
|
+
Total: 0.4330 secs
|
|
160
|
+
Slowest: 0.0231 secs
|
|
161
|
+
Fastest: 0.0002 secs
|
|
162
|
+
Average: 0.0041 secs
|
|
163
|
+
Requests/sec: 23096.7184
|
|
164
|
+
Status code distribution:
|
|
165
|
+
### CBV Chat Completions (stream) (/cbv-chat-completions)
|
|
166
|
+
Total: 0.9752 secs
|
|
167
|
+
Slowest: 0.0433 secs
|
|
168
|
+
Fastest: 0.0005 secs
|
|
169
|
+
Average: 0.0094 secs
|
|
170
|
+
Requests/sec: 10253.8036
|
|
171
|
+
Status code distribution:
|
|
172
|
+
|
|
173
|
+
## ORM Performance with CBV
|
|
174
|
+
### Users CBV Mini10 (List) (/users/cbv-mini10)
|
|
175
|
+
Failed requests: 0
|
|
176
|
+
Requests per second: 15136.79 [#/sec] (mean)
|
|
177
|
+
Time per request: 6.606 [ms] (mean)
|
|
178
|
+
Time per request: 0.066 [ms] (mean, across all concurrent requests)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
## Form and File Upload Performance
|
|
182
|
+
### Form Data (POST /form)
|
|
183
|
+
Failed requests: 0
|
|
184
|
+
Requests per second: 55836.60 [#/sec] (mean)
|
|
185
|
+
Time per request: 1.791 [ms] (mean)
|
|
186
|
+
Time per request: 0.018 [ms] (mean, across all concurrent requests)
|
|
187
|
+
### File Upload (POST /upload)
|
|
188
|
+
Failed requests: 0
|
|
189
|
+
Requests per second: 46085.50 [#/sec] (mean)
|
|
190
|
+
Time per request: 2.170 [ms] (mean)
|
|
191
|
+
Time per request: 0.022 [ms] (mean, across all concurrent requests)
|
|
192
|
+
### Mixed Form with Files (POST /mixed-form)
|
|
193
|
+
Failed requests: 0
|
|
194
|
+
Requests per second: 45716.38 [#/sec] (mean)
|
|
195
|
+
Time per request: 2.187 [ms] (mean)
|
|
196
|
+
Time per request: 0.022 [ms] (mean, across all concurrent requests)
|
|
197
|
+
|
|
198
|
+
## Django Ninja-style Benchmarks
|
|
199
|
+
### JSON Parse/Validate (POST /bench/parse)
|
|
200
|
+
Failed requests: 0
|
|
201
|
+
Requests per second: 72966.07 [#/sec] (mean)
|
|
202
|
+
Time per request: 1.371 [ms] (mean)
|
|
203
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Django-Bolt Benchmark
|
|
2
|
+
Generated: Wed Oct 22 11:50:02 PM PKT 2025
|
|
3
|
+
Config: 8 processes × 1 workers | C=100 N=10000
|
|
4
|
+
|
|
5
|
+
## Root Endpoint Performance
|
|
6
|
+
Failed requests: 0
|
|
7
|
+
Requests per second: 87911.32 [#/sec] (mean)
|
|
8
|
+
Time per request: 1.138 [ms] (mean)
|
|
9
|
+
Time per request: 0.011 [ms] (mean, across all concurrent requests)
|
|
10
|
+
|
|
11
|
+
## 10kb JSON Response Performance
|
|
12
|
+
### 10kb JSON (/10k-json)
|
|
13
|
+
Failed requests: 0
|
|
14
|
+
Requests per second: 69789.03 [#/sec] (mean)
|
|
15
|
+
Time per request: 1.433 [ms] (mean)
|
|
16
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
17
|
+
|
|
18
|
+
## Response Type Endpoints
|
|
19
|
+
### Header Endpoint (/header)
|
|
20
|
+
Failed requests: 0
|
|
21
|
+
Requests per second: 83795.61 [#/sec] (mean)
|
|
22
|
+
Time per request: 1.193 [ms] (mean)
|
|
23
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
24
|
+
### Cookie Endpoint (/cookie)
|
|
25
|
+
Failed requests: 0
|
|
26
|
+
Requests per second: 82520.51 [#/sec] (mean)
|
|
27
|
+
Time per request: 1.212 [ms] (mean)
|
|
28
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
29
|
+
### Exception Endpoint (/exc)
|
|
30
|
+
Failed requests: 0
|
|
31
|
+
Requests per second: 82648.73 [#/sec] (mean)
|
|
32
|
+
Time per request: 1.210 [ms] (mean)
|
|
33
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
34
|
+
### HTML Response (/html)
|
|
35
|
+
Failed requests: 0
|
|
36
|
+
Requests per second: 86434.91 [#/sec] (mean)
|
|
37
|
+
Time per request: 1.157 [ms] (mean)
|
|
38
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
39
|
+
### Redirect Response (/redirect)
|
|
40
|
+
Failed requests: 0
|
|
41
|
+
Requests per second: 86174.21 [#/sec] (mean)
|
|
42
|
+
Time per request: 1.160 [ms] (mean)
|
|
43
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
44
|
+
### File Static via FileResponse (/file-static)
|
|
45
|
+
Failed requests: 0
|
|
46
|
+
Requests per second: 32293.17 [#/sec] (mean)
|
|
47
|
+
Time per request: 3.097 [ms] (mean)
|
|
48
|
+
Time per request: 0.031 [ms] (mean, across all concurrent requests)
|
|
49
|
+
|
|
50
|
+
## Streaming and SSE Performance
|
|
51
|
+
### Streaming Plain Text (/stream)
|
|
52
|
+
Total: 0.2098 secs
|
|
53
|
+
Slowest: 0.0100 secs
|
|
54
|
+
Fastest: 0.0002 secs
|
|
55
|
+
Average: 0.0020 secs
|
|
56
|
+
Requests/sec: 47661.8461
|
|
57
|
+
Status code distribution:
|
|
58
|
+
### Server-Sent Events (/sse)
|
|
59
|
+
Total: 0.1915 secs
|
|
60
|
+
Slowest: 0.0114 secs
|
|
61
|
+
Fastest: 0.0002 secs
|
|
62
|
+
Average: 0.0018 secs
|
|
63
|
+
Requests/sec: 52219.9816
|
|
64
|
+
Status code distribution:
|
|
65
|
+
### Server-Sent Events (async) (/sse-async)
|
|
66
|
+
Total: 0.3733 secs
|
|
67
|
+
Slowest: 0.0154 secs
|
|
68
|
+
Fastest: 0.0003 secs
|
|
69
|
+
Average: 0.0035 secs
|
|
70
|
+
Requests/sec: 26786.2922
|
|
71
|
+
Status code distribution:
|
|
72
|
+
### OpenAI Chat Completions (stream) (/v1/chat/completions)
|
|
73
|
+
Total: 0.6960 secs
|
|
74
|
+
Slowest: 0.0441 secs
|
|
75
|
+
Fastest: 0.0004 secs
|
|
76
|
+
Average: 0.0064 secs
|
|
77
|
+
Requests/sec: 14367.9304
|
|
78
|
+
Status code distribution:
|
|
79
|
+
### OpenAI Chat Completions (async stream) (/v1/chat/completions-async)
|
|
80
|
+
Total: 0.8356 secs
|
|
81
|
+
Slowest: 0.0270 secs
|
|
82
|
+
Fastest: 0.0005 secs
|
|
83
|
+
Average: 0.0079 secs
|
|
84
|
+
Requests/sec: 11967.9144
|
|
85
|
+
Status code distribution:
|
|
86
|
+
|
|
87
|
+
## Items GET Performance (/items/1?q=hello)
|
|
88
|
+
Failed requests: 0
|
|
89
|
+
Requests per second: 82157.12 [#/sec] (mean)
|
|
90
|
+
Time per request: 1.217 [ms] (mean)
|
|
91
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
92
|
+
|
|
93
|
+
## Items PUT JSON Performance (/items/1)
|
|
94
|
+
Failed requests: 0
|
|
95
|
+
Requests per second: 73552.67 [#/sec] (mean)
|
|
96
|
+
Time per request: 1.360 [ms] (mean)
|
|
97
|
+
Time per request: 0.014 [ms] (mean, across all concurrent requests)
|
|
98
|
+
|
|
99
|
+
## ORM Performance
|
|
100
|
+
### Users Full10 (/users/full10)
|
|
101
|
+
Failed requests: 0
|
|
102
|
+
Requests per second: 12584.05 [#/sec] (mean)
|
|
103
|
+
Time per request: 7.947 [ms] (mean)
|
|
104
|
+
Time per request: 0.079 [ms] (mean, across all concurrent requests)
|
|
105
|
+
### Users Mini10 (/users/mini10)
|
|
106
|
+
Failed requests: 0
|
|
107
|
+
Requests per second: 14530.32 [#/sec] (mean)
|
|
108
|
+
Time per request: 6.882 [ms] (mean)
|
|
109
|
+
Time per request: 0.069 [ms] (mean, across all concurrent requests)
|
|
110
|
+
|
|
111
|
+
## Class-Based Views (CBV) Performance
|
|
112
|
+
### Simple APIView GET (/cbv-simple)
|
|
113
|
+
Failed requests: 0
|
|
114
|
+
Requests per second: 87136.10 [#/sec] (mean)
|
|
115
|
+
Time per request: 1.148 [ms] (mean)
|
|
116
|
+
Time per request: 0.011 [ms] (mean, across all concurrent requests)
|
|
117
|
+
### Simple APIView POST (/cbv-simple)
|
|
118
|
+
Failed requests: 0
|
|
119
|
+
Requests per second: 77909.53 [#/sec] (mean)
|
|
120
|
+
Time per request: 1.284 [ms] (mean)
|
|
121
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
122
|
+
### Items100 ViewSet GET (/cbv-items100)
|
|
123
|
+
Failed requests: 0
|
|
124
|
+
Requests per second: 59903.56 [#/sec] (mean)
|
|
125
|
+
Time per request: 1.669 [ms] (mean)
|
|
126
|
+
Time per request: 0.017 [ms] (mean, across all concurrent requests)
|
|
127
|
+
|
|
128
|
+
## CBV Items - Basic Operations
|
|
129
|
+
### CBV Items GET (Retrieve) (/cbv-items/1)
|
|
130
|
+
Failed requests: 0
|
|
131
|
+
Requests per second: 80071.74 [#/sec] (mean)
|
|
132
|
+
Time per request: 1.249 [ms] (mean)
|
|
133
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
134
|
+
### CBV Items PUT (Update) (/cbv-items/1)
|
|
135
|
+
Failed requests: 0
|
|
136
|
+
Requests per second: 76502.90 [#/sec] (mean)
|
|
137
|
+
Time per request: 1.307 [ms] (mean)
|
|
138
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
139
|
+
|
|
140
|
+
## CBV Additional Benchmarks
|
|
141
|
+
### CBV Bench Parse (POST /cbv-bench-parse)
|
|
142
|
+
Failed requests: 0
|
|
143
|
+
Requests per second: 77787.72 [#/sec] (mean)
|
|
144
|
+
Time per request: 1.286 [ms] (mean)
|
|
145
|
+
Time per request: 0.013 [ms] (mean, across all concurrent requests)
|
|
146
|
+
### CBV Response Types (/cbv-response)
|
|
147
|
+
Failed requests: 0
|
|
148
|
+
Requests per second: 84578.04 [#/sec] (mean)
|
|
149
|
+
Time per request: 1.182 [ms] (mean)
|
|
150
|
+
Time per request: 0.012 [ms] (mean, across all concurrent requests)
|
|
151
|
+
### CBV Streaming Plain Text (/cbv-stream)
|
|
152
|
+
Total: 0.3853 secs
|
|
153
|
+
Slowest: 0.0177 secs
|
|
154
|
+
Fastest: 0.0002 secs
|
|
155
|
+
Average: 0.0037 secs
|
|
156
|
+
Requests/sec: 25954.4278
|
|
157
|
+
Status code distribution:
|
|
158
|
+
### CBV Server-Sent Events (/cbv-sse)
|
|
159
|
+
Total: 0.3769 secs
|
|
160
|
+
Slowest: 0.0206 secs
|
|
161
|
+
Fastest: 0.0002 secs
|
|
162
|
+
Average: 0.0036 secs
|
|
163
|
+
Requests/sec: 26535.4889
|
|
164
|
+
Status code distribution:
|
|
165
|
+
### CBV Chat Completions (stream) (/cbv-chat-completions)
|
|
166
|
+
Total: 0.8573 secs
|
|
167
|
+
Slowest: 0.0341 secs
|
|
168
|
+
Fastest: 0.0005 secs
|
|
169
|
+
Average: 0.0082 secs
|
|
170
|
+
Requests/sec: 11665.1607
|
|
171
|
+
Status code distribution:
|
|
172
|
+
|
|
173
|
+
## ORM Performance with CBV
|
|
174
|
+
### Users CBV Mini10 (List) (/users/cbv-mini10)
|
|
175
|
+
Failed requests: 0
|
|
176
|
+
Requests per second: 16705.87 [#/sec] (mean)
|
|
177
|
+
Time per request: 5.986 [ms] (mean)
|
|
178
|
+
Time per request: 0.060 [ms] (mean, across all concurrent requests)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
## Form and File Upload Performance
|
|
182
|
+
### Form Data (POST /form)
|
|
183
|
+
Failed requests: 0
|
|
184
|
+
Requests per second: 68089.28 [#/sec] (mean)
|
|
185
|
+
Time per request: 1.469 [ms] (mean)
|
|
186
|
+
Time per request: 0.015 [ms] (mean, across all concurrent requests)
|
|
187
|
+
### File Upload (POST /upload)
|
|
188
|
+
Failed requests: 0
|
|
189
|
+
Requests per second: 54708.49 [#/sec] (mean)
|
|
190
|
+
Time per request: 1.828 [ms] (mean)
|
|
191
|
+
Time per request: 0.018 [ms] (mean, across all concurrent requests)
|
|
192
|
+
### Mixed Form with Files (POST /mixed-form)
|
|
193
|
+
Failed requests: 0
|
|
194
|
+
Requests per second: 51391.16 [#/sec] (mean)
|
|
195
|
+
Time per request: 1.946 [ms] (mean)
|
|
196
|
+
Time per request: 0.019 [ms] (mean, across all concurrent requests)
|
|
197
|
+
|
|
198
|
+
## Django Ninja-style Benchmarks
|
|
199
|
+
### JSON Parse/Validate (POST /bench/parse)
|
|
200
|
+
Failed requests: 0
|
|
201
|
+
Requests per second: 28811.80 [#/sec] (mean)
|
|
202
|
+
Time per request: 3.471 [ms] (mean)
|
|
203
|
+
Time per request: 0.035 [ms] (mean, across all concurrent requests)
|