1 个不稳定版本

0.1.0 2022 年 3 月 4 日

#10#unleash

Apache-2.0

31KB
293

Unleash 的网络浏览器代理

Unleash 是一个功能标志 API 系统。这是一个接受 Unleash 上下文作为 GET 查询参数的网络服务,评估 Unleash API 中存在的所有开关,并返回包含它们状态的 JSON 文档。可以通过在查询字符串中传递 properties[name]=value 来提交自定义属性。处理百分比解码:一个百分比编码的名称或值将以解码形式传递给 Unleash API 客户端。

它还接受来自客户端的度量文档,并在传递到上游 Unleash API 之前对其进行汇总(在遭受 DDoS 攻击或类似情况时保护 API)。

此代理实现的合约并未明确指定;相反,它匹配 https://github.com/unleash-hosted/unleash-proxy-client-js/ 中的 JS 客户端所期望的 API;如果该 JS 客户端与该代理不兼容,则是一个错误。

当前代码库尚未实现变体(尽管由于 rust 客户端这样做应该很简单),也没有实现客户端身份验证(但可能在入口层而不是代理本身中完成)。

从性能方面来看,它今天显示出可接受的性能 - 每个请求大约 0.05 毫秒。

自定义策略

由于 Unleash 在客户端实现了自定义策略,因此自定义策略将需要自定义代理;请参阅 crate 中的 ProxyBuilder 结构以允许低触摸实现。

本代码版权(c)2020-2022 Cognite AS,保留所有权利。

它是在 Apache V2 许可证下授权的。

状态

虽然它不支持 Unleash 所做的所有事情,但它应该支持子集非常稳定。我们今天没有积极改进它,但它也没有被遗忘。

行为准则

请注意,该项目是按照贡献者行为准则发布的。通过参与此项目,您同意遵守其条款。

贡献

请像往常一样在 Github 上提交 PR。使用 Cargo test 运行测试套件,在提交之前使用 rustfmt 格式化代码。测试目前完全是手动的;那将是很好的改变。

依赖关系

~18–33MB
~513K SLoC