跳转到主要内容

无废话的功能标志系统

项目描述

简介

功能标志不应该那么复杂。

Mr Flagly是一个用Rust编写的去中心化功能标志系统,具有其他语言的绑定。

它不依赖于第三方服务,也不需要您部署服务和数据库来管理。

支持的功能标志定义来源

  • URL
  • JSON值
  • 环境变量

Rust用法

设置您的标志服务

use mrflagly::service::{FlagService, FlagServiceOptions};
let flag_service = FlagService::new(FlagServiceOptions {
    finder_type: mrflagly::service::types::FlagFinderType::URL,
    url: "https://path/to/hosted/json/file",
    refresh_interval: 600,
    data: None,
    env_var: None,
})

然后,检查功能标志

if flag_service.enabled("feature_x", false /* default value */, Some(HashMap::from([(String::from("user_id"), String::from("123")),])) /* optional context */) {
    // do something
}

Python支持

import mrflagly

flag_service = mrflagly.FlagService(url="https://path/to/hosted/json/file")
if flag_service.enabled("feature_x", default=False, context={"foo": "bar"}):
    # do something

FlagService构造函数参数

  • finder_type: (NULL, URL, JSON, ENVVAR)
  • url: 下载功能标志JSON数据的URL
  • refresh_interval: 轮询功能标志数据端点的时间间隔
  • data: 如果不通过URL托管功能标志数据,可以将其作为JSON blob提供
  • env_var: 在环境变量中提供功能标志数据

JSON格式

功能标志数据的JSON格式

{
    "my_feature": {
        "rollout": 100
    },
    "my_feature_with_variants": {
        "rollout": 0,
        "variants" {
            "user_id": ["123"],
            "company_id": ["123"]
        }
    }
}

为特定客户激活的示例

JSON配置数据

{
    "feature": {
        "rollout": 0,
        "variants": {
            "customer_id": ["123"]
        }
    }
}

用法

import mrflagly
import json

flag_service = mrflagly.FlagService(
    data=json.dumps({"feature": {"rollout": 0, "variants": {"customer_id": ["123"]}}}))

if flag_service.enabled("feature_x", default=False, context={"customer_id": "123"}):
    # do something

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

本版本没有提供源分发文件。请参阅生成分发存档教程

已构建的分发

mrflagly-0.2.11-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86_64

mrflagly-0.2.11-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ i686

mrflagly-0.2.11-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86_64

mrflagly-0.2.11-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ i686

mrflagly-0.2.11-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp312-none-win_amd64.whl (963.6 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

mrflagly-0.2.11-cp312-none-win32.whl (905.0 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

mrflagly-0.2.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.2 MB 查看哈希值)

上传时间 CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

mrflagly-0.2.11-cp311-none-win_amd64.whl (963.3 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

mrflagly-0.2.11-cp311-none-win32.whl (905.0 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86

mrflagly-0.2.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.2 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

mrflagly-0.2.11-cp310-none-win_amd64.whl (963.3 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

mrflagly-0.2.11-cp310-none-win32.whl (905.0 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86

mrflagly-0.2.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.2 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

mrflagly-0.2.11-cp39-none-win_amd64.whl (963.6 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

mrflagly-0.2.11-cp39-none-win32.whl (905.2 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

mrflagly-0.2.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.2 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

mrflagly-0.2.11-cp38-none-win_amd64.whl (963.4 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

mrflagly-0.2.11-cp38-none-win32.whl (904.8 kB 查看哈希值)

上传时间: CPython 3.8 Windows x86

mrflagly-0.2.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ ARM64

mrflagly-0.2.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (963.5 kB 查看哈希值)

上传时间: CPython 3.7 Windows x86-64

mrflagly-0.2.11-cp37-none-win32.whl (905.1 kB 查看哈希值)

上传时间: CPython 3.7 Windows x86

mrflagly-0.2.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.7m manylinux: glibc 2.17+ x86-64

mrflagly-0.2.11-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.7m manylinux: glibc 2.17+ i686

mrflagly-0.2.11-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.7m manylinux: glibc 2.17+ ARMv7l

mrflagly-0.2.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

由以下组织支持