Feint 是一个零依赖的 Go 二进制文件,可在单个端口上模拟 Scaleway、Outscale 和 Exoscale 的 API,支持本地测试而无需云账户或费用。

Stars

24

7 天增长

暂无数据

Fork 数

0

开放 Issue

19

开源协议

Apache-2.0

最近更新

2026-07-30

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它通过自动扫描 SDK 表面并使用真实客户端进行一致性测试来衡量 API,不像传统 mock 服务器那样盲目响应;另外还可通过 Incus 提供真实的虚拟机,实现网络仿真。

适合谁使用

  • 使用 Scaleway、Outscale 或 Exoscale 的开发者
  • 本地测试 Terraform/OpenTofu 配置的 DevOps 工程师
  • 需要离线集成测试的云 SDK/CLI 维护者
  • 寻求节省云 API 成本的 CI 管道的团队

典型使用场景

  • 针对本地模拟器运行 Scaleway/Outscale/Exoscale CLI 命令
  • 无需云账户即可应用 Terraform 配置
  • 在 CI 中无需网络即可测试云 SDK 交互
  • 通过逼真的本地环境学习云 API 行为

项目优势

  • 单个静态二进制文件,零外部依赖
  • 每周自动扫描上游 API 表面变化并创建 PR
  • 一致性测试套件在 CI 中回放真实官方客户端(scw、oapi-cli、exo、Terraform)
  • 可选的真实机器模式(Incus)验证网络隔离、防火墙和 IP 地址

使用前须知

  • 仅覆盖 Scaleway 27%、Outscale 7%、Exoscale 3% 的上游 API(见“未分类”列)
  • 对象存储故意不纳入范围(需要 DNS/TLS 拦截)
  • 完整机器模式需要 Incus 和 OVN 安装,且未在 macOS 上测试

README 快速开始

Every European cloud needs an emulator

One binary. One port. No account, no bill.

AWS has LocalStack. Azure has Azurite. European clouds have had nothing, and their users test against a paying account or not at all.

feint emulates their APIs so that SDKs, CLIs and Terraform run against your laptop. Scaleway, Outscale and Exoscale are the first three — the architecture exists so a fourth changes nothing outside its own pack, and the scan that keeps them honest reads whatever SDK or API description that provider publishes.

The name is the fencing move: feinte, from Old French feindre — a movement made to look like the real one, so the opponent commits. That is the whole test here. The official client commits, and cannot tell.

The mark draws the same argument: a solid line for the surface actually served, a dashed one leaving the same corner at the same angle for what the provider announced and nobody has driven yet. docs/brand.md has the files and what may be done with them.

feint serve
#  feint dev listening on 127.0.0.1:4599
#    scaleway  55 routes
#    outscale  20 routes
#    exoscale  14 routes
#    machines  none

That is one endpoint for three clouds. They do not collide in URL space — Scaleway serves //v/…, Outscale POST /api/v1/, Exoscale /v2/ — so one http.ServeMux hosts all three, and the server refuses to start if two packs claim the same route.

Every command in that recording really ran: the emulator starts, the official scw CLI creates a server, the official Terraform provider applies a configuration through api_url, and the emulator stops. It is generated from tools/demo/quickstart.tape with mise run demo, so a command that breaks breaks the demo. A recording nobody can re-run is a claim, and the whole argument here is that a claim is not a proof.

A second tape covers the part

项目描述

Local emulator for European cloud APIs — Scaleway, Outscale, Exoscale. One binary, one port, no account.

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

deerwork-ai
精选
deerwork-ai GitHub avatar

deer-workflow

An open-source Dynamic Workflow runtime that combines deterministic TypeScript orchestration with replaceable Agent runtimes.

AI 与机器学习大语言模型
312
yaojingang
精选
yaojingang GitHub avatar

TokHub

TokHub is an open-source monitoring, recommendation, and OpenAI-compatible gateway system for AI API intermediaries, combining public status pages, supplier rankings, user workspaces, layered probing, metering, alerts, encrypted keys, and Docker self-hosting.

AI 与机器学习后端与 API
189
amitshekhariitbhu
精选
amitshekhariitbhu GitHub avatar

ai-agents-tutorial

A comprehensive step-by-step tutorial series that teaches AI agents from scratch, covering function calling, agent loops, ReAct, reflection, plan-and-execute, multi-agent systems, orchestration, evaluation, and related concepts like RAG, GraphRAG, and LangChain.

AI 与机器学习大语言模型
136