Skip to content

v0.4.0 release#4

Merged
szeka9 merged 9 commits into
mainfrom
development
Apr 3, 2026
Merged

v0.4.0 release#4
szeka9 merged 9 commits into
mainfrom
development

Conversation

@szeka9
Copy link
Copy Markdown
Owner

@szeka9 szeka9 commented Apr 3, 2026

  • parser hardenings
  • refactor bindings and server classes
  • per-part content-type setting in multipart response generator
  • file serving, new index page with examples

szeka9 added 9 commits April 1, 2026 20:15
- imrpove query parameter parsing to search for correct
boundaries "?" or "&" when extracting values by key names

- reject non-ASCII and control characters in headers,
only allow alphanumeric characters, hyphens and underscores
in header field names

- reject invalid quoting in multipart header boundaries

- reject requests with content-length and chunked transfer
encoding set simultaneously
- move buffer allocation and reservation into the HTTP server
to decouple buffer initialization from state machine behavior

- clarify socket vs. client abstractions by introducing distinct
naming: use "client" globally and "socket" at the socket server level
Use port 80 and 443 by default for HTTP
for user convenience. Use port 8080 and
4443 for testing to prevent port conflicts.
Use the "v" prefix in
package versions to better align
with versioning conventions.
Use soft-reset to allow Makefile rules
to access a device if an application is
already running in blocking mode.

Improve Wi-Fi connection handling to wait
until the device is connected, with a specified timeout.
- serve default page under /www, allow files
to be server at the /files endpoint

- allow per-part content-type setting when
generating multipart responses; content-type
needs to be returned by callback functions for each part

- move file-server related FSM state to a standalone
module, enable it optionally (controlled  by http_serve_files)

- rename public method on_busy() to on_unavailable() to indicate
errors related to disabled features

- introduce new configuration key (http_serve_files)
to globally enable/disable file serving

- update default configuration to server /www and
/lib/pyrobusta by default

- split up functional tests to reduce the footprint
of the test module to allow testing with low-SRAM devices,
add garbage collection between test units
- allow in-line comments in config
- change default log-level to info
- run garbage collection after HTTP server termination
Add new page to be served at the server root.
Document example steps for setting up the server;
include the demo app under /examples.

Create helper module (assets) to install default
page under /www.
@szeka9 szeka9 merged commit d99d778 into main Apr 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant