本周9个有趣项目go-backend-clean-architecture-chi等

有趣的项目、工具和库

1、KubeAI
Kubernetes 上的私有开放人工智能。
在 Kubernetes 上运行推理:LLM、嵌入、语音到文本。

  • 具有 API 兼容性的 OpenAI 替代品
  • 提供顶级 OSS 模型(LLM、Whisper 等)
  • 多平台:仅 CPU、GPU,即将推出:TPU
  • 从零开始扩展,根据负载自动扩展
  • 零依赖(无 Istio、Knative 等)
  • 包含聊天 UI(OpenWebUI)
  • 操作 OSS 模型服务器(vLLM、Ollama、FasterWhisper)
  • 通过消息传递集成(Kafka、PubSub 等)进行流/批量推理


2、DebageGPT
该项目展示了一个自主的人工智能代理,旨在利用大型语言模型 (LLM) 和语音识别/合成技术的力量参与辩论。该代理能够以结构化的方式理解和回应辩论,在辩论的各个阶段(从开始到结束)提供支持。这是一个创新的工具,可以通过提供战略性论点、反驳和反驳来显著提高辩论的质量,所有这些都是由注重逻辑一致性和说服力的人工智能生成的。


3、broadcast-box
Broadcast Box 可让您在亚秒级时间内向其他人广播。它设计简单易用且易于修改。我们编写 Broadcast Box 是为了展示即将进入广播领域的一些尖端技术。
想要为 Broadcast Box 的开发做出贡献吗?请参阅贡献
亚秒级延迟

Broadcast Box 使用 WebRTC 进行广播和播放。通过使用 WebRTC 代替 RTMP 和 HLS,您可以获得最快的体验。
最新视频压缩技术

使用 WebRTC,您可以访问最新的视频编解码器。使用 AV1,您可以发送相同质量的视频,所需带宽减少50% 。
全方位广播

WebRTC 允许您在同一会话中上传多个视频流。现在您可以直播多个摄像机角度,或实时分享互动视频体验!
广播公司提供转码

如果您想为所有用户提供良好的体验,转码是必不可少的。虽然生成转码的成本过高,但 WebRTC 提供了一种解决方案。使用 WebRTC,用户可以上传不同质量级别的相同视频。这可以降低服务器运营商的成本,而您仍然可以提供相同的体验。
面向所有人的广播

WebRTC 意味着任何人都可以成为广播员。有了 Broadcast Box,您可以使用 OBS 等广播软件。但是,另一种选择是直接从浏览器发布!刚开始使用流媒体的用户无需再担心比特率、编解码器。只需按一下按钮,您就可以使用 Broadcast Box 直接从浏览器进行直播。这使得全新的观众可以观看直播。


4、lady-deirdre
Lady Deirdre 是一个用于增量编程语言编译器、解释器和源代码分析器的框架。


5、ariasql
AriaSQL 是一个开源关系数据库服务器。AriaSQL 的设计目标是轻量级和快速,注重简单性和易用性。
特征

  • SQL1+手写解析器、词法分析器实现
  • BTree 索引
  • 优化的执行引擎/编译器
  • SQL Server(端口上的 TCP 服务器3695)
  • 用户身份验证和权限
  • 错误时支持回滚的原子事务
  • WAL(预写日志)
  • 从 WAL 恢复重放
  • 子查询
  • 聚合
  • 隐式连接
  • 行级锁定
  • 用户和权限


6、prime-mvc
Prime MVC 是一个用 Java 编写的模型视图控制器,根据Apache License 2.0获得许可。Prime MVC 是一个企业质量库,用于Inversoft的商业软件中。

最基本意义上的 MVC 架构模式提供了数据模型、处理 HTTP 请求的控制器和返回给用户或 API 调用者的视图的架构分离。
Prime MVC 严重依赖基于注释的配置和基于约定的布局。

例如,考虑以下 HTTP GET 请求
GET http://www.foo.bar/widget HTTP/1.1

Prime MVC 将解析名为的 Action(控制器)类WidgetAction并尝试调用名为的公共方法get()。
@Action通过在类定义中添加注释来识别主要 MVC 操作(控制器) 。


7、rust2go
Rust2Go 是一个项目,它为用户提供了一种从 Rust 调用 Golang 的简单有效方法,并提供原生异步支持。
特征

  • 从 Rust 到 Golang 的同步和异步调用
  • 高效的数据交换:无需序列化或套接字通信,但有 FFI
  • 简单的接口设计:除了原生的 rust,没有新发明的 IDL
如何使用
  1. 以受限的 Rust 语法定义结构和调用接口,并将生成的代码包含在同一个文件中。
  2. 使用以下方式生成 golang 代码rust2go-cli --src src/user.rs --dst go/gen.go
  3. 为你写一个build.rs项目。
  4. 然后,您可以使用生成的实现在 Rust 项目中调用 golang!

8、go-backend-clean-architecture-chi
Go 后端清洁架构 - Chi/Standard net/http

一个包含 Chi、MongoDB、JWT 身份验证中间件、测试和 Docker 的 Go(Golang)后端清洁架构项目。
您可以使用此项目作为模板,在此项目之上使用Go语言构建您的后端项目。

本项目使用的主要软件包

  • chi:Chi 是一个用 Go(Golang)编写的 HTTP Web 框架,使用标准库 net/http。它轻量且快速。
  • mongo go driver:MongoDB 的官方 Golang 驱动程序。
  • jwt:JSON Web Tokens 是一种开放的、行业标准的 RFC 7519 方法,用于在双方之间安全地表示声明。用于访问令牌和刷新令牌。
  • viper:用于从.env文件加载配置。使用 fangs 进行配置。查找、加载和解组 JSON、TOML、YAML、HCL、INI、envfile 或 Java 属性格式的配置文件。
  • bcrypt:bcrypt 包实现了 Provos 和 Mazières 的 bcrypt 自适应散列算法。
  • testify:一个具有常见断言和模拟的工具包,可以与标准库很好地配合使用。
  • mockery:用于测试的 Golang 模拟代码自动生成器。
  • 查看更多包裹go.mod。

完整的项目文件夹结构

.
├── Dockerfile
├── api
│   ├── controller
│   │   ├── error.go
│   │   ├── login_controller.go
│   │   ├── profile_controller.go
│   │   ├── profile_controller_test.go
│   │   ├── refresh_token_controller.go
│   │   ├── signup_controller.go
│   │   └── task_controller.go
│   ├── middleware
│   │   └── jwt_auth_middleware.go
│   └── route
│       ├── login_route.go
│       ├── profile_route.go
│       ├── refresh_token_route.go
│       ├── route.go
│       ├── signup_route.go
│       └── task_route.go
├── bootstrap
│   ├── app.go
│   ├── database.go
│   └── env.go
├── cmd
│   └── main.go
├── docker-compose.yaml
├── domain
│   ├── error_response.go
│   ├── jwt_custom.go
│   ├── login.go
│   ├── profile.go
│   ├── refresh_token.go
│   ├── signup.go
│   ├── success_response.go
│   ├── task.go
│   └── user.go
├── go.mod
├── go.sum
├── internal
│   └── tokenutil
│       └── tokenutil.go
├── mongo
│   └── mongo.go
├── repository
│   ├── task_repository.go
│   ├── user_repository.go
│   └── user_repository_test.go
└── usecase
    ├── login_usecase.go
    ├── profile_usecase.go
    ├── refresh_token_usecase.go
    ├── signup_usecase.go
    ├── task_usecase.go
    └── task_usecase_test.go

9、supertree
supertree是一个 Python 包,旨在以交互和用户友好的方式在 Jupyter Notebooks、Jupyter Lab、Google Colab 以及任何其他支持 HTML 渲染的笔记本中可视化决策树。使用此工具,您不仅可以显示决策树,还可以在笔记本环境中直接与它们交互。主要功能包括:

  • 能够缩放和平移大树,
  • 折叠和展开选定的节点,
  • 以直观且视觉上吸引人的方式探索树的结构。