Skip to content

2.2.0

Latest

Choose a tag to compare

@grepjava grepjava released this 21 Oct 12:10
· 1 commit to main since this release

Needs Vega 1.1: Garuda depends on it from: "1.1.0".

  • Idle connections give their buffers back. An HTTP/1.1 or HTTP/2
    connection that has been quiet for --idle-buffers milliseconds (100;
    ServerConfig.idleBufferDelay) returns its read buffer to Vega's receive
    blocks and its output buffer to a per-worker list, and waits in Vega's
    receive(), which holds no buffer, until it is sent more. A WebSocket
    reader does so as soon as it has nothing buffered. With 20,000 idle
    keep-alive connections a connection costs 14.5 KiB of the server's memory
    where it cost 27.0, and with 5,000 over TLS 18.3 KiB where it cost 41.2.
    The limits a connection is held to are shared, not copied into each of its
    waiting calls.
  • --idle-buffers MS|off. 0 gives the buffers back as soon as a
    connection has nothing to read; off (nil) keeps them, as 2.1 did. The
    100 ms default keeps a busy connection, whose next request is usually a
    fraction of a millisecond away, from giving its buffers back and taking
    them again for every request: doing that cost 3–7% of throughput on the
    keep-alive workloads, and with the delay they measure as 2.1 does.
  • The README opens with a handler that awaits a PostgreSQL query and throws
    an HTTPError, which is what most handlers look like, where every snippet
    before the middleware section used to be an async closure that never
    suspended. The quick start is a five-line application with no database.
    The opening is shorter: the runtime, shards and crash semantics are one
    paragraph with links, the middleware list is grouped by purpose, the
    database, streaming and upload prose is cut to what a first reader needs,
    and the axum side-by-side, the release line and the Kitura note move to
    the sections about them.
  • The README says that Garuda 2 is rebuilt on Vega, a new I/O and runtime
    package modelled after Tokio, in place of aviancore.