What fastly/pushpin shipped
Written by FoxPlug from the repository's own releases; not affiliated with Pushpin. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/fastly/pushpin; Pushpin did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 26, 2026
What shipped
- Fixed
port_offseton tcp:// addresses, which was cutting off text after the port instead of replacing only the port. Pull request #48463 - Fixed list settings so variables like {rundir} and {
ipc_prefix} are resolved again in string list values. Pull request #48462 - Added optional prometheus metrics serving with an initial total requests metric per component. Pull request #48465
- Added a MessageDistributor abstraction wrapping the ZeroMQ PUB socket output, with the server now taking a list of distributors; no behavior change. Pull request #48467
- Updated the minimum supported Rust version and various crates to fix almost all audit warnings. Pull request #48461
- Replaced as many QByteArray uses as possible with CowByteArray across the rest of the core module. Pull request #48464
- Updated CowUrl, StatsManager, ZhttpManager and ZrpcManager APIs to use CowByteArray, effectively removing QByteArray from core public APIs. Pull request #48459
- Added more conversion methods to CowByteArray to help with migration. Pull request #48460
- Fixed the log level used for api in the runner, which was a typo. Pull request #48466
Why it matters
This week brings two real fixes: port_offset no longer eats text after the port, and variable substitution works again in list settings. Alongside that, the move to CowByteArray and the new message distributor abstraction set up groundwork for future implementations, and prometheus metrics give you a way to observe request counts.
Changelog entry
- Fix
port_offsetcutting off text after the port in tcp:// addresses Pull request #48463 - Fix variables not being resolved in list settings Pull request #48462
- Add optional prometheus metrics serving with a total requests metric Pull request #48465
- Add MessageDistributor abstraction for passing published items to distributors Pull request #48467
- Update minimum supported Rust version and crates to fix almost all audit warnings Pull request #48461
- Use CowByteArray instead of QByteArray throughout the rest of core where possible Pull request #48464
- Update CowUrl, StatsManager, ZhttpManager and ZrpcManager APIs to use CowByteArray Pull request #48459
- Add more conversion methods to CowByteArray Pull request #48460
- Use the correct log level for api in the runner Pull request #48466
This week: fixed port_offset cutting off text after the port, fixed variable resolution in list settings, added optional prometheus metrics, and continued the CowByteArray migration across core.
This week's changes: port_offset on tcp:// addresses no longer cuts off text after the port, and variables like {rundir} are resolved again in list settings. Optional prometheus metrics serving is added, starting with a total requests metric. Core continues moving from QByteArray to CowByteArray, with more conversion methods added, plus a MessageDistributor abstraction around the ZeroMQ PUB output with no behavior change. The minimum supported Rust version and various crates were updated to fix almost all audit warnings.
Week of October 19, 2026
What shipped
- Updated rustls and rustls-webpki to address an audit finding. Pull request #48455
- Updated the Json, StatsManager, StatusReasons, UuidUtil, ZhttpManager, and ZrpcManager APIs to use CowByteArray. Pull request #48457
- Updated the Jwt, SimpleHttpServer, TnetString, and ZrpcRequest APIs to use CowByteArray. Pull request #48458
- Added more conversion methods to CowByteArray and CowString for parity with Qt. Pull request #48456
- Updated the http/websocket rid type and private methods to use cow types. Pull request #48454
Why it matters
This week moved more core APIs to CowByteArray across several managers and utilities, with follow-up coverage in the websocket code. CowByteArray and CowString also gained conversion methods for parity with Qt. Separately, rustls and rustls-webpki were updated to fix an audit finding.
Changelog entry
- Update rustls and rustls-webpki to fix an audit finding. Pull request #48455
- Json, StatsManager, StatusReasons, UuidUtil, ZhttpManager, and ZrpcManager APIs now use CowByteArray. Pull request #48457
- Jwt, SimpleHttpServer, TnetString, and ZrpcRequest APIs now use CowByteArray. Pull request #48458
- Add more conversion methods to CowByteArray and CowString for parity with Qt. Pull request #48456
- Http/websocket rid type and private methods now use cow types. Pull request #48454
This week: rustls and rustls-webpki updated to fix an audit finding. Several core APIs moved to CowByteArray, including the Json, StatsManager, UuidUtil, ZhttpManager, and ZrpcManager APIs, plus the Jwt and TnetString APIs. CowByteArray and CowString gained more conversion method
This week in Pushpin: rustls and rustls-webpki were updated to fix an audit finding. Work continued on moving core APIs to CowByteArray, covering the Json, StatsManager, StatusReasons, UuidUtil, ZhttpManager, and ZrpcManager APIs, and the Jwt, SimpleHttpServer, TnetString, and ZrpcRequest APIs. CowByteArray and CowString gained more conversion methods for parity with Qt, and a few remaining spots in the http/websocket rid type and private methods were updated to use cow types.
Week of September 28, 2026
What shipped
- The runner can now start the api component when configured, with default services being connmgr, proxy, and handler. Pull request #48452
- The /publish/ endpoint now sends prepared items to the handler instead of discarding them. Pull request #48451
- The api's publish endpoint validates request items and converts them to tnetstring format for internal distribution. Pull request #48448
- ZmqSocket wrapper now has
send_multipartandrecv_multipartmethods for distributing items to the handler. Pull request #48450 - The api component can now be built independently via the include-api flag and placed in bin/ alongside the stable runner. Pull request #48447
- Status reasons lookup table was ported from C++ to Rust with FFI bindings for C++ access. Pull request #48444
- The HTTP server now properly responds with 411 for missing Content-Length and 413 for oversized requests. Pull request #48446
- Tnetstring serialization now works with serde-annotated structs for sending packets to the handler. Pull request #48445
- Prometheus metrics handler switched to use the generic simplehttpserver module. Pull request #48441
- Log level labels are now explicitly initialized to zero to improve metric increase detection. Pull request #48442
Why it matters
The api component is becoming functional with message publishing, validation, and routing to the handler component. Infrastructure improvements to ZeroMQ multipart support, tnetstring serialization, and HTTP server response handling enable this new capability. These changes move the project closer to having a working publish endpoint.
Changelog entry
- Runner: Add ability to run api service from config Pull request #48452
- API: Publish endpoint now sends validated items to handler Pull request #48451
- API: Validate publish requests and convert to tnetstring format Pull request #48448
- ZmqSocket: Add
send_multipartandrecv_multipartmethods Pull request #48450 - API: Add include-api build flag and place in bin/ Pull request #48447
- Statusreasons: Port from C++ to Rust with FFI bindings Pull request #48444
- HTTP server: Properly respond with 411 and 413 status codes Pull request #48446
- Tnetstring: Support serialization via serde Pull request #48445
- Prometheus: Switch to simplehttpserver module Pull request #48441
- Logging: Initialize level labels to zero for better metrics Pull request #48442
The api component can now validate and route published items to the handler. It builds independently via include-api and listens on port 5561 by default.
Pushpin's api component is progressing toward full functionality. Recent work enables message validation, tnetstring serialization, and routing to the handler via ZeroMQ. The component can now be built independently with the include-api flag and runs alongside stable components. HTTP server improvements and infrastructure work support these new capabilities.
Week of September 14, 2026
What shipped
- Added PUSHPIN_BUILD_VERSION environment variable to allow build version injection at compile time, replacing the previous dev version generation logic. Pull request #48436
- Fixed
get_version_intfunction to handle the new build version format introduced in the previous change. Pull request #48437 - Prometheus metrics now support component-specific prefix overrides, with defaults set for connmgr and proxy components. Pull request #48434
- Fixed prometheus unix socket binding by ensuring stale socket files are removed before binding, using the existing
bind_configlogic. Pull request #48432 - Updated rustls dependency to fix a security audit issue. Pull request #48433
Why it matters
This week's changes improve build version handling and fix prometheus server initialization issues. The rustls update addresses security concerns for users running Pushpin in production environments.
Changelog entry
- Allow build version to be injected at compile time via PUSHPIN_BUILD_VERSION environment variable Pull request #48436
- Fix
get_version_intto support new build version format Pull request #48437 - Prometheus prefixes can now override default component names for connmgr, proxy, and handler Pull request #48434
- Prometheus server properly removes stale unix socket files when binding Pull request #48432
- Update rustls to fix audit findings Pull request #48433
Pushpin updates: improved build version handling, prometheus prefix overrides per component, fixed unix socket cleanup for prometheus, and rustls security update.
This week Pushpin received updates to its build system allowing compile-time version injection, prometheus metrics now support per-component prefix configuration, the prometheus server no longer leaves stale socket files, and rustls was updated to resolve security audit findings.