# lets-blade/blade

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/lets-blade-blade).**

5,878 stars · 1,157 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/lets-blade/blade
- Homepage: https://lets-blade.github.io
- awesome-repositories: https://awesome-repositories.com/repository/lets-blade-blade.md

## Description

Blade is a lightweight Java MVC web framework built on an embedded Netty server. It packages the entire web application into a single executable JAR that starts the server on launch, following the MVC pattern with fast request routing and minimal configuration. The framework supports plugin-based extensibility, allowing third-party modules to add features like template rendering and static asset serving.

The framework distinguishes itself through lambda-style route registration, where routes are defined using lambda expressions that map HTTP methods and URL patterns directly to handler functions at startup. It includes a middleware pipeline architecture that executes pre-request hooks in a chain before route handlers, enabling cross-cutting concerns like logging and validation. Typed parameter extraction automatically converts path and query parameters from URLs into typed Java objects, while the plugin system loads third-party modules at runtime to extend core functionality without modifying the framework source code.

Blade handles RESTful route definition, file uploads, query parameter parsing, and JSON response serialization. It serves static assets from WebJars bundled inside the application JAR without extra configuration and renders dynamic HTML by integrating with external template engines. The framework is packaged as a standalone executable JAR that runs the embedded Netty server on launch.

## Tags

### Software Engineering & Architecture

- [Lightweight Java Implementations](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks/lightweight-java-implementations.md) — Provides a lightweight Java MVC framework with embedded Netty server and minimal configuration.
- [Java Web](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks/java-web.md) — Provides a lightweight Java MVC framework for building web applications with fast request routing and minimal configuration.
- [Plugin-Based Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-extensibility.md) — Supports third-party plugins to extend core functionality like template rendering and static asset serving.
- [Third-Party Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins.md) — Loads third-party modules to add new functionality without modifying the core application code. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))
- [Request Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-middleware.md) — Executes hook functions on every matching request before the route handler runs for cross-cutting concerns. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))

### Web Development

- [Netty-Based Servers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/application-servers/concurrent-server-base-classes/netty-based-servers.md) — Runs an embedded Netty HTTP server inside the application JAR, handling all I/O without an external container.
- [Middleware Architectures](https://awesome-repositories.com/f/web-development/middleware-architectures.md) — Executes pre-request hooks in a chain before the route handler for cross-cutting concerns like logging.
- [Lambda-Based Route Definitions](https://awesome-repositories.com/f/web-development/route-handlers/lambda-based-route-definitions.md) — Maps HTTP methods and URL patterns to handler functions using lambda expressions for REST API building.
- [Functional Route Handlers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/http-frameworks/http-route-handlers/pattern-based-route-mapping/functional-route-handlers.md) — Maps HTTP methods and URL patterns to handler functions using lambda expressions at startup. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))
- [Dynamic Template Rendering](https://awesome-repositories.com/f/web-development/dynamic-template-rendering.md) — Generates HTML views by integrating with template engines, separating presentation logic from application code. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))
- [HTML Templating Engines](https://awesome-repositories.com/f/web-development/html-templating-engines.md) — Renders dynamic HTML by plugging into external template engines, separating view logic from controllers.

### Programming Languages & Runtimes

- [Executable JAR Packagings](https://awesome-repositories.com/f/programming-languages-runtimes/java-jar-executions/executable-jar-packagings.md) — Packages the entire web application into a single executable JAR that starts the embedded server on launch. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))

### Networking & Communication

- [Pre-Request Logic Hooks](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-execution/pre-request-logic-hooks.md) — Executes callback functions before every matching request for setup, logging, or validation tasks. ([source](https://cdn.jsdelivr.net/gh/lets-blade/blade@main/README.md))

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Lightweight and modular web framework.
