Awesome
Oxpecker
Oxpecker is a library started as functional wrapper around ASP.NET Core Endpoint routing (or F#-friendly "Minimal APIs"), but now providing fullstack capabilities with Htmx and Solid.js integrations. Repository is a monorepo with all related projects included and documentation located in README.md files per project. As of November 2024, Oxpecker is the fastest .NET 8 web framework in several categories in the TechEmpower benchmark
The server part of the Oxpecker library is a revised version of Giraffe, it mostly sticks to Giraffe's successful API (hence the name). Improvements involve changing some core types, performance of template handlers, simplifying handlers and dropping a lot of outdated functionality.
Medium posts:
- Oxpecker Introduction
- 7 reasons to try Oxpecker.ViewEngine
- Oxpecker vs Blazor
- Oxpecker.Solid introduction
Features:
- Native ASP.NET Core Endpoint routing integration
- Fast ViewEngine with convenient DSL for HTML
- OpenApi integration
- Htmx integration
- Strongly typed route parameters
- Endpoint handlers and endpoint middlewares, flexible composition
- JSON binding and serialization
- Form binding
- Model validation
- URL parameters binding
- Response caching
- Streaming
- Authorization
- eTag support
- IResult support
- Many useful HttpContext extensions
Get started:
Examples:
- Dump of different features all in one place
- Fullstack CRUD example with functional DI on backend
- HTMX sample application
- Oxpecker version of the traditional ASP.NET WeatherApp
- SPA application (TODO list) without backend
Documentation links:
- Oxpecker
- Oxpecker.ViewEngine
- Oxpecker.Htmx Readme
- Oxpecker.OpenApi Readme
- Oxpecker.Solid Readme
- Migration from Giraffe
develop vs main branch:
develop is a development branch, projects are linked with each other using project references. Use this branch to send PRs.
main is a production branch, projects and examples are linked with each other using nuget (or npm) packages. Packages are published from this branch.
Packages
- Oxpecker Nuget package
- Oxpecker.ViewEngine Nuget package
- Oxpecker.Htmx Nuget package
- Oxpecker.OpenApi Nuget package
- Oxpecker.Solid Nuget package
- Oxpecker.Solid.FablePlugin Nuget package
Support
You can promote the development of the project using Github sponsors option