Ohhnews

分类导航

$ cd ..
foojay原文

Floci:一款基于GraalVM的高性能AWS模拟器

#云计算#aws#软件开发#graalvm#本地开发环境

目录

动机:为什么需要另一个 AWS 模拟器?

[LOADING...]

作为 Java 开发者,我们习惯于“本地优先”的开发模式。能够模拟云环境的工具对于保持紧密的反馈循环并将成本降至零至关重要。然而,生态系统已经发生了变化。我们中的许多人都感受到了以下痛点:

  • 强制身份验证:仅仅为了运行本地测试就需要登录或使用令牌。
  • 资源占用沉重:Docker 容器会消耗大量资源。
  • 启动缓慢:需要等待数秒才能使环境“就绪”。

我创建了 Floci(源自 floccus cloud formation)来解决这些具体痛点。它是一个 100% 开源、采用 MIT 许可证的替代方案,专为速度、隐私和简洁而设计。

技术优势:基于 Java 和 GraalVM 构建

Floci 不仅仅是另一个包装器。它使用现代 Java 技术栈(利用 JAX-RS、Quarkus 和 Vert.x)构建,并使用 GraalVM 编译为原生二进制文件。这一技术选择带来了几个立竿见影的优势:

1. 闪电般的“即时启动”性能

由于 Floci 是原生可执行文件,它绕过了传统的 JVM 预热期。

  • 启动时间:通常约为 24 毫秒。
  • 对开发者的影响:你可以为每一个单元测试启动一个新的 Floci 实例,而不会给构建时间增加任何可察觉的开销。

2. 极小的内存占用

Java 基础设施工具通常被认为很“重”。Floci 打破了这一刻板印象:

  • 空闲内存占用:约 13 MiB。
  • 镜像大小:约 90 MB。
  • 对开发者的影响:你可以在标准笔记本电脑上运行复杂的微服务架构,而不会导致 IDE 卡顿或风扇狂转。

3. 隐私与 CI/CD 的简洁性

Floci 基于“零摩擦”原则构建。

  • 无认证门槛:无需 API 密钥,无需遥测,无需注册账户。
  • 直接兼容:与标准的 AWS SDK 和 CLI 无缝协作。

功能覆盖范围

尽管体积小巧,但 Floci 功能强大。它目前支持超过 25 种 AWS 服务,包括:

  • 存储与消息传递:S3(支持对象锁定)、DynamoDB(支持 Streams)、SQS(标准/FIFO)。
  • 计算与逻辑:Lambda、Step Functions、EventBridge。
  • 身份与安全:Cognito、IAM、KMS。

它经过了严格测试,通过了 400 多项 AWS SDK 测试,确保你的本地代码行为与生产环境完全一致。

快速入门

你可以通过一条 Docker 命令启动 Floci:

docker run -p 4566:4566 hectorvent/floci

或者通过 docker-compose.yml

$ config
services:
  floci:
    image: hectorvent/floci:latest
    ports:
      - "4566:4566"

完整文档请参考此处

加入 Floci 社区

Floci 是 100% 开源且社区驱动的。无论你是想贡献代码、报告 Bug,还是建议新的服务实现,我们都欢迎你的参与。

我们的目标是为所有云原生开发者提供一个快速、稳定且真正开放的环境。欢迎访问代码仓库,如果你觉得它有用,请给它点个星(Star),让我们一起构建更好的本地开发体验。

链接:

网站:floci.io

GitHub:hectorvent/floci

Slack:floci.slack.com

文章 Introducing Floci: A High-Performance, GraalVM-Powered AWS Emulator 最早发布于 foojay