Developer Tools

llama.cpp v9849 fixes IPv6 URL parsing for AI servers

New release handles bracketed IPv6 literals, fixing a networking bug in local AI deployments.

Deep Dive

The open-source AI community’s go-to C++ inference engine, llama.cpp, just dropped release b9849 on June 30. The star of this release is a networking fix: the server and common modules now correctly parse bracketed IPv6 literals in URL authority fields. Per RFC 3986, IPv6 addresses must be enclosed in brackets (e.g., `[::1]:8080`), and the previous code failed to handle this pattern, causing errors in listening logs, proxy `Host` headers, proxy logs, and client rebuild requests. The commit also ensures that when formatting a URL authority, IPv6 hosts are properly bracketed—while the per-request `remote_addr` remains bare.

Additionally, the team restored the explicit “unsupported scheme” throw in the URL parser. After a code review by contributor @ngxson, the block now self-contains the rejection logic, so non-HTTP(S) schemes still throw an error (gated at the top of `common_http_parse_url`). The release ships with 27 assets covering every major platform: macOS (Apple Silicon, Intel, iOS), Linux (x64, arm64, s390x, with GPU backends like Vulkan, ROCm, OpenVINO, SYCL), Windows (x64, arm64, CUDA 12/13, Vulkan, OpenCL, SYCL, HIP), Android (arm64), and even openEuler with ACL Graph. For developers running llama.cpp as a local AI server, this patch is essential for reliable networking, especially in IPv6-heavy environments or container setups.

Key Points
  • Fixes IPv6 literal handling in URL authority (RFC 3986 bracket notation) for server and common modules.
  • Restores explicit throw for non-HTTP(S) schemes after community code review.
  • Supports 27 build assets across macOS, Linux, Windows, Android, and openEuler with multiple GPU backends.

Why It Matters

Essential networking fix for developers running llama.cpp as a local AI server in IPv6 or mixed environments.

📬 Get the top 10 AI stories daily