読者です 読者をやめる 読者になる 読者になる

kubo39's blog

ただの雑記です。

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.…