Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。
L 322. waitress(Webサーバ)
waitressは、WSGI準拠のシンプルで安定したPython製Webサーバーです。主に FlaskやPyramidなどのWSGIアプリケーションを本番環境で運用するために使われます。Windowsでも動作し、スレッドベースのサーバーです。
▼主な機能
WSGIアプリを本番環境で実行可能
マルチスレッド対応
クロスプラットフォーム(Windows含む)
設定がシンプル
▼インストール
pip install waitress
▼使い方(Flaskの例)
from flask import Flask
from waitress import serve
app = Flask(__name__)
@app.route(‘/’)
def hello():
return “Hello from Waitress!”
# Waitressで起動
serve(app, host=’0.0.0.0′, port=8080)
L 323. eventlet(疑似並列)
eventletは、グリーンスレッド(疑似並列)の仕組みを提供する非同期I/Oライブラリで、WebSocketやWsgiサーバー、ネットワークアプリケーションなどで利用されます。軽量で同時接続に強く、Flask-SocketIOのバックエンドとしても有名です。
▼主な機能
グリーンスレッドによる並行処理(green threads)
monkey patching により標準ライブラリを非同期化
非同期ネットワーク通信(socket、http、sslなど)
WSGIサーバーとしての利用も可
▼インストール
pip install eventlet
▼使い方(簡単なWsgiサーバー例)
import eventlet
from eventlet import wsgi
def app(env, start_response):
start_response(‘200 OK’, [(‘Content-Type’, ‘text/plain’)])
return [b’Hello from Eventlet!’]
wsgi.server(eventlet.listen((‘0.0.0.0′, 8080)), app)
▼Flask-SocketIOでの利用例
from flask import Flask
from flask_socketio import SocketIO
app = Flask(__name__)
socketio = SocketIO(app, async_mode=’eventlet’)
@app.route(‘/’)
def index():
return ‘SocketIO with Eventlet’
if __name__ == ‘__main__’:
socketio.run(app, host=’0.0.0.0′, port=8080)
L 324. gevent(非同期ネットワークライブラリ)
geventは、グリーンスレッドを使った非同期ネットワークライブラリです。libev/libuvベースの高速なイベントループを使っていて、非常に高性能です。
▼主な機能
協調的マルチタスク(greenlet)
monkey patch による標準ライブラリの非同期化
非同期ソケット通信、HTTPサーバー、プロセス管理など
WSGIアプリケーションも実行可能
▼インストール
pip install gevent
▼使い方(WSGIサーバーとして)
from gevent.pywsgi import WSGIServer
from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def hello():
return “Hello from Gevent!”
http_server = WSGIServer((‘0.0.0.0’, 8080), app)
http_server.serve_forever()


Comments