Spry
A component-based web framework for Vala
Spry is a web framework that lets you build dynamic, interactive web applications using Vala. It features HTMX integration for reactive UIs, dependency injection for clean architecture, and a component model that keeps markup and logic together.
Whether you're building a simple web service or a complex interactive application, Spry provides the tools you need with full type safety and native performance.
Documentation
Get Started
Here's a minimal "Hello World" Spry application to get you started:
public class HelloPage : PageComponent {
public override string markup { get {
return """<!DOCTYPE html>
<html>
<body>
<h1>Hello, Spry!</h1>
</body>
</html>""";
}}
}
// In Main.vala
spry_cfg.add_page<HelloPage>(new EndpointRoute("/"));
Why Spry?
- Type-Safe — Full Vala type safety catches errors at compile time, not runtime.
- Component-Based — Build encapsulated, reusable components with markup and logic in one place.
- HTMX Integration — Create dynamic interfaces without writing JavaScript. HTMX handles the complexity.
- Dependency Injection — Clean architecture with Inversion of Control for services and stores.
- Native Performance — Compiled to native code for maximum throughput and minimal resource usage.
- Free & Open Source — Released under a permissive license, free to use for any project.