【Rust日报】2020-07-15 用Rust重写FORTRAN科学软件
chubaodb:分布式高可用的云原生,同时支持传统的分布式文档搜索及存储系统
chubaodb 是一个分布式高可用的云原生,同时支持传统的分布式文档搜索及存储系统,支持全文检索,聚合查询,向量搜索,标量搜索的功能,采用轻schema策略,尽可能提高了存储文档的灵活度。同时吸取其他类似软件的经验,初心于在有限的计算节点情况下,支持不限容量的存储及计算,同时尽可能低的学习成本,完成尽可能多的需求。
https://chubaofs.github.io/chubaodb/zh-CN/introduction.html
用Rust写的LSM-tree based 存储引擎
Rust项目中如果想用存储引擎的话主要是用rust-rocksdb或者Sled,前者是FFI调RocksDB后者是Bw树实现,唯独缺了原生的LSM-tree based实现,因此Fullstop000撸了一个wickdb
https://github.com/Fullstop000/wickdb
pre: 提供对unsafe代码的编译检查帮助
可以把它看成 safety-guard crate 和 safe crate的结合。比如,如果你的代码是像这样的:
fn init_foo() {
/* ... */
}
/// # Safety
///
/// `init_foo` must be called before you can call `use_foo`.
unsafe fn use_foo() {
/* ... */
}
fn main() {
init_foo();
unsafe {
// Safety: This is safe, because `init_foo` was called first.
use_foo();
}
}
用了 pre 的话就可以重写为这样:
fn init_foo() {
/* ... */
}
use pre::pre;
#[pre("is only called after `init_foo` was called")]
unsafe fn use_foo() {
/* ... */
}
#[pre]
fn main() {
init_foo();
unsafe {
#[assure(
"is only called after `init_foo` was called",
reason = "`init_foo` was called first"
)]
use_foo();
}
}
nightly rustdoc 现已提供 Ayu theme
点击查看: https://doc.rust-lang.org/nightly/std/
项目地址: https://github.com/Cldfire/ayu-rs
用Rust重写FORTRAN科学软件
博客地址: https://mckeogh.tech/post/shallow-water/
项目地址: https://github.com/rse-standrewscs/shallow-water
cargo-single : 更方便地构建单文件项目
作者认为对于一些比较小的程序,虽然cargo也不算重,但还是有点不够轻,所以就写了这个cargo-single。作为一个cargo子命令可以更快地创建较小的文件项目。
比如下面程序需要用到 rand crate:
// rand = "0.7"
use rand::Rng;
fn main() {
println!("{}", rand::thread_rng().gen_range(1, 11));
}
就可以把它存为 random.rs 然后用下列命令运行:
cargo single run random.rs
https://crates.io/crates/cargo-single
Rust 安全通告
最近Rust安全响应工作组最近注意到了有关影响crates.io Web应用程序中令牌生成的安全问题,并且在调查该问题时,我们发现了另一个影响crates.io API令牌的漏洞。
没有证据表明这是被别人利用的,但是出于谨慎的考虑,工作组选择撤销所有现有的API密钥。用户可以在crates.io/me上生成一个新的。
https://blog.rust-lang.org/2020/07/14/crates-io-security-advisory.html
- hbase源码系列(十一)Put、Delete在服务端是如何处理?
- 大数据如何帮飞机节油?
- hbase源码系列(十二)Get、Scan在服务端是如何处理?
- OpenStack:建立虚拟的渗透测试实验环境 – 网络篇
- Kettle 添加对应hadoop版本的支持
- Layui常用方法
- 使用Identity Server 4建立Authorization Server (4)
- 使用Identity Server 4建立Authorization Server (3)
- 使用Identity Server 4建立Authorization Server (2)
- 使用Identity Server 4建立Authorization Server (1)
- Java之异常处理
- 挖洞经验 | 看我如何利用SAML漏洞实现Uber内部聊天系统未授权登录
- 使用ichartjs生成图表
- 使用angular4和asp.net core 2 web api做个练习项目(四)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法