本周github有趣项目
1、trie-hard
针对小型稀疏映射优化的 Trie 数据结构的新实现。已在 Cloudflare 的Pingora中投入生产,用于每秒检测并删除 3000 万个请求中的特定标头,然后将其代理到最终目的地。
Rust 还有其他几种功能更全面的 trie 实现,因此如果您正在寻找更强大的工具,您可能需要查看radix_trie哪种工具似乎具有最佳功能和性能。如果您想要原始速度并且具有相同的狭窄用例,那么您来对地方了!
trie-hard 仅适用于批量加载。
Trie Hard 通过两种方式实现速度。
- 所有节点和边信息都保存在堆的连续区域中。这可以防止获取过程中在内存中跳转,并最大程度地提高子节点已出现在缓存中的机会。
- 节点和边之间的关系被编码为无符号整数中的各个位。
2、fast_float
快速而精确地实现数字类型的 C++ from_chars 函数:比 strtod 快 4 到 10 倍,是 GCC 12、Chromium、Redis 和 WebKit/Safari 的一部分
fast_float 库为 C++ from_chars 函数提供了快速的头文件实现,适用于float和double类型以及整数类型。这些函数将表示十进制值的 ASCII 字符串(例如1.3e10)转换为二进制类型。我们提供精确舍入(包括舍入为偶数)。根据我们的经验,这些fast_float函数比现有 C++ 标准库中的同类数字解析函数快很多倍。
具体来说,fast_float提供以下两个函数以类似 C++17 的语法解析浮点数(库本身只需要 C++11):
from_chars_result from_chars(const char* first, const char* last, float& value, ...); |
3、Java-FullStack-NeoVim-Configuration
欢迎开始或继续你的NeoVim之旅,我很高兴你能加入!这个仓库保存了我为Fullstack Java开发者提供的简单而有效的NeoVim配置代码,这些开发者的主要工作是使用TypeScript和React开发Spring Boot应用和前端。
当然,这只是你配置的一个起点,也只是定制化的冰山一角,所以当你使用不同的语言,或者需要更多功能时,我设计的配置结构都可以轻松定制。 这个配置资源库与我关于如何为Java开发者设置NeoVim的教程相辅相成,你可以在这里找到该教程,并获得我们正在配置的不同插件的解释。
4、rustc_codegen_clr
能够在 .NET 项目中使用 Rust。
rustc_codegen_clr是一个实验性的 Rust 到 .NET 编译器后端。它允许 Rust 编译器将 Rust 代码转换为 .NET 程序集。这种转换非常高级,并且保留了类型、字段/变量名称等内容。
该项目旨在提供一种在 .NET 中轻松使用 Rust 库的方法。它带有一个 Rust/.NET 互操作层,可让您轻松地从 Rust 与 .NET 代码进行交互:
use mychorizza::*; |
5、sqlx4k
适用于 PostgreSQL、MySQL 和 SQLite 的高性能 Kotlin Native 数据库驱动程序。
为 Kotlin Native 编写的适用于 PostgreSQL、MySQL 和 SQLite 的高性能、非阻塞数据库驱动程序。希望使用 Kotlin Native 构建高效的跨平台应用程序。
可以maxConnections从驱动程序构造函数中设置:
val db = PostgreSQL( |
// With named parameters: |
6、virgil
一种快速、轻量级的系统编程语言
Virgil 的编译器可为 JVM 生成优化的独立本机可执行文件、WebAssembly 模块或 JAR。
Virgil 专注于平衡静态类型语言中的这些主要特性:
- 类 - 用于基本的面向对象编程
- 功能——用于小规模重用功能
- 元组——用于高效聚合和统一处理多参数函数
- 类型参数——用于对类型进行强大而清晰的抽象
- 代数数据类型——用于轻松构建和匹配数据结构
7、maven-hocon-extension
该项目为 Maven 4 提供了一个 Hocon POM 解析器扩展。它允许使用Hocon语法编写 POM ,该语法是JSON语法 的超集。
要使用此扩展,您需要在您的中进行以下声明${rootDirectory}/.mvn/extensions.xml:
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.2.0"> |
这允许使用 Hocon 语法定义 POM:
modelVersion = 4.1.0 |
7、abstractness-instability-calculator
该应用程序计算 Java、Spring Boot 项目的抽象性和不稳定性指标,帮助开发人员分析其代码库的结构和依赖关系。
它通过分析应用程序模块包来遵循 Spring Modulith 的原则。这些是包含注释类的主包的直接子包@SpringBootApplication。理想情况下,这些包应该是功能层,而不是技术层(控制器、服务、存储库等)。
特征
- 扫描 Spring Boot 项目以识别包及其关系
- 计算每个包的抽象度、不稳定性以及与主序列的距离
- 提供网页界面,方便进行项目分析
- 使用交互式散点图可视化结果
- 依赖关系可视化
8、slice_deque
rust中环形缓冲区或循环缓冲区。
一般来说,你可以将 SliceDeque 视为一个具有 O(1) 个 pop_front 和 O(1) 个 push_front 方法的 Vec。