Streamlit とは?

Streamlit

Streamlit

NRIのOpenStandiaが提供するStreamlit最新情報

Streamlitの保守サポートサービスの内容はこちら Streamlitの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Streamlitバージョンアップ情報

すべてを見る

更新日:2022-07-27

Streamlitの概要

streamlit トップ画像

Streamlit(ストリームリット)は、機械学習やデータサイエンス向けのグラフィカルなカスタムWebアプリケーションを簡単に作成して全世界に公開できる、 オープンソースのWebアプリケーションのフレームワークです。基本的に、フロントエンドのGUIなどもPythonの簡単なコードのみで実装できます。

Streamlitは、以下の3つの原則に基づいて開発されています。

  • シンプルなAPIにより数行のコードでWebアプリケーションを構築でき、ソースファイルを保存するだけで、自動的に変更を反映できる。
  • 変数を宣言するだけでウィジェットを追加できる。 バックエンドを書いたり、ルートを定義したり、HTTPリクエストを処理したり、フロントエンドと接続したり、HTML、CSS、JavaScriptを書いたりする必要がない。
  • Streamlitから直接、アプリの共有、管理、デプロイを簡単に行うことができる。

このような原則により、Webアプリケーションの開発から公開までの時間を非常に短くすることができます。

インストールも簡単で、以下のコマンドを実行するだけです。

$ pip install streamlit

そして、以下のようなコードを書いたPythonファイル(app.pyとします)を用意し、

import streamlit as st
import pandas as pv
df = pd.DataFrame({'User ID': [1,2,3],
     'User Name': ['J.B. Bukauskas','Madison Bumgarner','Humberto Castellanos']})
st.write('*MLB* player :sunglasses:')
st.write(df)

以下のコマンドを実行すると、Webアプリケーションが起動し、

$ streamlit run app.py

次のような画面が表示されます。

streamlit startwindow

TOPに戻る

Streamlitの機能

Streamlitの特徴的な機能を以下に紹介します。

  • マジックコマンド
    Streamlitにはマジックコマンドという簡潔なコードでWebアプリケーションを実装する機能があり、これによりマークダウン、データ、グラフなどが短いコードで記述できます。

    例えば、前に例で示したコードの最後の2行はst.write()を省略して、次のように書いても同じ結果になります。
'*MLB* player :sunglasses:'
df

また、以下のように記述すると、データをグラフでWebアプリケーションに表示できます。

import matplotlib.pyplot as plt
import numpy as np

arr = np.random.normal(1, 1, size=100)
fig, ax = plt.subplots()
ax.hist(arr, bins=20)

fig
streamlit magiccommand
  • さまざまなウィジェット
    Streamlitでは、簡単なコードでボタンやラジオボックス、テキストエリアなどのウィジェット(グラフィカルユーザインタフェースのインタフェース部品)を画面上に配置できます。例えば、以下のコードを書くと、
text_contents = 'This is some text'
st.download_button('Download some text', text_contents)

次のようなボタンが表示され、「This is some text」と記載されたテキストファイルがダウンロードできます。

streamlit magiccommand
color = st.color_picker('Pick A Color', '#00f900')
st.write('The current color is', color)

のようなカラーピッカーが表示され、選んだ色を取得することができます。

streamlit colorpick
  • 簡単な手順でのアプリケーションの公開
    Streamlitで開発したアプリケーションをGitHubにコミットし、そのリポジトリーをStreamlit Cloudというクラウドサービスと連携すると、簡単にインターネット上に公開することができます。 Streamlit Cloudアカウントの作成からわずか数分でアプリを起動でき、その後の管理などもすべて無料で実現できます。
  • 修正の自動的な反映
    Streamlitで開発したアプリケーションに対して行った修正は、アプリケーションの再デプロイや再起動などを行うことなく即座に反映されます。 そのため、アプリケーションの開発効率を上げることができます。

TOPに戻る

Streamlitのライセンス

Streamlitのライセンスは、Apache License 2.0となっており、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

Streamlitのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

Streamlitと同類のソフトウェア

Pythonで実装可能なWebアプリケーションのフレームワークには、DjangoやFlask、FastAPIなどをはじめ、多数のOSSがあります。 ただし、機械学習やデータサイエンス向けのWebアプリケーションのフレームワークのOSSに限定すると、Streamlit以外ではDashが同類のソフトウェアとして有名です。DashもPythonで実装可能です。

TOPに戻る

NRIのStreamlitサポート(保守/サポートサービス)

現在、OpenStandiaではStreamlitのサポートを実施していません。

※詳細はお問い合わせください。

TOPに戻る

関連OSS

TOPに戻る

参考情報

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO