1、UXsim
纯 Python 中的网络交通模拟器
UXsim是一款免费的开源宏观和中观网络交通流模拟器,用 Python 编写。它模拟汽车旅行者的移动和道路网络中的交通拥堵情况。它适用于模拟大规模(例如城市规模)的交通现象。UXsim 因其简单、轻量和可自定义的功能而特别适用于科学和教育目的,但用户可以自由地将 UXsim 用于任何目的。
主要特点
- 简单、轻量且易于使用的动态网络流量现代标准模型的 Python 实现
- 宏观交通模拟:30秒内模拟城市中超过6万辆汽车
- 动态交通分配:给定网络和时间相关 OD 需求的交通流模拟
- 学术/专业交通研究中常用的理论有效模型
- 实施交通控制/管理方案,如出租车/共享出行、交通信号、道路收费等
- 模拟结果的基本分析及其导出到 pandas.DataFrame 和 CSV 文件
- 使用 matplotlib 对模拟结果进行可视化;提供交互式 GUI
- 由于采用纯 Python 实现,因此灵活且可定制;也可以直接与其他基于 Python 的框架集成,例如用于深度强化学习交通控制的 PyTorch
- 主要代码uxsim.py只有约1800行,用户可以轻松理解和自定义
2、Python StateMachine
欢迎使用 python-statemachine,这是一个直观而强大的状态机库,旨在为开发人员带来出色的体验。我们提供Python 风格且富有表现力的 API,用于在同步或异步 Python 代码库中实现状态机。
特征
- 基本组件:轻松定义状态、事件和转换来模拟您的逻辑。
- 动作和处理程序:将动作和处理程序附加到状态、事件和转换,以动态控制行为。
- 条件转换:实现Guard和Validators来有条件地控制转换,确保它们仅在满足特定条件时发生。
- 完全异步支持:享受完全异步支持。等待事件,并异步调度回调,以实现与异步代码库的无缝集成。
- 完全同步支持:使用来自同步代码库的相同状态机,无需任何修改。
- 声明性和简单的 API:利用干净、优雅且易读的 API 来定义您的状态机,使其易于维护和理解。
- 观察者模式支持:注册外部和通用对象来观察事件并注册回调。
- 解耦设计:通过解耦的“状态机”和“模型”设计分离关注点,促进更清晰的架构和更易于维护。
- 正确性保证:在类定义时通过验证确保正确性:
- 确保恰好一种initial状态。
- 不允许状态转换final。
- 要求所有非最终状态进行持续转变。
- 保证如果声明了最终状态,则所有非最终状态至少有一条通往最终状态的路径。
- 验证状态机图形表示具有单个组件。
- 灵活的事件分派:分派带有任何额外数据的事件,使其可用于所有回调,包括动作和保护。
- 依赖注入:将需要的参数注入到回调中。
- 图形表示:生成并输出状态机的图形表示。从命令行、运行时甚至在 Jupyter 笔记本中创建图表。
- 国际化支持:提供不同语言的错误消息,使全球受众都可以使用该库。
- 强大的测试:代码库 100% 经过自动化测试,包括所有文档示例,确保可靠性。发布遵循语义版本控制,以实现可预测的发布。
- 领域模型集成:使用 Mixins 与领域模型无缝集成。
- Django 集成:自动发现 Django 应用程序中的状态机。
3、Netflix GraphQL 联邦复制演示
该项目演示了 Netflix GraphQL 联合架构的简化版本。它旨在将来自多个微服务的数据集成到单个统一的 GraphQL API 中,从而提供一种可扩展且模块化的数据管理和检索方法。此设置对于不同团队管理不同域但需要统一数据查询接口的应用程序特别有用。
架构概述
该架构模仿了 Netflix 的 GraphQL Federation,其中具有自己的架构和数据源的多个服务统一在单个 GraphQL 网关下。这允许无缝集成和查询不同的数据集。
- 联邦服务充当 GraphQL 网关。集成来自 Actor 和 Director 服务的架构。通过委托给适当的服务来处理复杂查询。将来自多个来源的数据聚合并转换为单个响应。
- Actor Service 管理 Actor 数据。提供用于查询 Actor 详细信息的 GraphQL API。独立且模块化,易于维护和扩展。
- Director 服务管理 Director 数据。公开 GraphQL API 以查询 Director 信息。独立运行,便于独立开发和扩展。
项目结构
该项目由三个独立的 Java 模块组成,每个模块都作为 Spring Boot 3 应用程序实现:
- 联合服务 联合服务是所有 GraphQL 查询的入口点。它充当中央枢纽,集成来自其他两个服务的架构,并向客户端提供统一的 GraphQL 架构。此服务从 Actor 和 Director 服务获取数据,并将它们聚合为一个有凝聚力的响应。
- 演员服务 演员服务负责管理和提供与演员相关的数据。它提供专用的 GraphQL 端点来检索演员信息,例如姓名和姓氏。此服务独立运行,并公开自己的 GraphQL API 以进行数据检索。
- 导演服务 导演服务处理与导演相关的数据。与演员服务类似,它提供专用的 GraphQL 端点来获取导演详细信息。此服务也独立运行并提供自己的 GraphQL API。
怎么运行的
- 客户端查询:客户端向联合服务发送 GraphQL 查询。
- 模式集成:联合服务集成了来自 Actor 和 Director 服务的模式。
- 数据检索:联合服务处理查询并向 Actor 和 Director 服务发出 HTTP GraphQL 请求以获取必要的数据。
- 数据聚合:检索到的数据被聚合并转换为统一的响应。
- 响应:联邦服务将聚合数据发送回客户端。
4、llama-zip
llama-zip是一个用于无损文本压缩和解压缩的命令行实用程序。
它通过利用用户提供的 LLM(大型语言模型)作为算术编码器的概率模型来发挥作用。这允许llama-zip实现结构化或自然语言文本的高压缩比,因为需要更少的位来编码 LLM 高度可信地预测的标记。
通过使用滑动上下文窗口,llama-zip不受 LLM 最大上下文长度的限制,可以处理任意长的输入文本。
主要限制llama-zip是压缩和解压缩的速度受到 LLM 推理速度的限制。
llama-zip支持三种操作模式:
- 压缩模式-c(由或标志指定--compress):要压缩的字符串可以作为参数提供或通过管道传输到 stdin。压缩输出将以 base64 编码并打印到 stdout。
- 解压缩模式-d(由或标志指定--decompress):压缩字符串可以作为参数提供或通过管道传输到 stdin。解压缩的输出将打印到 stdout。
- 交互模式-i(由或标志指定--interactive):显示提示,用户可以在其中输入要压缩或解压缩的字符串。输入 base64 编码的字符串时,将对其进行解压缩;否则,将压缩输入的字符串。每次压缩或解压缩操作后,系统都会提示用户输入另一个字符串。要退出交互模式,请按Ctrl+C。
- 注意:如果您想要压缩完全由 base64 字符组成的字符串(即字母、数字、+和/,没有任何其他符号或空格),则必须直接使用压缩模式,因为交互模式假定 base64 编码的字符串需要解压缩,如果输入不是来自压缩操作,则会导致无意义的输出。或者,如果您不介意字符串被压缩时带有该额外字符,则可以在字符串中添加非 base64 字符(例如末尾的空格)。
5、supa-spring-kt
该项目演示了如何将 Supabase 集成到使用 Spring Boot 构建的 RESTful 服务。此后端充当中间件,通过 RESTful API 处理来自多个客户端的请求,然后与 Supabase 交互。常见用例是使用此服务向多个客户端公开 API,这样每个客户端就不必通过特定的 SDK 与 Supabase 交互。
Supabase-kt是Supabase为Kotlin编程语言提供的官方客户端库。Supabase是一个开源的Firebase替代品,提供了多种后端服务,如托管的PostgreSQL数据库、实时订阅、身份验证、文件存储等。为了方便在不同编程语言和框架中使用Supabase,他们提供了多种语言的客户端库。Supabase-kt就是专门为Kotlin语言设计的客户端库,它封装了与Supabase后端进行交互的API,允许Kotlin开发者在Android、服务器端或任何支持Kotlin的环境中,轻松集成Supabase提供的各种服务,例如:
- 使用postgrest-kt与Supabase数据库进行CRUD操作
- 使用gotrue-kt实现用户认证和授权
- 使用realtime-kt订阅数据库的实时更新
- 使用storage-kt管理文件存储
- 使用functions-kt调用部署在Supabase的无服务器函数
6、entropy
Entropy 是一个 CLI 工具,它将扫描你的代码库以查找高熵行,这些行通常是机密。
7、coolify
Coolify 是 Heroku / Netlify / Vercel / 等的开源且可自托管的替代品。
它可以帮助您在自己的硬件上管理服务器、应用程序和数据库,您只需要 SSH 连接。您可以管理 VPS、裸机、Raspberry PI 等任何东西。
想象一下,如果您可以拥有自己的服务器,享受云的便利。这就是Coolify。
没有供应商锁定,这意味着您的应用程序/数据库/等的所有配置都保存到您的服务器。因此,如果您决定停止使用 Coolify(哦不),您仍然可以管理正在运行的资源。您只是失去了自动化和所有魔力。