1 个不稳定版本
0.1.0 | 2022 年 3 月 4 日 |
---|
#10 在 #unleash
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