tx-rs - 一個提供 wrtie ahead 的原子交易庫
剛出來,僅供了解,這里的“交易”是指業務的原子性,常見于數據庫中。與區塊鏈或密碼學中的交易,是不同的概念。類似于 STM。
Repo
duang - 使用宏來提供默認參數和命名參數
一看就是國人的項目。命名有點玩耍的味道,但是思路和設計可以借鑒。
use duang::duang;
duang!(
pub fn foo
(a: T, b: f64 = 13.0, c: T = a * a) -> (T, f64, T)
where
T: std::ops::Mul
,
T: std::fmt::Display,
T: Copy,
{
(a, b, c)
}
);
// ----
use demo_duang::foo;
// pass
assert_eq!(foo!(1, c = 30, b = -2.0), (1, -2.0, 30));
// pass
assert_eq!(foo!(a = 10), (10, 13.0, 100));
// fail
// foo!(1,c=30,c=2);
Repo
dua-cli - 用于查看當前目錄下的磁盤容量使用情況
這個工具發布 v2.0 了。就是 du 的升級版。先看下效果圖。
Repo
coffee 2D游戲引擎推出了響應式UI
不過這個UI是用于游戲內的UI。
Repo
stale-rs - 用于找出項目工程中,沒有被鏈接的rs文件
對于這些文件,就可以放心刪除。這在重構的時候很有用。來看一下效果圖:
Repo
Rust不好的地方有哪些?
作者說,在網上,總是聽到說Rust這里好那里好,那么,Rust不好的地方有哪些?
這里就簡單匯總一下人們的吐槽:
- Compile times for large projects
- Crate ecosystem is still very young, volatile and sparse
- Because the community is young and still largely curiosity-driven, some essential crates have inconsistent maintenance since there aren’t many maintainer organizations yet
- Orphan rules make the glue-package approach (like Java uses) intractable and thus it’s difficult to combine different parts of the ecosystem or factor libraries as much as one would like
- Related to the above, we’re probably still several years or editions away from a good dynamic linking/plugin story (but for good reason, related to the below)
- The language’s real potential still always seems one unimplemented RFC away (e.g., async, const generics, GATs, unsized rvalues, etc.)
- A lot of the features really essential to write libraries of the quality one would like are still unstable (e.g., specialization)
- Many crates have not yet reached version 1.0. This can make them more “scary” to use, as the API could change at any point.
- std::net is quite lacking. For example, you can’t perform a non-blocking connect. There is net2, but it has its own set of issues. Then there’s socket2 to address net2’s issues, but its API is a bit clunky. It’s also not very popular, so it remains to be seen for how long it will stick around.
- I think only recently was mirroring of crates.io introduced in a more sane way, though I don’t remember exactly in what state.
- Async IO is still clunky. MIO seeks to provide a nice API, but it’s not zero-cost by any means. It also has some issues with Windows. I ended up having to use my own wrappers for epoll and kqueue, and used wepoll for Windows.
- No crate namespacing, so you end up with crates like “yorickpeterse-socket2”, “billy-bob-socket2”, etc. This also means name squatting is more annoying.
- This is not an issue with Rust itself, but is worth mentioning: I really can’t stand Clippy. More often than not I upgrade it, and it introduces really annoying lints. For example, if you define len it will complain if you don’t also define is_empty. This makes sense for a library, but when writing a self-contained application where you’d never use this it’s annoying. Of course you can disable it, but I don’t want to sprinkle Clippy directives all over the place.
- No (computed) goto, or something that is guaranteed to compile down to it. This means interpreters won’t be able to make use of them, slowing them down a bit (depending on the hardware)
Read More
用 Rust, Haskell, C++, Python, Scala 和 OCaml 實現同一個工程的比較
要比較語言,莫過去用它們實現同一個項目/工程了。作者是一個學生,他們被布置實現一個Jave的子集到x86的編譯器。不同的組用了不同語言自行實現。不過,這次這篇文章只是比較了實現同一個編譯器需要用到的代碼量。其實這個很不客觀,因為不同小組實現同一個目標的設計思路和算法都不同。但是這還是能給人一點參考意義,至少知道一個大概的量級和復雜度。
Read More
From 日報小組 Mike
日報訂閱地址:
獨立日報訂閱地址:
- Telgram Channel
- 阿里云語雀訂閱
- Steemit
- GitHub
社區學習交流平臺訂閱:
- Rust.cc論壇: 支持rss
- Rust Force: 支持rss
- 微信公眾號:Rust語言學習交流
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
