【Rust日报】2024-04-13

原文约1400字,阅读约需4分钟。发表于:

Shiva - Rust 中的开源项目,用于解析和生成任何类型的文档 我在从事文档搜索引擎项目时产生了该项目的想法。有一个像 Apache Tika 这样的库,用 Java 编写,可以解析各种类型的文档。为了让我的搜索引擎正常工作,它必须能够从不同类型的文档(PDF、DOC、XLS、HTML、XML、JSON 等)中提取文本。我用 Rust 编写了搜索引擎本身。但不幸的是,在 Rust 世界中没有可以解析所有类型文档的库。 因此,我必须使用 Apache Tika 并从我的 Rust 代码中调用它。这种解决方案有什么缺点? 需要在每台将启动我的搜索引擎的计算机上安装 Java。 内存要求非常高。 Apache Tika 使用大量内存。因为Java有一个效率不是很高的垃圾收集器,所以它必须分配大量内存给JVM。 文章链接,https://www.reddit.com/r/rust/comments/1c2vs3f/shiva_open_source_project_in_rust_for_parsing_and/ Github 链接,https://github.com/igumnoff/shiva 我用 Rust 写了一个玩具 RDBMS! (寻求反馈) 这是我在 Rust 中的第一个项目(也是我第一个花费了不仅仅是一个周末才能完成的项目) FurDB 是一种 RDBMS,它使您能够指定每列的位大小。例如,您可以定义一行有两列,A 和 B,其中 A 占用 5 位,B 占用 3 位。这意味着数据库中的每一行恰好消耗 1 个字节的数据。 这是我为了学习 Actix、Clap、BitVec,当然还有 Rust 而制作的一个玩具项目。如果有人能给我一些反馈,我将不胜感激! 文章链接,https://www.reddit.com/r/rust/comments/1c2owlo/i_wrote_a_toy_rdbms_in_rust_looking_for_feedback/ Github 链接,https://github.com/madhavan-raja/furdb 我为 SQLite 的新 jsonb 格式编写了一个 serde 解析器 Hello Rustaceans! 我想介绍一下“serde-sqlite-jsonb”,这是一个新的 Rust 库,旨在将 SQLite 最近引入的 JSONB 列直接序列化和反序列化到您的数据结构中。它消除了从 JSONB 到 JSON,然后再到您自己的数据结构的双重转换,从而提高了效率和性能。 文章链接,https://www.reddit.com/r/rust/comments/1c2kc78/i_wrote_a_serde_parser_for_sqlites_new_jsonb/ Github 链接,https://github.com/lovasoa/serde-sqlite-jsonb From 日报小组 TOM 社区学习交流平台订阅: Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区

Shiva是一个用Rust编写的开源项目,用于解析和生成任何类型的文档。它旨在为文档搜索引擎项目提取不同类型文档的文本。该项目使用Java库Apache Tika来解析文档。然而,这种解决方案存在一些缺点,如需要在每台计算机上安装Java和高内存要求。另一个提到的项目是FurDB,一个用Rust编写的玩具关系型数据库管理系统。它允许指定每列的位大小,优化数据存储。最后,介绍了一个针对SQLite的新jsonb格式的serde解析器,旨在提高效率和性能。

相关推荐 去reddit讨论
  1. Google 发布「AI 全家桶」反击 GPT-4o !搜索引擎罕见大更新, 121 句「AI」道尽焦虑
    Google在Google I/O发布会上推出了多种新产品和升级,包括Gemini大模型、Gemma多模态大模型、AI in Google Workspa...
  2. 简单是优势,但为何复杂性还受欢迎?
    文章探讨了简单性和复杂性的优劣。复杂性在某些情况下更受欢迎,因为它传达了努力、精通和创新的信号。然而,简单性更易理解、使用、构建和维护,具有较低的运营成本...
  3. 一目十行:上下文快速阅读法
    基于上下文关系的阅读方法强调理解文本的整体语境,通过识别句子、段落甚至整篇文章中的逻辑关系和线索,来解读文本的含义。实践方法包括上下文预测、语境线索、重点...
  4. 太贴心!OpenAI发布了类人化重大版本:GPT-4o
    OpenAI发布了GPT-4o,具有实时翻译、情绪检测、语音指令理解、声音合成和图像理解等功能。GPT-4o将通过API免费提供给用户。OpenAI还发布...
  5. Python中读写Parquet文件的方法
    Apache Parquet是一种流行的列式存储格式,使用pyarrow包可以轻松读写Parquet文件。可以转换DataFrame为Parquet文件,...
  6. 使用 braft 构建应用,应该关注哪些指标?
    本文介绍了使用braft构建应用时需要关注的指标。braft是一个C++ raft框架,开发者可以基于其抽象接口实现自己的业务逻辑。文章从metrics入...
  7. Python读取NetCDF文件-裁剪&计算
    这篇文章介绍了使用xarray包处理NetCDF文件的方法。xarray是基于pandas的数据结构构建的,可以方便地处理多维数组数据。文章还介绍了如何根...
  8. How to Use Stable Diffusion Effectively
    稳定扩散是一个由多个组件和参数组成的流水线,它们共同工作产生输出。模型是流水线中最重要的组件之一,不同版本的模型会对输出产生不同影响。选择合适的模型、采样...
  9. sqlx: 一个优秀的rust异步SQL库
    Rust生态圈中的sqlx库是一个功能齐全的数据库访问和查询构建器库,支持多种数据库。它具有异步、编译时检查查询、与数据库无关、纯Rust等特点。sqlx...
  10. Python 潮流周刊#50:我最喜欢的 Python 3.13 新特性!
    本期刊共分享了12篇文章、11个开源项目和2则音视频,涵盖Python 3.13新特性、Asyncio工作原理、Python文件处理、数据科学错误、加速N...