happy developing

楽しい開発ライフ

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…

RustのcliをHomebrewで公開する

この記事ではRust製のcliをbrew installできるようになるまでの手順について書きます。(CI上で実行できるようにしたいのですが、まずは手でやります) サンプルとして利用するのは、前回の記事で紹介した、MySQLにpingをうつだけのcli, mysqlpingerです。 bui…

RustでMySQLにpingをうつ

local環境でdocker-compose等を利用してDBを立ち上げた際に、DBの"ready"を待ちたいことがありました。 最初は、tcp接続でよしとしていたのですが、やはりprotocol的な"ready"が必要だったので、pingをうつ必要がありました。 ということで、RustでMySQLにpi…

RustでRui Ueyama先生の低レイヤを知りたい人のためのCコンパイラ作成入門をやってみる1(環境構築から四則演算まで)

compilerbookこと低レイヤを知りたい人のためのCコンパイラ作成入門をRustでやっていきます。 本記事では、環境構築から四則演算のtestを通すところまでおこないます。compilerbookのステップ5: 四則演算のできる言語の作成までです。 概要 概要としては、計…