Wisp is a lightweight, embeddable web framework for .NET designed to be simple and fast, without depending on ASP.NET Core.
The architecture of Wisp is heavily inspired by ASP.NET Core but it's built to be as small as possible and not hijack the whole application lifetime like ASP does. This makes wisp perfect for embedding in existing applications.
In theory? Yes. However it is still very much in beta and using it in production is not recommended for security reasons.
Wisp is fast. We don’t have formal benchmarks yet, but this very FAQ page — which involves routing, querying an SQLite database, and rendering a Fluid template — completes in around 1 ms from request to response (excluding CSS, images, and external font loading). The binary running this site takes around 300ms to start and be ready to accept requests.
Yes, Wisp is dual-licensed under the Apache 2.0 License and MIT License. You can choose whichever fits your needs.
Absolutely not. Wisp is designed specifically for use-cases where ASP.NET Core is too big and opinionated, like tiny microservices and embedding in existing applications.
All contributions to Wisp are extremely welcome. Currently, we mainly need help with code and documentation. If you'd like to contribute to Wisp, please go to the Wisp GitHub and send a PR.
Yes, Wisp can be compiled into a self-contained single binary and a typical Wisp application binary should be under 80MB.
Yes, Wisp uses the Fluid templating language, which is a C# implementation of the Shopify Liquid templating language.
Wisp runs anywhere where .NET Core runs (Windows, Linux, macOS, BSD) and it's very easy to Dockerize and run in Kubernetes as well.
Wisp by itself does not deal with databases at all but it's very easy to integrate with EFCore or other database frameworks and drivers. There is an EFCore integration example in the documentation.
Yes, by default, Wisp uses the Microsoft DI container and you can optionally pass in your own IServiceCollection instance.
Wisp is designed to be extensible. You can use configuration hooks to customize various Wisp component and you can use custom Middleware to affect various stages of the request lifetime.
Not yet but we are planning to implement WebSocket support in the future.
Yes! Wisp uses NetCoreServer by default but you can provide your own implementation of IHttpServer.