hammer
923
Stars
—
Forks
0
Watchers
—
Open Issues
待补全
许可证
Elixir
语言
—
创建时间
最近更新
项目能做什么
支持可插拔后端的 Elixir 速率限制器(Rate-limiter)。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Hammer
[](https://github.com/ExHammer/hammer/actions/workflows/ci.yml)
[](https://hex.pm/packages/hammer)
[](https://hexdocs.pm/hammer)
[](https://hex.pm/packages/hammer)
[](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 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建时间待补全,最近推送 |
| 社区活跃 | Star 923 / Fork 0 / Issue 0(数据支持,可自行核实) |
| 许可证 | 未检测到(需人工确认) |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。