shelf_rate_limiter 1.0.1 copy "shelf_rate_limiter: ^1.0.1" to clipboard
shelf_rate_limiter: ^1.0.1 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}"');
5
likes
120
pub points
80%
popularity

Publisher

unverified uploader

Limit requests to your shelf backend server.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

shelf

More

Packages that depend on shelf_rate_limiter