SkillTide Submit
Official descriptionOpen source7d ago
swimmesberger/Elarion

swimmesberger/Elarion

AI-native .NET framework — module-based handlers wired at compile time and exposed as JSON-RPC, HTTP & MCP…
View on GitHub ↗Direct link · no redirect page
Official descriptionarion-banner-transparent-light.svg" Module-based handler pipelines, compile-time registration, JSON-RPC hosting, MCP tools for AI agents, and scheduled jobs.** Declare intent next to your code; let source generators do the wiring.
Star count
1 ★ · swimmesberger/Elarion · read from the repository page · (checked 2026-10-16 20:00:20)
Source
read directly from its GitHub page · type: open-source project
Harvest history
first seen 2026-10-10 · last seen 2026-10-10 · seen 2× · listed by 1 sources
Score
score 103 · 1 ★ · 1 sources · repo
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository swimmesberger/Elarion;first catalogued 2026-10-10;last seen 2026-10-10。There is no official certification or quality rating here — we record sources and dates only.
Third-party quality signals

**Module-based handler pipelines, compile-time registration, JSON-RPC hosting, M

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

jobs.**
Declare intent next to your code; let source generators do the wiring. No runtime reflection scanning.
**AI-native by design:** the same handlers that power your API are exposed to AI agents
as MCP tools — generated from your code at compile time, with no separate tool
definitions or duplicated schemas.
---
Elarion's central idea is simple: **your application assemblies define modules and handlers; your
host assembly only wires infrastructure, transport, and deployment.** Everything that can be
discovered from your code — handlers, services, scheduled jobs, RPC methods, validation metadata, EF Core
DbSets — is emitted by source generators at compile time instead of scanned by reflection at
startup.
That one class is a use case, a registered service, a JSON-RPC method, an **MCP tool for AI agents**,
and (optionally) a schema-exported TypeScript contract — with **no entry added to any Program.cs
registration list.** The operation name is optional: [Handler] alone infers {module}.{operation} by
convention (here clients.get), while an explicit name is recommended for stable public/wire contracts.
Why Elarion
- **Compile-time, not reflection** — handlers, services, modules, RPC maps, validation metadata, and
scheduled jobs become ordinary DI code. Startup is deterministic and AOT-friendly; missing wiring
is a build error, not a runtime surprise.
- **Modules own their surface** — a module is a namespace plus an [AppModule] marker. Add a handler
under it and the module publishes it automatically.
- **Transport-neutral results** — handlers return Result with a transport-agnostic AppError;
the host maps failures to JSON-RPC, HTTP, or anything else.
- **One bus, many surfaces** — every handler maps onto a single transport-neutral HandlerDispatcher
(Elarion.Abstractions.Dispatch); JSON-RPC and MCP are thin **adapters** over that one bus, each serving
only the operations flagged for it. Define a handler once and choose its surfaces with the Transports
flag.
- **End-to-end JSON-RPC** — mark a handler with [Handler], export a schema at build time, and
generate a typed TypeScript + Zod client.
- **Validation that reaches the contract** — DataAnnotations on the request DTO are enforced by a
generated pipeline decorator under every transport **and** exported to the JSON-RPC schema, OpenAPI,
MCP tool schemas, and the Zod client (which pre-validates requests). One declaration, four surfaces;
business rules stay in the handler, inside the transaction (ADR-0027).
- **AI-native, no extra code** — expose the same [Handler] handlers to AI agents as an
MCP server. MCP is an adapter over the shared HandlerDispatcher, so a
tool is just a handler flagged HandlerTransports.Mcp. Tool names, descriptions, and input schemas are
generated from your handlers and [Description] attributes at compile time — no separate tool layer, no
duplicated schemas, no runtime reflection. Choose a handler's transports with
[Handler(Transports = …)] (JSON-RPC, MCP, or both) and rename a tool with [McpHandler].
- **Feature flags & variants** — every flag is declared once with exactly one owner (a resolver class or
the host's backend) and checked at compile time; gate any handler with [FeatureGate]; a generated decorator
evaluates the flag before the handler runs and a closed gate returns **404 Not Found**, so a
disabled feature is indistinguishable from one that doesn't exist (the name is never leaked).
[FeatureVariant] swaps a [Service] implementation per user behind a flag. Both work identically
Source
github · https://github.com/swimmesberger/Elarion
Browse by field
Open source
Traction
1 ★
added
7d ago

More in Open source

All 731 in Open source →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index