{"repo":"SkywardApps/popcorn","free":true,"listed":false,"github":"https://github.com/SkywardApps/popcorn","clone":"git clone https://github.com/SkywardApps/popcorn.git","description":"Popcorn is a .Net Middleware for your RESTful API that allows your consumers to request exactly as much or as little as they need, with no effort from you.","language":"C#","stars":60,"topics":["rest-api","rest","restful-api","restful","api-wrapper","api-rest","api-server","rest-server","restful-server","dotnet"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"Popcorn Table Of Contents Quick orientation. Popcorn v8 (the current active line) is a Roslyn source generator . The older v7 packages (still on NuGet) were built on runtime reflection . The two are side-by-side installable and 100% wire-compatible — same ?include= grammar, same attribute semantics. The source-gen rewrite exists so Popcorn can run under PublishAot=True and PublishTrimmed=True , which reflection can't. New projects: start with v8. Existing projects on v7: see Migrating from v7 to v8 — the migration is mostly find-and-replace. Jump straight in + New in .NET? DotNet Quick Start — drop Popcorn v8 into a minimal-API app in five minutes. + Migrating from v7? Migration guide — attribute renames, startup config changes, dropped features. + Curious about numbers? Performance — benchmarked vs raw System.Text.Json and v7 reflection. + Other platforms? The protocol is platform-agnostic; only .NET has a provider today. See Roadmap. What is Popcorn? Popcorn is a communication protocol on top of a RESTful API that allows requesting clients to identify individual fields of resources to include when retrieving the resource or resource collection. It allows for a recursive selection of fields, allowing multiple calls to be condensed into one. Features (v8) + Selective field inclusion via ?include=[Field,Nested[Field]] — one round trip instead of N. + Configurable response defaults via [Default] / [Always] / [Never] attributes. + Custom response envelopes via marker attributes ","default_branch":null,"files":null,"tree":[],"storefront":"/r/SkywardApps","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SkywardApps/popcorn/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."}