All Classes and Interfaces

Class
Description
Base router contract.
 
 
Single accept-loop body — runs on each of a listener's accept threads.
Inspects a handler class at registration time and returns zero or more middleware nodes to inject automatically.
Capability interface for a ByteView that is a contiguous slice of a single backing byte[] — as opposed to a SegmentedByteView, which spans several arrays and cannot expose a single (array, offset) pair.
Internal completion signal used to enforce request-trailer ordering.
A handler whose request carries a body of a known type.
One bound listener socket (plain or TLS) plus whether it is TLS, for logging only.
The single buffered view over one connection's inbound bytes, for the whole lifetime of the gives ProtocolNegotiator a way to inspect the first bytes of a plaintext connection (the h2c preface) without consuming them.
The single home for protocol-neutral byte scanning: single-byte search, the four-byte \r\n\r\n header-terminator search (SWAR-accelerated), case-insensitive comparison, comma-separated token-list scanning (Connection: a, b, c), RFC 9110 tchar validation, and the case-insensitive header-name hash Http1HeaderMap's
Precompiled, allocation-minimal byte template.
Index-based writer into a growable byte[] scratch buffer.
Client-certificate requirement for a TLS listener, applied via TlsConfig.clientAuth(ClientAuth).
Shorthand for @Route(method = HttpMethod.CONNECT, path = "…").
Everything a ConnectionProtocol implementation needs to serve one connection, bundled into a single object instead of a long parameter list.
ALPN/preface detection (ConnectionRunner), and dispatches to one implementation of this interface.
Owns one connection's socket lifecycle from accept to close: configures socket options, dispatches to the matching ConnectionProtocol — guaranteeing cleanup (scratch release, active-socket tracking) regardless of how the protocol implementation exits.
ThreadLocal on HttpServer: the decimal-formatting scratch, the streaming relay buffer, and the WebSocket-handshake MessageDigest.
The media type a handler reads its request body as.
Pre-compiled byte representations of common HTTP Content-Type values.
Reassembles one HEADERS/CONTINUATION sequence into a bounded contiguous connection buffer.
Bounded connection-owned free list of frame-sized request-body buffers.
A daemon refreshes both protocol renderings once per second.
Shorthand for @Route(method = HttpMethod.DELETE, path = "…").
Immutable empty header collection shared by requests without trailers.
Precompiled error page templates.
Router backed by the fpr-core byte-level state machine.
ByteView implementations used on the router and parser hot paths.
Mutable composite view: method bytes + path.
bounds instead of requiring a fresh allocation.
 
 
WebSocket-upgrade counterpart of FastPathRouterImpl — same fpr-core matching via FastPathWsRouterImpl.newScratch() in place of the ThreadLocals this class used to hold).
Global Flash constants and runtime environment flags.
 
 
 
Single entry point for Flash.
One application's complete contribution to a FlashApp — its routes, extensions and services — expressed independently of which port or configuration it runs on.
Configuration for a FlashApp instance.
One bind target: a TCP port, an optional bind host (default: all interfaces), and optional TLS.
Deterministic boot-time service graph, frozen before handlers are initialised.
 
One declarative contribution to a Flash application.
Common route-registration surface shared by FlashApp and FlashScope.
Scoped builder for namespace-prefixed routes.
The frame-header flag bits (RFC 9113 §6), as bitwise constants plus predicate helpers.
A flyweight over one frame's 9-byte header plus its payload location, both still living in Http2FrameReader's own read buffer.
The 10 HTTP/2 frame types (RFC 9113 §6), plus the shared per-type validation rules FrameValidator enforces.
Whether a frame type requires stream id 0, requires it non-zero, or permits either.
Table-driven RFC 9113 per-frame-type validation: length bounds, the stream-id required/forbidden/either rule, and the two special-cased structural rules (SETTINGS' multiple-of-6 length, PUSH_PROMISE always rejected from a client) that do not fit a class is the code that reads it.
Serializes HTTP/2 frames into a ByteWriter scratch buffer with the standard length-back-patching technique: FrameWriteBuffer.beginFrame(dev.relism.flash.http2.frame.FrameType, int, int) writes a 9-byte header with a placeholder length, the caller writes the payload directly through FrameWriteBuffer.writer() (the same ByteWriter), and FrameWriteBuffer.endFrame() rewrites the length once it is known — the payload size is rarely known before it is serialized (an HPACK-encoded header block, in particular, has no cheap way to be measured in advance).
Shorthand for @Route(method = HttpMethod.GET, path = "…").
Shorthand for @Route(method = HttpMethod.HEAD, path = "…").
Signals that a fully decoded HPACK block exceeded the configured header-list limit.
Receives decoded HPACK fields in wire order.
The read-side, protocol-neutral contract every header container implements.
Shared proxy policy for fields that must not cross an HTTP connection boundary.
 
Stateful, allocation-free HPACK decoder for one HTTP/2 connection direction.
Per-connection HPACK dynamic table.
Stateless HPACK encoder for response header blocks.
Reusable per-stream storage for decoded header fields.
RFC 7541 §5.1 prefix-coded integer encode/decode.
The immutable 61-entry HPACK static table defined by RFC 7541 Appendix A.
The HTTP/1.1 keep-alive request loop: parse → route → handle → respond, repeated until the connection closes.
HeaderView backed directly by RequestParser's byte buffer — lazy, zero-copy: strings are allocated only when Http1HeaderMap.first(java.lang.String)/Http1HeaderMap.all(java.lang.String)/Http1HeaderMap.view(java.lang.String) is called, the raw bytes are never copied at parse time.
HTTP/1.1 keep-alive decision (RFC 9110 §7.6.1) and the shared Connection header token-list scanner both it and WebSocket upgrade detection need.
Bounds the HTTP/1.1 parser (RequestParser, ChunkedInputStream) enforces against a peer's input, in one place.
Serializes a Response as an HTTP/1.1 message.
Owns one HTTP/2 connection's demultiplexing and connection-level protocol state.
The 14 HTTP/2 error codes defined by RFC 9113 §7.
A connection-level HTTP/2 error.
Connection-level half of HTTP/2's two-level flow-control accounting.
 
Reads length-prefixed HTTP/2 frames from one connection's BufferedByteSource.
The one component every HTTP/2 write in this codebase passes through — connection frames and stream frames alike (both are just WriteIntents).
What a frame's serialized bytes are ultimately written to.
Header view over stream-owned decoded HPACK storage.
Every bound the HTTP/2 implementation enforces against a peer's input, in one place.
Byte-exact client preface and immutable server startup frames, compiled once at class load.
Reusable request-body source fed by the connection demultiplexer.
 
Reusable per-stream HTTP/2 response serializer.
 
The peer's HTTP/2 SETTINGS state.
Applies an INITIAL_WINDOW_SIZE delta to every open stream.
Per-stream request, response, decoded-header and write state.
 
A stream-level HTTP/2 error, scoped to one stream id.
Explicit RFC 9113 stream-state transition table.
 
Fixed-capacity primitive stream-id table using linear-probed open addressing.
 
Runtime exception carrying an HTTP status code.
 
Pre-compiled byte representations of standard HTTP status lines.
RFC 7541 §5.2 / Appendix B: the fixed canonical Huffman code used to compress HPACK string literals.
Thrown at boot time when Flash detects a configuration or registration error.
A service this handler needs, filled in once when the handler is bound.
 
Thrown by the HTTP/1.1 parser when a request violates a protocol rule that must be rejected outright — most importantly the request-smuggling defenses of RFC 9112 §6.1 (see
Stateless interceptor applied around a RequestHandler.
Boot-only DAG compiler for a route's middleware nodes.
Stable boot-time identity of a middleware node.
A named middleware contribution and its ordering constraints.
Lazy streaming multipart/form-data parser.
Reusable owned-byte header collection for sections parsed outside the request head buffer.
Shorthand for @Route(method = HttpMethod.OPTIONS, path = "…").
RFC 9113 §6.1 (DATA) / §6.2 (HEADERS) padding.
The allocation-free idiom for returning two ints from a method without an object: pack both into one long, unpack at the call site.
One part of a multipart/form-data body produced by Multipart.
Shorthand for @Route(method = HttpMethod.PATCH, path = "…").
Path parameters captured during routing, stored as byte offsets into the path view.
 
per-call new ByteView() { ... } anonymous-class allocation that used to live in Http1HeaderMap.view, QueryParams.view, and PathParams.view: instead of allocating a fresh view object (plus its capturing instance) on every call, a small SlicePool of these hands out an existing instance, repositioned in place.
Shorthand for @Route(method = HttpMethod.POST, path = "…").
A header name/value pair pre-encoded once (typically at boot, as a static final constant) and reused across many responses via Response.header(PreEncodedHeader).
The media type a handler answers in.
Detects HTTP/1.1 or HTTP/2 once, before the connection parser is selected.
Validates request pseudo-headers and HTTP/2 field rules while extracting request metadata.
Shorthand for @Route(method = HttpMethod.PURGE, path = "…").
Shorthand for @Route(method = HttpMethod.PUT, path = "…").
Shorthand for @Route(method = HttpMethod.QUERY, path = "…").
Lazy query parameter access (?key=value&...).
 
View of an incoming HTTP/1.1 request.
Accessor for the HTTP request body.
Base class for class-based route handlers.
Typed accessors for request parameters.
The parsed request line plus headers: method, path, optional query, optional protocol token, and the header container.
One instance per connection.
HTTP response.
The protocol-neutral enumeration of a Response's header fields — one source of truth consumed by every protocol's writer, so field selection cannot drift between HTTP/1 and HTTP/2.
One rendered header field: a byte range for the name, and a byte range for the value — both slices of caller-owned arrays, never copied.
Blocking, flow-controlled response body used by push-style streaming producers.
Adapts a flow-controlled response stream to APIs that write to an OutputStream.
HTTP method and path for a class-based RequestHandler.
Immutable snapshot of a route captured at registration time.
Observer notified once for each route registered on a FlashApp or FlashScope.
Boot-time resolution of Route from a handler class (direct @Route or shorthand).
A bounded cache of ConnectionScratch instances, reused across connections instead of being allocated and garbage-collected per connection.
A ByteView over up to K discontiguous byte[] segments, presented as one logical byte sequence.
Public handle to the underlying HTTP transport.
Owns the server's lifecycle: the accept threads (one per listener × TransportTuning.ACCEPT_THREADS), the active-socket registry, and the two-stage shutdownDrainTimeoutMs (during which Http1Connection forces Connection: close on the next response once it observes isStopped()), then force-close whatever remains.
Delegates SimpleHandler.handle(dev.relism.flash.models.Request, dev.relism.flash.models.Response) to a SimpleHandler.FunctionalHandler so lambdas can be used without relying on Lombok-generated constructors (IDE-safe, annotation-processing independent).
Functional interface for handling requests, used by SimpleHandler.
A small, fixed-size ring of PooledSlice instances — one per ConnectionScratch- Http1HeaderMap.view, QueryParams.view, PathParams.view).
Declarative TLS configuration for a FlashConfiguration.Listener.
Shorthand for @Route(method = HttpMethod.TRACE, path = "…").
Composes the whole transport: binds every configured listener, wires the connection runner and the h1 protocol, and returns the ServerHandle implementation (ServerLifecycle) that ServerHandle.create(dev.relism.flash.extension.FlashConfiguration, dev.relism.flash.routing.AbstractRouter, dev.relism.flash.routing.AbstractWsRouter) exposes publicly.
Transport-level bound on concurrent connections, enforced by ConnectionRunner before any per-connection state (TLS handshake, protocol negotiation, HPACK tables, buffers) is set up.
Base class for class-based WebSocket endpoints registered via @Ws or app.ws(path, endpoint).
Zero-copy view over WebSocketSession's read buffer.
Handler for a WebSocket endpoint.
Drives one WebSocketSession's read loop until the session closes.
A WebSocket frame violated RFC 6455 (bad opcode, wrong masking direction, oversized control frame, fragmented control frame, or a message exceeding the session's buffer).
Per-connection WebSocket I/O state.
WebSocket upgrade detection (RFC 6455 §4.2.1) and handshake response.
"Serialize yourself, then hand me the finished bytes."
Marks a RequestHandler subclass as a WebSocket endpoint.