Skip to content

extend API

Symbol table for sova_core::extend — what it is and who uses it.

Author guide — edit docs/.vitepress/plugin-sdk-guides/extend-api.md, then pnpm docs:generate.

Authoritative import path for plugin crates: sova_core::extend::… (facade re-exports many names as sova::extend when using the sova crate).

Always-on plugin surface

SymbolRoleUsed in-tree
PluginMeta, PLUGIN_SDK_VERSION, PluginSdkVersion, check_plugin_sdk, SdkCompat, InstalledPluginIdentity / SDKnearly all plugins
namedLabel MWcookies, session, csrf, cors, shield, …
with_leaked'static config MWcors, shield, compress
MwEntry, IntoMwEntry, IntoMiddleware, MiddlewareComposable MWauth, passport, db tx, rate-limit
BoxFutureAsync plugin internalssession, http, tasks, …
parse_duration, parse_bytesHuman configsession, static, http, tasks
StateMapStartup/CLI/service statedb, tasks, meta, quic/udp
wait_shutdownService loopstasks, quic, udp
ErrorResponseTyped HTTP errorshttp, db, storage, vld
normalize_path, to_brace_path, join_pathsPathsstatic, openapi
RouteTable, RouteEntry, RouteValue, MetaMap, Needs, BuildCtxIntrospectionopenapi, vld, meta, i18n, session
MatchedRoute, MatchedRouteCapture, MatchedMeta, MatchedMetaCapturePost-matchmeta, observability, devtools
Extensions, TypeMapLow-level mapsadvanced
Body, BoxError, HttpBody, ResponseBodyStreaming bodiessse, compress
HtmlInject, HtmlAnchor, inject*HTML rewritemeta/devtools patterns
logger_skip_path, logger_skip_pathsQuiet routesdevtools
add_log_event_hook, LogRecord, …Log sinksdevtools
request_id, RequestId, ensure_request_idCorrelationcore MW; plugins read via extensions / current_request_id
Deadline, MaxBody, RequestTimeout, tighten_deadlineLimitshttp tests / clients
BindListen helperstests / advanced bind
Cell, SlotShare cellsrarely in plugins (mail has its own slot type)
after, before, around, map_htmlResponse MW helpersavailable; plugins often custom-inject
RawHandler, IntoRawHandlerEscape hatch handlersniche
FormData, RequestBuilder, Upload, UploadRulesRequest buildinguploads / tests
Handler, IntoHandler, FallibleHandler, …Handler traitsframework glue

Crate-root companions (not only under extend)

SymbolRole
App, Plugin, Request, Response, Html, JsonDaily drivers
with_stateArc MW (also used heavily by plugins)
logger_skip_pathSame as extend (devtools)
current_request_idCorrelate store/redis/tasks traces
TestClient (feature testing)Integration tests

Unused ≠ forbidden

Cell / Slot / map_html are part of the supported SDK even if few plugins use them today. Prefer documented helpers over inventing parallel utilities.