Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RustでPagerを作ってみた
Search
ryochack
November 26, 2018
Programming
1
750
RustでPagerを作ってみた
RustでpeepというlessのようなPagerツールを作ってみた話。
ryochack
November 26, 2018
Tweet
Share
More Decks by ryochack
See All by ryochack
Rustでチョット気軽にセンサドライバ開発
ryochack
2
3.1k
Other Decks in Programming
See All in Programming
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
Code Reviews
bkuhlmann
4
890
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
920
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
270
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
What We Can Learn From OSS
inouehi
0
420
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
930
"config" ってなんだ? / What is "config"?
okashoi
0
240
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
960
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
60
3.9k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Building Applications with DynamoDB
mza
88
5.6k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Building Your Own Lightsaber
phodgson
99
5.7k
Building an army of robots
kneath
300
41k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
The Pragmatic Product Professional
lauravandoore
25
5.8k
Transcript
RustでPagerを作ってみた RustのLT会! Rust入門者の集い #6 2018.11.26 @ryochack
About Me @ryochack 組み込みソフトウェア開発が仕事 システムプログラミング目当てでRust触り始めた 昨年、組み込みRustの同人誌書きました 2
RustでPager作ってみたという話 3
対象とする人 Rustが好きだ CUIが好きだ ケチ 節約が好きだ 記憶力が貧弱だ それ、tmuxやscreenでいいじゃん、って言わない人 4
Pager、使ってますよね less / more 呼吸をするように使うもの 5
でも、こんなことありませんか? 6
1. lessを起動する 2. lessでファイルを閲覧する 3. lessを終了する 4. lessで何を見ていたか忘れる 5. ※1に戻る
7
つらい 8
他のツールは… cat / less +X : ターミナルのバッファが必要以上に汚れる head / tail
: 見たい行がどこかわかってないといけない grep : マッチするものが多いとノイズが増える 9
要求 最後に見ていたものがそのままターミナルに残る ターミナルバッファを必要以上に汚さない lessのようなインタラクティブな閲覧ができる 10
peep https://github.com/ryochack/peep $ cargo install peep 11
peepの機能 指定行数内でのテキストファイル閲覧操作 Viライクなキーバンド tail -f / less +F モード 正規表現でのキーワード検索
Linux / MacOSサポート (Windowsでは動作しません) 12
Demo 13
peepの構成 14
知見(と苦しみ) 複数モジュールから参照するバッファ/Traitのハンドリング Borrow Checkerとの戦い… Rc<RefCell<xxx>> 便利だけど…? Unicode文字の表示幅のハンドリング Unicodeを取り扱うWGがある unicode-rs unicode-width
クレート ターミナル操作のテストに失敗する cargo test はデフォルトで並列テスト cargo test -- --test-threads=1 でスレッド数を1に 固定できる Shift_JISなどのUTF-8以外のファイルを入力すると死ぬ 15
まとめ CプログラマにとってRustはムズカシイ コンパイラが通ったあとの安心感がある Rustを書いてからCに戻るとつらい 16
ご清聴ありがとうございました This slide was generated by Marp 17