Frequently Asked Questions

About Wisp

What is Wisp?

Wisp is a lightweight, embeddable web framework for .NET designed to be simple and fast, without depending on ASP.NET Core.

How is Wisp different from 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.

Is Wisp production ready?

In theory? Yes. However it is still very much in beta and using it in production is not recommended for security reasons.

What kind of performance can I expect?

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.

Is Wisp free?

Yes, Wisp is dual-licensed under the Apache 2.0 License and MIT License. You can choose whichever fits your needs.

Is Wisp meant to replace ASP.NET Core?

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.

How can I get involved?

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.

Technical FAQ

Can I deploy a Wisp app as a single binary?

Yes, Wisp can be compiled into a self-contained single binary and a typical Wisp application binary should be under 80MB.

Does Wisp support templating?

Yes, Wisp uses the Fluid templating language, which is a C# implementation of the Shopify Liquid templating language.

What platforms are supported?

Wisp runs anywhere where .NET Core runs (Windows, Linux, macOS, BSD) and it's very easy to Dockerize and run in Kubernetes as well.

What about databases?

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.

Does Wisp support Dependency Injection?

Yes, by default, Wisp uses the Microsoft DI container and you can optionally pass in your own IServiceCollection instance.

How can I extend Wisp?

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.

Does Wisp support WebSockets?

Not yet but we are planning to implement WebSocket support in the future.

Can I replace the HTTP backend?

Yes! Wisp uses NetCoreServer by default but you can provide your own implementation of IHttpServer.