blog.hamadu.net

2017/07/05 - Rustでechoサーバを書く

Tags: rust

参考ページ

ちょっとテーマ違うけどこれも

コードはほぼ写経なので略

edge-triggered vs level-triggered

Rustライブラリメモ

mio

軽量ローレベルIOライブラリ。

slab

Slab: 予め型に合わせた様々なサイズのオブジェクトを確保しておき、必要に応じて割り当てる仕組み。ヒープ領域の断片化の低減が期待できる。

memcachedなど、長く動かす前提のプログラムは動的なメモリ確保が頻繁に起こりがち(クライアントから何か受け取って何かするとか)だから断片化が問題になりやすいのかな。そのための slab と理解した。

env_logger

ロギングライブラリ。

extern crate env_logger;

fn main() {
  env_logger::init().unwrap();

  debug!("msg")
  info!("msg");
  error!("msg")
}

みたいなことができるようになる。ログレベルは RUST_LOG=info のように指定。内容はSTDERRに吐かれる。

Rust Type/Trait/Attributeメモ