{"adoption": {"forks": 1357, "observed_at": "2026-08-28T04:09:58.485507+00:00", "stars": 7358}, "canonical_url": "https://ross.abutalabs.com/products/nswag", "card": {"archived": false, "artifact_type": "library", "description": "The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ", "domain": ["apis", "web-development", "backend", "developer-tools", "documentation"], "enriched": true, "function": ["api-framework", "api-documentation", "middleware", "http-server"], "health_score": 91, "homepage": "http://NSwag.org", "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["RicoSuter/NSwag"], "name": "RicoSuter/NSwag", "platform": ["dotnet", "windows", "cross-platform", "cli"], "pushed_at": "2026-06-21T10:29:45+00:00", "repo": "RicoSuter/NSwag", "stars": 7358, "tags": ["openapi", "swagger", "typescript-client", "csharp-client", "aspnetcore", "code-generation", "webapi", "codegen", "linux", "macos"], "topics": ["nswag", "swagger", "openapi", "codegen", "dotnet", "webapi", "aspnet", "aspnetcore", "angular", "aurelia", "typescript", "csharp"], "urls": [], "use_cases": ["generate openapi spec from asp.net core controllers", "generate typescript client from swagger json", "generate c# api client from openapi 3.0 spec", "serve swagger ui in asp.net core app", "generate angular client code for rest api", "keep api clients in sync with webapi controllers"], "what_it_is": "NSwag is a Swagger/OpenAPI 2.0 and 3.0 toolchain for .NET, ASP.NET Core, and TypeScript, written in C#. It generates OpenAPI specifications from ASP.NET Web API controllers and generates C# and TypeScript client code from those specifications, combining Swashbuckle and AutoRest functionality in one tool.", "when_to_avoid": ["your API is not .NET-based and you only need client generation (AutoRest/openapi-generator may fit better)", "you only need minimal Swagger UI hosting without code generation", "you work outside the .NET/TypeScript ecosystem"], "when_to_choose": ["you have ASP.NET (Core) Web API controllers and want OpenAPI docs and typed clients", "you need both spec generation and client code generation in one consistent toolchain", "you target TypeScript frameworks like Angular and want generated API clients", "you need better support for inheritance, enums, and reference handling than Swashbuckle alone"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nswag", "repo": "RicoSuter/NSwag", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.485507+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:38:25.290286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "877f107f6680772127ae8195de5201c7940da2ee710ab0643ad7c65eb87d26f1", "fetched_at": "2026-08-28T04:09:58.485507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RicoSuter/NSwag"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4018, "days_push": 73, "days_rel": 135, "gap_med": 35, "n_releases_24m": 10}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}