NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4497 most downloaded on crates.io
Poem is a full-featured and easy-to-use web framework with the Rust programming language.
Last release 1 years ago
28 Jul 2025
Ships fairly regularly
a new release about every 4 weeks
Most releases are documented
notes for 51 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
6 years old
236 releases · first in 2020
One column per quarter.
- Bump tokio-tungstenite to 0.27 - Bump opentelemetry - Bump x509-parser to 0.17
tokio-tungstenite to 0.27opentelemetryx509-parser to 0.17chore: bump prometheus for RUSTSEC #1012
rustls: populate default provider #1021
add CookieJar::get_ignore_ascii_case method.
CookieJar::get_ignore_ascii_case method.feat(static-files): allow setting no-cache header on index file #980
0.9 #984no-cache header on index file #980rustls, use aws_lc_rs instead of ring #985csrf #9941.85.0fix(poem): Handle richer libcsrf error #953
Add WebSocketStream::get_config method to get the WebSocket configuration. #900
Add Server::http2_max_header_list_size method to set the max size of received header frames.
Server::http2_max_header_list_size method to set the max size of received header frames.1.81.0Add Middleware::combine_if method.
Middleware::combine_if method.Add Middleware::combine method to combine two middlewares.
Middleware::combine method to combine two middlewares.Add WebSocket::config method to set the WebSocket configuration.
WebSocket::config method to set the WebSocket configuration.build(deps): update nix requirement from 0.28.0 to 0.29.0 #851
Default implementation for #[handler] #848EmbeddedFilesEndpoint not working for index.html in subdirectories #825tokio-tungstenite,quick-xml, up tokio, openssl to avoid security warning #857sonic-rs feature to replace serde_json with sonic_rs #8191.81.0Add manual Default implementation for #[handler] #848
bump opentelemetry from 0.23 to 0.24
opentelemetry from 0.23 to 0.24fix(prometheus): use correct content-type header #839
Fix error response builder, missing Content-Type header #808
use AFIT instead of async_trait
async_traitpriority-queue to 2.0x509-parser to 0.16nix to 0.28redis to 0.25reqwest to 0.12opentelemetry to 0.22 #784sync_wrapper to 1.0.0rcgen to 0.13.0base64 to 0.22.0update rustls-pemfile to 2.0 #736
Remove inline and concrete attributes of Object and Union macros, now automatically generate reference names for generic objects.
404 NOT FOUND when parsing path parameters fails. #279hyper1added permissions and owner to UnixListener #668
bump rust-embed from 6.3 to 8.0
rust-embed from 6.3 to 8.0quick-xml from 0.29.0 to 0.30.0- bump syn from 1.0 to 2.0
syn from 1.0 to 2.0allow not falling back to index file #524
just_at method for Router #530deps shields. bump tokio-metrics #532test to the list of optional #570fix: export real error RedisSessionError for redis-session #501
Nothing published for this version
fix: static_files percent encode filename #495
- Add yaml support #476
More compact packing of random bytes in session_id #437
Error::set_error_message to change the error messageFixes not enough randomness in session keys #430
- Bump quick-xml to 0.26.0
quick-xml to 0.26.0Re-enable the brotli compression algorithm.
Bump redis version to 0.22.0 #412
Add support to generics handler #408
Add Error::is_from_response method.
Error::is_from_response method.Add Error::status method to get the status code of error.
Error::status method to get the status code of error.Removed dependency on typed-headers. #394
typed-headers. #394Fixed StaticFileEndpoint returning an incorrect Content-Length header when a Range header is in the request.
StaticFileEndpoint returning an incorrect Content-Length header when a Range header is in the request.Compression middleware returning incorrect Content-Length header.brotli(CompressionAlgo::BR) algorithm, very slow, still looking for the reason.Use the real IP as the remote_addr in the logs of the Tracing middleware. #370
remote_addr in the logs of the Tracing middleware. #370ForceHttps::filter method to determine if a request should be redirect. #360content-length for StaticFileResponse #373Nothing published for this version
CORS middleware use 403 instead of 401. #368
- Expose libcookie iter() #361
iter() #361Add StaticFilesEndpoint::redirect_to_slash_directory to enable Redirects to a slash-ended path when browsing a directory.
Nothing published for this version
Expose macro impl_apirequest_for_payload for custom payload type and add an example to demonstrating the custom payload. #309
Nothing published for this version
Chose Compress algorithm with priority #302
1.61- Add XML support #297 - Add RealIp extractor
RealIp extractor- Add openssl TLS listener. #289
Fix route variable matching incorrectly. #275
Nothing published for this version
Add support for multiple domains to RustlsConfig.
RustlsConfig.rustls-pemfile from 0.3.0 to 1.0.0.Nothing published for this version
Nothing published for this version
Nothing published for this version
~~Do not include a body for HTTP 304~~ #257
Integrate with rust-embed. #251
rust-embed. #251Make the AutoCert middleware to register an account only when it needs to create a new certificate.
AutoCert middleware to register an account only when it needs to create a new certificate.- Add CatchPanic middleware.
CatchPanic middleware.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →