{"id":18382345,"url":"https://github.com/centeredge/yardarm","last_synced_at":"2025-04-06T23:31:33.756Z","repository":{"id":39611448,"uuid":"283662739","full_name":"CenterEdge/Yardarm","owner":"CenterEdge","description":"OpenAPI 3 SDK Generator for C#","archived":false,"fork":false,"pushed_at":"2024-04-28T13:24:41.000Z","size":1278,"stargazers_count":44,"open_issues_count":9,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-28T22:27:22.257Z","etag":null,"topics":["csharp","hacktoberfest","openapi"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CenterEdge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-30T03:44:35.000Z","updated_at":"2024-05-28T17:12:11.218Z","dependencies_parsed_at":"2024-04-27T22:27:30.101Z","dependency_job_id":"2266f2d5-e43b-475f-a291-a37a95d98d32","html_url":"https://github.com/CenterEdge/Yardarm","commit_stats":{"total_commits":332,"total_committers":5,"mean_commits":66.4,"dds":0.01807228915662651,"last_synced_commit":"541bf0a960b022832ee24239611d2dccc1dd4806"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CenterEdge%2FYardarm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CenterEdge%2FYardarm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CenterEdge%2FYardarm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CenterEdge%2FYardarm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CenterEdge","download_url":"https://codeload.github.com/CenterEdge/Yardarm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247569123,"owners_count":20959758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","hacktoberfest","openapi"],"created_at":"2024-11-06T01:04:36.083Z","updated_at":"2025-04-06T23:31:28.739Z","avatar_url":"https://github.com/CenterEdge.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yardarm\n\n![Build](https://github.com/CenterEdge/Yardarm/workflows/Build/badge.svg?branch=main\u0026event=push)\n[![NuGet](https://img.shields.io/nuget/dt/Yardarm?label=NuGet\u0026logo=NuGet)](https://www.nuget.org/packages/Yardarm)\n[![Join the chat at https://gitter.im/CenterEdgeYardarm/community](https://badges.gitter.im/CenterEdgeYardarm/community.svg)](https://gitter.im/CenterEdgeYardarm/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nYardarm is an OpenAPI 3 SDK Generator for C#. It provides various tools that will generate an SDK for a valid OpenAPI specification.\n\n## Project Goals\n\n- Present a .NET SDK that uses modern .NET/C# paradigms\n- High performance, both for generating SDKs and SDK consumers\n- Highly extensible\n- Mitigate backward compatibility issues as new SDKs are generated from new versions of an OpenAPI specification\n\n## Features\n\n- Works with valid OpenAPI 3 specs, in JSON or YAML format\n- Many generation options\n  - Command Line Application\n  - Docker Image\n  - In-code via library\n  - .NET Global Tool\n  - MSBuild SDK\n- Generates a SDK using modern C# patterns and practices as follows:\n  - Asynchronous methods with cancellation tokens\n  - Nullable reference types\n  - Polymorphism\n  - Interfaces with concrete implementations\n  - XML documentation for IntelliSense\n  - Portable PDBs with embedded source code\n- Fast SDK generation\n  - Doesn't make C# files on disk and run MSBuild\n  - Uses Roslyn to directly generate AST and compile in memory\n- Built-in NuGet support\n  - Generate valid `.nupkg` files directly, with correct dependencies\n  - Target multiple framework versions in one package automatically\n  - Automatically restore packages required for compilation\n- Highly extensible SDK generation\n  - Built around plugable extensions that add additional features or modify the C# code used for compilation\n  - Includes out-of-the-box plugins for common scenarios\n    - `Newtonsoft.Json` serialization/deserialization\n    - `System.Text.Json` serialization/deserialization\n    - `Microsoft.Extensions.Http` for dependency injection\n- Highly extensible SDK\n  - Will allow the SDK consumer to extend the behaviors on the client side\n  - Pluggable configuration for things like TLS and base urls\n  - Add `HttpMessageHandler` instances to the `HttpClient` stack\n  - Mockable API interfaces for unit testing\n\n## Consuming Yardarm SDKs\n\nSee [the detailed documentation](./docs/consuming) on consuming SDKs generated by Yardarm.\n\n## Generating Yardarm SDKs\n\nSee [the detailed documentation](./docs/generating) on generating SDKs using Yardarm.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Authors\n\n- **Brant Burnett** - *Initial work* - [BrantBurnett](https://github.com/brantburnett)\n\nSee also the list of [contributors](https://github.com/CenterEdge/Yardarm/graphs/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE.md](LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenteredge%2Fyardarm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcenteredge%2Fyardarm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenteredge%2Fyardarm/lists"}