SShortSingh.
Back to feed

BlackBull framework runs HTTP/SSE and MQTT broker in one Python process on edge hardware

0
·14 views

Developer Joren Vranckaert has built BlackBull, a pure-Python ASGI framework that consolidates HTTP/1.1, HTTP/2, WebSocket, gRPC, and an MQTT 5 broker into a single process. The project targets edge devices such as Raspberry Pi and Jetson boards, where running multiple daemons — a web server, reverse proxy, and separate MQTT broker — adds provisioning complexity and cross-compilation overhead. BlackBull allows browser clients to receive token-by-token streamed responses via Server-Sent Events over HTTP/2, while IoT sensors and devices communicate concurrently over MQTT on the same box. To prevent blocking the async event loop during CPU-bound model inference, the framework offloads computation to a worker thread and drains tokens through an asyncio queue. The framework is designed to be dependency-free for basic demos, with support for real model backends such as llama-cpp and ONNX through its threading pattern.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Japanese Truck Driver Builds AI News Aggregator Using RSS Feeds and Gemini API

A self-taught Python developer and active truck driver in Japan created 'Puoppo,' an automated AI trend analysis tool, after just 42 hours of programming study. The app lets users enter any topic and aggregates up to 100 related articles from official RSS feeds, then summarizes them using Google's Gemini 2.5 Flash model — all within 10 to 15 seconds. The developer initially explored web scraping but abandoned it after running into IP blocks and high maintenance costs from frequent site layout changes, opting instead for publisher-provided RSS feeds as a more reliable data source. Built with Python, Flask, and plain HTML without any JavaScript framework, the tool is designed around a minimal single-column interface for quick morning news consumption. The project is open-source and available on GitHub under the repository tosane932/puoppo_app.

0
ProgrammingDEV Community ·

Developer's own eval tool finds multi-agent AI harness costlier and no better

A software developer built a benchmarking tool to validate the assumption that multi-agent AI harnesses — using a planner, multiple drafters, and a judge — produce better results than a single drafter. Testing across 20 coding tasks, the single-drafter setup scored 95% at $0.031 per task, while the four-call panel scored 80% at $0.692, making it 22 times more expensive and over 8 times slower. However, the tool cautioned that the result was statistically inconclusive, as only 3 of 20 tasks were decided and that sample is too small to reach significance. The developer noted that most evaluation tools would have simply ranked the two scores and implied a clear winner, which would have overstated what the data actually supports. The tool was designed with deterministic scoring, paired per-task comparisons, and an exact sign test to avoid misleading conclusions from small benchmark suites.

0
ProgrammingDEV Community ·

Vibium Uses WebDriver BiDi Protocol to Power Open-Source Browser Automation

Vibium is an open-source browser automation tool written in Go, with client libraries available in JavaScript, TypeScript, Python, and Java. It is built on WebDriver BiDi, the W3C-standardized bidirectional WebSocket protocol that enables real-time browser event communication, unlike older HTTP-based WebDriver or Chrome-only CDP. The tool ships as a single compiled binary that supports CLI usage, an MCP server for AI agent integration, and language-specific clients, all sharing the same internal command engine. A daemon mode allows the browser to stay running across multiple commands, improving performance in workflows and CI environments. Vibium also supports a SKILL.md-based definition system, where MCP reads the skill file to understand how to expose and invoke automation tools through AI agents.

0
ProgrammingDEV Community ·

MySQL Does Not Support Placeholders for LIMIT and OFFSET in Prepared Statements

A developer building a paginated query in a Next.js service encountered a runtime error despite using validated integers and standard prepared statement practices. The root cause was a MySQL limitation: unlike PostgreSQL, MySQL does not allow placeholders for LIMIT and OFFSET clauses in prepared statements. The fix required directly interpolating the sanitized integer values into the query string rather than using parameter placeholders. While the workaround is straightforward, it highlights a subtle but important behavioral difference between SQL database engines. The incident serves as a reminder that SQL dialects are not interchangeable, and developers must account for database-specific constraints even when following otherwise sound coding practices.