登录 注册
开发者工具自动化与工作流AI 模型与开发框架 elixirelixir-langphoenixphoenix-frameworkrate-limiterrate-limiting
923
Stars
48
Forks
5
Watchers
0
Open Issues
MIT
许可证
Elixir
语言
2017-06-01
创建时间
2026-11-05
最近更新

项目能做什么

支持可插拔后端的 Elixir 速率限制器(Rate-limiter)。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Hammer

[![Build Status](https://github.com/ExHammer/hammer/actions/workflows/ci.yml/badge.svg)](https://github.com/ExHammer/hammer/actions/workflows/ci.yml)
[![Hex.pm](https://img.shields.io/hexpm/v/hammer.svg)](https://hex.pm/packages/hammer)
[![Documentation](https://img.shields.io/badge/documentation-gray)](https://hexdocs.pm/hammer)
[![Total Download](https://img.shields.io/hexpm/dt/hammer.svg)](https://hex.pm/packages/hammer)
[![License](https://img.shields.io/hexpm/l/hammer.svg)](https://github.com/ExHammer/hammer/blob/master/LICENSE.md)

**Hammer** is a rate-limiter for Elixir with pluggable storage backends. Hammer enables users to set limits on actions performed within specified time intervals, applying per-user or global limits on API requests, file uploads, and more.

## Installation

Hammer is [available in Hex](https://hex.pm/packages/hammer). Install by adding `:hammer` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:hammer, "~> 7.0"}
  ]
end
```

### Installing with Igniter

If you use [Igniter](https://hexdocs.pm/igniter), a single command adds the dependency, generates a
`MyApp.RateLimit` module and adds it to your application's supervision tree:

```sh
mix igniter.install hammer
```

Pass `--backend atomic` or `--backend redis` to pick a backend other than the default `:ets`.
The `redis` option also adds the [`hammer_backend_redis`](https://hex.pm/packages/hammer_backend_redis)
dependency. If Hammer is already in your project, run `mix hammer.install` directly.

Hammer has no global configuration: each limit is defined where it is checked, with
`MyApp.RateLimit.hit(key, scale, limit)`. See the [Tutorial](https://hexdocs.pm/hammer/tutorial.html)
for how to compose keys and use the limiter as a plug.

## Available Backends

Atomic backends are single-node rate limiting but will be the fastest option.

- [Hammer.ETS](https://hexdocs.pm/hammer/Hammer.ETS.html) (default, can be [distributed](./guides/distributed-ets.md))
- [Hammer.Atomic](https://hexdocs.pm/hammer/Hammer.Atomic.html)
- [Hammer.Redis](https://github.com/ExHammer/hammer-backend-redis)
- [Hammer.Mnesia](https://github.com/ExHammer/hammer-backend-mnesia)

## Available Algorithms:

Each backend supports multiple algorithms. Not all of them are available for all backends. The following table shows which algorithms are available for which backends.

| Algorithm | Backend |
| --------- | ------- |
| [Hammer.Atomic.FixWindow](https://hexdocs.pm/hammer/Hammer.Atomic.FixWindow.html) | [Hammer.Atomic](https://hexdocs.pm/hammer/Hammer.Atomic.html) |
| [Hammer.Atomic.FixWindowPerKey](https://hexdocs.pm/hammer/Hammer.Atomic.FixWindowPerKey.html) | [Hammer.Atomic](https://hexdocs.pm/hammer/Hammer.Atomic.html) |
| [Hammer.Atomic.LeakyBucket](https://hexdocs.pm/hammer/Hammer.Atomic.LeakyBucket.html) | [Hammer.Atomic](https://hexdocs.pm/hammer/Hammer.Atomic.html) |
| [Hammer.Atomic.TokenBucket](https://hexdocs.pm/hammer/Hammer.Atomic.TokenBucket.html) | [
阅读完整原文

商业机会分析 AI 生成

Hammer Dashboard (Phoenix LiveView 实时监控与动态配置控制台)

产品构想模仿 Oban Web 商业化模式,为 Hammer 开发闭源/商业授权的 LiveView 扩展面板,提供实时监控与动态限流规则热调整。
核心功能实时限流/命中率图表可视化、动态修改每 Key 限流阈值与时间窗口(无需重启应用)、封禁/白名单即时生效管理、限流事件审计与告警通知。
目标用户采用 Elixir/Phoenix 的中小型企业团队、SaaS 创始人、DevOps 工程师。
难度/周期中等 · 1 - 2 个月 · 成本:开发机器与文档托管,几近零成本
收费模式单一项目商业许可证 / 企业终身授权(参考 Oban Web 按席位或实例定价)
竞争风险Elixir 开发者总体体量偏小,客群天花板相对有限;部分团队可能自行开发简易管理界面。
依据 已验证事实

Hammer Metering (API 配额管理与 Stripe 计量计费集成插件)

产品构想基于 Hammer 的限流算法扩展出面向商业 API 的用量计量与配额系统,自动对接计费平台。
核心功能阶梯式月度/日度 Token 与请求计量、超额自动降级/阻断、Stripe 按量计费(Metered Billing)自动同步、租户配额账单报表导出。
目标用户构建 API 优先(API-first)产品的 Elixir 创业团队、微服务提供商。
难度/周期中等 · 2 - 3 个月 · 成本:极低(测试用 Stripe 账户与云服务器)
收费模式核心代码双重许可(AGPL + 商业许可)或提供按月订阅的企业版扩展包
竞争风险涉及财务账单计量,对数据强一致性与容错要求极高,存在对齐误差带来的客诉风险。
依据 尚需验证的假设

Hammer Shield (企业级防爬虫与自适应威胁阻断模块)

产品构想在基础限流之上提供高级安全能力,结合行为分析与 IP 威胁库,实现自适应限流防御。
核心功能自适应滑动窗口限制、异常行为(如凭证撞库)自动加权惩罚、IP 信誉库联动自动拉黑、分布式节点(Redis/Mnesia)状态快速广播。
目标用户面向公网、遭受撞库或恶意爬取的 Elixir 电商平台、金融工具及内容平台企业。
难度/周期高 · 3 - 4 个月 · 成本:IP 威胁情报库数据源接入成本、压测与集群测试服务器费用
收费模式按企业节点规模的年度订阅服务,并附带安全配置咨询与 SLA 支持
竞争风险Cloudflare 等边缘 CDN 层已解决大部分基础防刷需求,应用层安全模块易被替代。
依据 AI推测
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
anoma/anoma 中文介绍暂未生成
Reference implementation of Anoma
33,547 Elixir
plausible/analytics 中文介绍暂未生成
Open source, privacy-first web analytics. Lightweight, cooki
29,825 Elixir
elixir-lang/elixir 中文介绍暂未生成
Simple from zero to scale
26,715 Elixir
asdf-vm/asdf 中文介绍暂未生成
Extendable version manager with support for Ruby, Node.js, E
25,621 Go
phoenixframework/phoenix 中文介绍暂未生成
Peace of mind from prototype to production
23,216 Elixir
h4cc/awesome-elixir 中文介绍暂未生成
A curated list of amazingly awesome Elixir and Erlang librar
13,167 Elixir
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2017-06-01,近 30 天仍在推送
社区活跃Star 923 / Fork 48 / Issue 0(数据支持,可自行核实)
许可证MIT
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

快速开始(以仓库 README 为准)
git clone https://github.com/ExHammer/hammer.git
cd hammer
# 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
阅读原仓库文档
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。