Search packages, repositories and app categories

Package detailsv1.1.5

shelf_router_generator

A package:build-compatible builder for generating request routers for the shelf web-framework based on source annotations.

AndroidiOSmacOSWindowsLinux
30-day downloads
22.6K
Likes
71
Pub points
140

Install package

flutter pub add shelf_router_generator

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

ShelfRouterGenerator is a build-time code generator for the Shelf web framework that creates request routers from source annotations. It enables developers to define routes using simple, readable annotations in Dart code, which are then processed during the build phase to generate efficient routing logic. This approach reduces boilerplate and improves type safety by catching routing errors at compile time. The package integrates seamlessly with the `package:build` system and supports all major platforms where Dart runs.

Use cases

  • Defining REST APIs with annotated route handlers
  • Generating type-safe route mappings
  • Automating router boilerplate in shelf-based servers
  • Enabling compile-time validation of route configurations
  • Simplifying complex routing structures in web services

Key features

  • Annotation-based route definition
  • Build-time code generation
  • Type-safe routing
  • Integration with package:build
  • Support for platform-agnostic server development

Suitable for

  • Developers using Shelf for backend services
  • Teams prioritizing compile-time safety
  • Projects requiring minimal routing boilerplate
  • Dart developers targeting multiple platforms
  • API-heavy applications with structured routing

Considerations

  • Requires build_runner for code generation
  • Limited runtime flexibility compared to dynamic routing
  • Needs understanding of build system workflows
  • Not suitable for runtime route configuration
  • May increase build times slightly

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Build Status

About Shelf

Shelf makes it easy to create and compose web servers and parts of web servers. How?

  • Expose a small set of simple types.
  • Map server logic into a simple function: a single argument for the request, the response is the return value.
  • Trivially mix and match synchronous and asynchronous processing.
  • Flexibility to return a simple string or a byte stream with the same model.

It was inspired by Connect for NodeJS and Rack for Ruby.

See the package:shelf readme for more information.

Packages

Package Description Issues Version
shelf A model for web server middleware that encourages composition and easy reuse. issues pub package
shelf_packages_handler A shelf handler for serving a packages/ directory. issues pub package
shelf_proxy A shelf handler for proxying HTTP requests to another server. issues pub package
shelf_router A convenient request router for the shelf web-framework, with support for URL-parameters, nested routers and routers generated from source annotations. issues pub package
shelf_router_generator A package:build-compatible builder for generating request routers for the shelf web-framework based on source annotations. issues pub package
shelf_static Static file server support for the shelf package and ecosystem. issues pub package
shelf_test_handler A Shelf handler that makes it easy to test HTTP interactions. issues pub package
shelf_web_socket A shelf handler that wires up a listener for every connection. issues pub package
_shelf_compliance HTTP/1.1 compliance and hardening tests. issues (not published)

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

Categories

Dependencies

Dependency list 8 items

Source repository

Projects using this package