1 min read

依存が少ない Rust 向けの S3 クライアントライブラリを公開しました

AWS の公式 Rust SDK があまりにも依存が多すぎたので、Sans I/O な S3 クライアントライブラリを自前で作る事にしました。

逃げ切れないライブラリ

S3 クライアントを作るにあたり必ず必要なライブラリがあります。

  • MD5
  • SHA-1
  • SHA-2
  • HMAC
  • Base64
  • CRC32 / CRC64

さすがにこれらを自作するわけにはいかないので、依存をさせています。ただし SHA-1 と SHA-2 と HMAC は aws-lc-rs を指定できるようにしました。

これは rustls では基本的に aws-lc-rs を採用するので、その場合はそちらのライブラリをつかうようにするためです。feature で aw-lc-rs を指定できるようにしました。

Sans I/O

もちろん、Sans I/O つまり I/O 依存なしです。さらにいうなら HTTP/1.1 にすら依存もしていません。もともとは自社で公開している shiguredo_http11 に依存させていたのですが、あまり意味がないなと言うことで、依存をやめてしまいました。ただ、将来的には依存させるかもしれません。

今後

積極的に枯れさせていきます。また気軽に aws-sdk-rus へ移行できるように、スタイルは寄せていこうと思います。

GitHub - shiguredo/s3-rs: Sans I/O Amazon S3 client library for Rust
Sans I/O Amazon S3 client library for Rust. Contribute to shiguredo/s3-rs development by creating an account on GitHub.