Upgrade to Pro — share decks privately, control downloads, hide ads and more …

爆速なPythonフレームワーク

 爆速なPythonフレームワーク

高速に動作するというPythonのフレームワークであるBlacksheepについて調べました。
どんなフレームワークなのか、流行の FastAPI とどう違うのかなどの視点や、実際の速度の計測の結果などを話します。

biwakonbu

May 10, 2024
Tweet

More Decks by biwakonbu

Other Decks in Technology

Transcript

  1. 自己紹介 1 株式会社 coroutine 東川 諒央 @biwakonbu 大学教員 ゲームバックエンド フリーランス

    経歴 Go Python 実績言語 Ruby 技術顧問 エンジニア教育 業務 設計 プログラミング インフラ etc… Rust Haskell TypeScript 趣味言語 Lisp F#
  2. 爆速なPythonフレームワーク 2 ❏ FastAPI? 違います Blacksheep です ❏ Python 製で高速なフレームワークで名高い

    FastAPI よりも高速です ❏ DI を採用していて、Flask や .NET に影響を受けてます ❏ OpenAPI ももちろん採用しています ❏ サーバーは uvicorn なので FastAPI や Django と同じです
  3. どれくらい爆速なのか? 3 ❏ FastAPI で下のコードのような簡単なレスポンスの API を作り、計測しました ❏ Apache Bench

    でローカルで試験したため正確性には難があります ❏ 1 つの指標くらいで見てください ❏ FastAPI: 4249 req/sec ❏ Blacksheep: 5291 req/sec ❏ 25% 程度パフォーマンスが高い事が分かります ❏ ※ あくまでも Routing までの実装のパフォーマンス差です   実際の API はここに DB への接続やロジックの実行などが入るため   言語の速度に準じた結果に寄ると思います ❏ Cython で多くの部分が書かれているため高速になっているようです
  4. 何ができるのか? 4 ❏ 特徴的なのは DI (Dependency Injection) をサポートしている事 ❏ Python

    のフレームワークでは珍しい気がします ❏ .NET ASP Core に影響を強く受けているのはここかと思います
  5. まとめ 5 ❏ 噂どおり速かった ❏ でも Robyn が最速っぽいです (公表値は Blacksheep

    の 1.5 倍らしいです) ❏ 基本的に求められる事はほぼできる印象です ❏ FastAPI, Flask に似ているので取っつき易さがありそうでした ❏ ドキュメントも割としっかり存在してました ❏ ORM は SQLAlchemy とか Tortoise ORM とかがサポートされています ❏ 情報量や拡張だと FastAPI の方が多いのでどっちを取るかになりそうです ❏ マイナーなのでサポートが続くかが分からないのが一番の問題ですね ... ❏ GitHub Star が 1.7k なのでまだまだこれからという感じ