happy developing

楽しい開発ライフ

proconio::input!の仕組みを追ってみる

この記事ではRustのproconio::input! macroについて書きます。 documentやtest caseで想定されているユースケースをどうやって実現しているのかを追っていきます。 versionは記事を書いている時点で最新のp-v0.4.3 を対象にしています。 proconio::input! と…

Parser combinator nom 入門

この記事ではparser combinator nom1について書きます。versionは v6.1を前提にしています。 nomは小さいparserを組み合わせて、目的とするデータ構造を入力から読み取るためのpackageです。 nushell のコードを読んでいてみかけたのが初めてでしたが他のpac…

Rustのlifetimeとvariance

nomicon を読んでいてSubtyping and Variance の話がでてきたときにどうして継承の概念がないRustにvarianceの話がでてくるのかなと思っていました。 その後、Rustの動画をyoutubeに投稿されているJon Gjengsetさん のCrust of Rust: Subtyping and Variance…

Web APIの設計を読んだ感想

読んだ本 https://www.shoeisha.co.jp/book/detail/9784798167015 本書を読みながら、参考になったところ、普段自分が開発していて思ったところなんかを書いていきます。 本書でいうところのWeb APIはもっぱらRESTが前提です。(GraphQL,gRPCについても言及は…

Key Value Storeを作りながら学ぶtokio

本エントリーではKey Value Storeをtokioで作るうえで学んだことを書いていきます。 RustのLT会 Shinjuku.rs #13で話させていただいた内容です。 発表時のスライド source code 作ったもの TCP Server Max Connection Graceful shutdown Stream read/write w…

Mini-Redis Tutorialからはじめるtokio

この記事ではRustの非同期runtimeのひとつtokioの公式Tutorialを通じてtokioのAPIに入門していきます。 TutorialではMini-RedisというRedisのclient/serverを実装したlibraryを通してtokioとfuture/asyncの概念を学んでいきます。Redisについての前提知識は…

りあクト! 第3版がすごくよかった

会社のフロントエンドエンジニアの方にReact/Typescript関連のおすすめのドキュメントを聞いたところりあクトを教えてもらいました。 読んでみてとてもおもしろく、おおげさですが感動してしまったので感想を書きます。 読んだ本 りあクト! TypeScriptで始…

自作キーボードLily58Proを組み立てる

この記事では自作キーボードLily58 Proの組み立て工程について書いていきます。 普段はHHKBを使っていたのですが分離型キーボードを試してみたいと思っていました。 HHKBに近い感じがよく、CapsLock、FunctionKeyがなくてUS配列あたりで探していたのですがし…

Rustでgitのtagをbumpする

同じチームのメンバーがnodegitというnodeのlibgit2のbindingを利用して、便利なツールを作っているのをみて各言語にgitを操作するためのライブラリーへのbindingがあることを知りました。 そこで、今回はRustのlibgit2 bindingであるgit2-rsを利用して、git…

Rustでネットワークの速度を測ってみる

会社の回線が遅いなと感じ、具体的な数字を測ってみたくなったので、Rustでtcpのthroughputを計測するcliを作ってみました。 source codeはこちら install cargoとbrewでinstallできます。 brew $ brew tap ymgyt/netspeed $ brew install netspeed cargo ca…