mirror of
https://github.com/AderKonstantin/aderktech-chronark.com-.git
synced 2025-06-08 21:58:41 +03:00
49 lines
2.4 KiB
Plaintext
49 lines
2.4 KiB
Plaintext
---
|
|
title: "@upstash/ratelimit"
|
|
description: Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.
|
|
date: "2022-06-06"
|
|
url: https://upstash.com/blog/upstash-ratelimit
|
|
repository: upstash/ratelimit
|
|
published: true
|
|
|
|
---
|
|
|
|
In today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.
|
|
|
|
Upstash is a managed Redis-compatible database service designed for serverless applications.
|
|
|
|
`@upstash/ratelimit` is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:
|
|
|
|
- Fixed window
|
|
- Sliding window
|
|
- Leaky bucket
|
|
|
|
|
|
Using `@upstash/ratelimit` is straightforward. First, you need to install the package using npm:
|
|
|
|
```bash
|
|
npm install @upstash/ratelimit @upstash/redis
|
|
```
|
|
Then, you can use it in your application:
|
|
|
|
```ts
|
|
import { Ratelimit } from "@upstash/ratelimit"
|
|
import { Redis } from "@upstash/redis"
|
|
|
|
const ratelimit = new Ratelimit({
|
|
redis: new Redis({
|
|
url: "",
|
|
token: ""
|
|
}),
|
|
limiter: Ratelimit.slidingWindow(10, "10s"),
|
|
analytics: true
|
|
})
|
|
|
|
|
|
// Check if the client has exceeded the rate limit
|
|
const { success } = await ratelimit.limit("identifier")
|
|
```
|
|
|
|
In the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the `limit` function, passing the identifier. The function returns a Promise that resolves with `success` and some other useful data.
|
|
|
|
`@upstash/ratelimit` is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With `@upstash/ratelimit`, serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs. |