shelf_rate_limiter 1.0.0 copy "shelf_rate_limiter: ^1.0.0" to clipboard
shelf_rate_limiter: ^1.0.0 copied to clipboard

Limit requests to your shelf backend server.

example/shelf_rate_limiter_example.dart

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:shelf_rate_limiter/shelf_rate_limiter.dart';
import 'package:shelf_rate_limiter/src/storage/memory_storage.dart';

void main() async {
  final memoryStorage = MemStorage();
  final rateLimiter = ShelfRateLimiter(
      storage: memoryStorage, duration: Duration(seconds: 60), maxRequests: 10);

  var handler = const Pipeline()
      .addMiddleware(logRequests())
      .addMiddleware(rateLimiter.rateLimiter())
      .addHandler(_echoRequest);

  var server = await shelf_io.serve(handler, 'localhost', 8080);

  // Enable content compression
  server.autoCompress = true;

  print('Serving at http://${server.address.host}:${server.port}');
}

Response _echoRequest(Request request) =>
    Response.ok('Request for "${request.url}"');
6
likes
140
points
1.71k
downloads

Publisher

unverified uploader

Weekly Downloads

Limit requests to your shelf backend server.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

shelf

More

Packages that depend on shelf_rate_limiter