Rust

RustでTCPトンネルを実装

RustでTCPトンネルを実装してみたので備忘録的にメモ

Arc<Mutex<T>>でスレッド間でデータを共有する場合のDropの必要性について

前回はArc<Mutex>でスレッド間でデータを共有する動作を確認しました。 steavevaivai.hatenablog.com その延長で今回はTcpStreamを複数スレッドで共有し片方のスレッドは読み込み続けて、もう片方のスレッドで書き込み続ける場合の動作を確認したのですが、際に自前</mutex>…

Arc<Mutex<T>>でスレッド間でデータを共有してみる

スレッド間でデータを共有するときOSスレッドを直接操作するのは大変な気がしたのでグリーンスレッドがcrossbeamを試してみたのですが、改めて公式のドキュメントを見てみるとちゃんと説明がありました。 doc.rust-jp.rs ArcとMutexの組み合わせによりスレッ…

RustでCrossbeamのグリーンスレッドを試してみる

Rustでは所有権やライフタイムがあるおかげで安全な実装をすることが出来ますが、Rustを始めたばかりの人は同じインスタンスに対し複数スレッドで一つのスレッドで監視をして、もう一つのスレッドで操作するといったことを行いたくなった場合大分てこずると…

Rustでチケット料金モデリングしてみる

Rustの勉強がてら以前話題になったチケット料金モデリングを実装してみました。 このチケット料金表を実装したのですが、すでにScalaで作られているこちらを参考にScalaからRustで作り変えていき、実装の違いのポイントを確認しながら進めてみました。 Rust…

Rustでの関数型プログラミング

Rustでの関数型プログラミングについて調べていたのですが、以下のスライドでは高カインド型がないのが問題とされているようなので実装して確認してみました。 https://speakerdeck.com/helloyuk13/rust-demomonadohashi-zhuang-dekirufalseka Scalaでの高カ…

RSA暗号の仕組みを追ってみた

最近では量子コンピュータの技術が発展してきて2030年頃には2048bitのRSA暗号が突破されると言われているらしいです。RSA暗号は馴染みが深いところでいうとhttpsでのssl・tls通信でも使われている技術になりますので改めて勉強してみようかと思います。 確認…