登录 注册
其他 feature-flagspercentageredisrolloutruby
2,905
Stars
211
Forks
59
Watchers
—
Open Issues
MIT
许可证
Ruby
语言
2010-07-18
创建时间
2026-10-29
最近更新

项目能做什么

基于 Redis 的 Feature Flags(特性开关)管理工具。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

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

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

Fast feature flags.

Upgrading from Rollout 2? Follow the [Rollout 3 upgrade guide](docs/upgrading-to-v3.md)
before updating your dependencies.

[![Gem Version](https://badge.fury.io/rb/rollout.svg)](https://badge.fury.io/rb/rollout)
[![CI](https://github.com/fetlife/rollout/actions/workflows/test.yml/badge.svg)](https://github.com/fetlife/rollout/actions/workflows/test.yml)
[![Code Climate](https://codeclimate.com/github/FetLife/rollout/badges/gpa.svg)](https://codeclimate.com/github/FetLife/rollout)
[![Test Coverage](https://codeclimate.com/github/FetLife/rollout/badges/coverage.svg)](https://codeclimate.com/github/FetLife/rollout/coverage)

## Install it

```bash
gem install rollout -v '~> 3.1'
gem install rollout-redis-adapter -v '~> 0.1'
```

```ruby
gem "rollout", "~> 3.1"
gem "rollout-redis-adapter", "~> 0.1"
```

Active Record applications can use `rollout-active_record-adapter` instead of
`rollout-redis-adapter`. See the [Active Record adapter README](rollout-active_record-adapter/README.md).
To copy current feature state from Redis, see
[Migrate from Redis](rollout-active_record-adapter/README.md#migrate-from-redis).

## How it works

Initialize a rollout object. I assign it to a global var.

```ruby
require "redis"
require "rollout"
require "rollout-redis-adapter"

$redis = Redis.new
$rollout = Rollout.new(adapter: Rollout::Adapters::Redis.new($redis))
```


Update data specific to a feature:

```ruby
$rollout.set_feature_data(:chat, description: 'foo', release_date: 'bar', whatever: 'baz')
```

Check whether a feature is active for a particular user:

```ruby
$rollout.active?(:chat, User.first) # => true/false
```

Check whether a feature is active globally:

```ruby
$rollout.active?(:chat)
```

You can activate features using a number of different mechanisms.

## Groups

Rollout ships with one group by default: "all", which does exactly what it
sounds like.

You can activate the all group for the chat feature like this:

```ruby
$rollout.activate_group(:chat, :all)
```

You might also want to define your own groups. We have one for our caretakers:

```ruby
$rollout.define_group(:caretakers) do |user|
  user.caretaker?
end
```

You can activate multiple groups per feature.

Deactivate groups like this:

```ruby
$rollout.deactivate_group(:chat, :all)
```

Groups need to be defined every time your app starts. The logic is not persisted
anywhere.

## Specific Users

You might want to let a specific user into a beta test or something. If that
user isn't part of an existing group, you can let them in specifically:

```ruby
$rollout.activate_user(:chat, @user)
```

Deactivate them like this:

```ruby
$rollout.deactivate_user(:chat, @user)
```

## User Percentages

If you're rolling out a new feature, you might want to test the waters by
slowly enabling it for a percentage of your users.

```ruby
$rollout.activate_percentage(:chat, 20)
```

The algorithm for determining which users get let in is this:

```ruby
Zlib.crc32(user.id.t
阅读完整原文

项目深度分析 AI 生成

开箱即用的现代化 Rollout 管理控制台(SaaS / 自托管插件)

产品构想基于 Rollout 的底层存储(Redis/ActiveRecord),构建一个独立且具备鉴权、审计日志、多环境支持的现代化 UI 控制面板,弥补原库缺乏原生企业级 UI 的不足。
核心功能百分比可视化滑块调整、用户/组白名单管理、操作审计日志(谁在何时切换了开关)、多环境(Staging/Prod)同步。
目标用户使用 Rollout 的工程团队、技术负责人及产品发布团队。
难度/周期中等 · 1-2 个月 · 成本:低(基础 Web 框架开发与轻量测试服务器)
收费模式开源核心面板,企业版提供 SSO、多租户与 RBAC 权限控制;或按活跃席位收取订阅费。
竞争风险市场上已有 LaunchDarkly 等成熟 SaaS,直接竞争压力大;自建轻量工具愿付费意愿需验证。
依据 已验证事实

自动故障降级与金丝雀监控联动扩展(Degrade / Metrics 集成)

产品构想结合原项目提及的自动熔断思路(如结合 Sentry、Datadog),开发一个根据错误率或性能指标自动回滚/关闭 Feature Flag 的自动化监控与触发服务。
核心功能告警 Webhook 接入、自动关停开关、异常恢复后自动恢复放量、灰度发布健康度面板。
目标用户中大型高流量 Ruby 架构团队、SRE 工程师。
难度/周期中等 · 1.5-3 个月 · 成本:低至中等(需维护各类监控平台的集成与测试环境)
收费模式按受保护的端点数或开关数量收取月度服务费;自托管企业授权许可(License key)。
竞争风险依赖第三方监控服务稳定性;对高可用和实时性要求极高,存在误关核心功能的风险。
依据 数据支持的判断

从开源 Rollout 迁移至企业级 Feature Flag 的咨询与定制开发服务

产品构想为长期依赖 Rollout 的老旧系统提供迁移咨询、多语言兼容 SDK 开发,以及针对海量用户的分桶算法优化方案。
核心功能现有 Redis 数据平滑迁移方案、多语言(Go/Node.js)Rollout 兼容库、本地私有化高可用方案设计。
目标用户正在从 Ruby 单体演进至微服务架构、或面临合规审计压力的技术团队。
难度/周期低 · 持续/按项目交付 · 成本:极低(主要是个人工时投入)
收费模式按咨询人天或交付项目包收费。
竞争风险项目制交付难以规模化,客户线索获取成本高。
依据 AI推测
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

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

相似项目数据正在完善中,暂不展示(避免误导)

项目优势与风险

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

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。