diff --git a/Makefile b/Makefile index 5ff15b4..b6f2dcd 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PYROBUSTA_VERSION := v0.8.0 +PYROBUSTA_VERSION := v0.9.0 DEVICE ?= u0 SRC_DIR := src diff --git a/dist/pyrobusta/__init__.py b/dist/pyrobusta/__init__.py index e69de29..a82c93f 100644 --- a/dist/pyrobusta/__init__.py +++ b/dist/pyrobusta/__init__.py @@ -0,0 +1,6 @@ +"""Global server attributes""" + +from os import getcwd + +PYROBUSTA_VERSION = "v0.9.0" +WORKING_DIR = getcwd().rstrip("/") diff --git a/dist/pyrobusta/application.mpy b/dist/pyrobusta/application.mpy new file mode 100644 index 0000000..07d5ada Binary files /dev/null and b/dist/pyrobusta/application.mpy differ diff --git a/dist/pyrobusta/assets/www/concepts.html b/dist/pyrobusta/assets/www/concepts.html index b079661..581387d 100644 --- a/dist/pyrobusta/assets/www/concepts.html +++ b/dist/pyrobusta/assets/www/concepts.html @@ -8,7 +8,7 @@
This chapter introduces the architectural concepts and design principles that underpin PyRobusta. +
This page introduces the architectural concepts and design principles that underpin PyRobusta. Detailed information about configuration, routing, and request handling is covered in the corresponding chapters.
StreamReader and StreamWriter pair for network I/O.
Each client connection executes as an independent asynchronous task, allowing multiple connections
to make progress concurrently. HttpServer maintains the set of active connections and accepts
-new connections until the configured maximum number of concurrent connections is reached. HttpServer
-closes idle connections after the configured timeout to reclaim resources. Because each connection is
+new connections until the configured maximum number of concurrent connections is reached. When the
+server is at capacity, new connections wait for resources to become available until a configurable
+timeout expires. If the timeout is reached, the connection is rejected. Because each connection is
processed independently, slow clients do not block unrelated connections. However, requests within
the same connection are always processed sequentially.
For each new connection, the server reserves a request and response stream buffer from the shared buffer pool.
When all stream buffers are reserved, new connections are blocked until a buffer pair becomes available
-(either through connection closure or timeout). HttpServer automatically closes connections that remain inactive for too long.
HttpConnection.
Stream buffers are preallocated during server initialization based on the configured memory limits. Their size and number remain fixed throughout the lifetime of the server. Preallocating stream buffers reduces heap fragmentation, improving memory stability and reducing the risk of runtime allocation failures.
@@ -121,7 +123,7 @@Together, these architectural decisions enable PyRobusta to handle HTTP requests with predictable resource usage, incremental request processing, and deterministic behavior suitable for resource-constrained embedded systems.
PyRobusta v0.8.0 Web Server
+PyRobusta v0.9.0 Web Server