{"repo":"MistyKuu/ZibStack.NET","free":true,"listed":false,"github":"https://github.com/MistyKuu/ZibStack.NET","clone":"git clone https://github.com/MistyKuu/ZibStack.NET.git","description":"Zero-reflection .NET source generators: [Log] structured logging, [Trace] OpenTelemetry spans, [Aop] aspects (Retry/Cache/Metrics), Dto/CrudApi, TypeGen (TypeScript + OpenAPI from C# DTOs). Compile-time only, no runtime overhead.","language":"C#","stars":22,"topics":["aop","aspects","aspnetcore","code-generation","crud","csharp","dotnet","dto","interceptors","openapi"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"ZibStack.NET A collection of .NET source generators and utilities for common application concerns — logging, tracing, DTOs, CRUD APIs, validation, UI metadata, and more. Zero reflection, zero runtime overhead. Documentation Getting Started Live Playground Three tiers — pick your buy-in ZibStack is designed so you can adopt as little or as much as you want. Start at Tier 1, move deeper only if it fits your project. Tier 1 — Drop-in. Zero architectural buy-in. Add one attribute, keep everything else unchanged. These work in any .NET 8+ project, solo or team, greenfield or legacy. - [Log] — compile-time structured logging with zero boilerplate. Interpolated strings ( LogInformation($\"...\") ) just work. - [Trace] — OpenTelemetry spans on any method, with one attribute. Compatible with Jaeger / Zipkin / OTLP. - ZibStack.NET.Aop — built-in [Trace] , [Log] , [Retry] , [Cache] , [Metrics] , [Audit] , [Timeout] , [Authorize] , [Validate] , [Transaction] aspects. Write your own with IAspectHandler — a few lines each. Global Apply< () rules to instrument entire namespaces without any attributes. Tier 2 — Ergonomics. Opt-in per file. TypeScript-inspired utility types and helpers you reach for when you want them. No framework, no configuration. - TypeScript utility types — Partial , Pick , Omit , Intersect via source generators. - [Destructurable ] — JS-style { picked, ...rest } destructuring on a partial shape record: var (picked, rest) = PersonNameId.Split(person) (both halves typed). -","default_branch":null,"files":null,"tree":[],"storefront":"/r/MistyKuu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/MistyKuu/ZibStack.NET/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}