kubo39's blog

ただの雑記です。

Rust

Rustでバイナリなライブラリ

最近いじるときにどっかに情報まとめとくといいかな、と思い。他にもあれば是非教えてください。 gimli-rs/gimli - DWARFを扱うためのライブラリ。DWARFってだいたいでかいのでlazy, zero-copyで扱いやすいのは期待してる。 m4b/goblin - ELF/Mach-O/pe 形式…

Rustのconst_fnがそれほど使い勝手がよくなさそうだという話

現状ではnightlyでしか使えないが、Rustは部分的にコンパイル時に関数評価を定数畳み込みする const_fn という機能がある。 https://doc.rust-lang.org/beta/unstable-book/language-features/const-fn.html そこでコンパイル時にバイト列を比較するコードを…

Rustのlockとスコープのはなし

こういうコードを書くと当然deadlockする。 use std::sync::{Mutex, Arc}; use std::thread; fn main() { let mut lock = Arc::new(Mutex::new(false)); let mut cloned_lock = lock.clone(); let th = thread::spawn(move|| { loop { let mut quit = cloned…

各OSにおけるRustのインストール方法

たまーに聞かれるので。うろ覚えで書いているので違ってたら直すのでこっそり教えてください。 Linux/macOS/FreeBSD/Windows rustup使いましょう。macOSでもhomebrew使うよりrustup使ったほうがいいと思います。.bashenvなり.zshenvなりに export PATH="$HOM…

ぱっと使えそうなRust製のツール

cargo installで入れられそうなやつを雑にまとめてみた。 ripgrep(rg) - はやいgrep、あるいはag。 xsv - CSVツールキット。 alacritty - 速いらしいターミナルエミュレータ。 parallel - GNU parallelのRust版。 coreutils - GNU coreutilsのポート。使えな…

Rust LT会で発表しました

Rust Rust LT会で発表しました。最初スクリーン映らなくて焦った…進行の方にご迷惑おかけしたことをここでお詫びします。 qiita.com まあここに書いてることをまた書いてもあまり意味ないのでこぼれ話を。 取り上げてるmiocoは最近はあまり活発じゃないです…

Rustのmysql_asyncをさわってみる

Rustの非同期I/O隆盛の流れでtokioベースのmysql driverができたっぽい。(ほんとにできたばっかり) GitHub - blackbeam/mysql_async: Asyncronous Rust Mysql driver based on Tokio. 雑な説明だけれど一応書いておくと、非同期I/Oは一スレッドが捌くクライ…

フィボナッチ rust版

無意味にマクロで。 macro_rules! fib { ( $n:expr ) => {{ let (mut x, mut y) = (1, 0); for _ in 0..$n { let tmp = box x; x += y; y = *tmp; } y }}; } fn main() { println!("{}", fib!(10)); } ( ՞ਊ ՞) :~/dev $ rustc --version # ちと古い rustc 1.…