glot.ioとは
glot.ioとは、Webサイト上のエディタで書いたプログラムの実行やスニペットの保存・共有ができるサービスです。またどちらの機能にもAPIが用意されているため、汎用的な利用ができます。
3つのサービスの比較
主にAPIとしての利用を目的とした比較です。
glot.io
- APIからスニペットを登録して実行可能
- 複数ファイル対応
- 実行時コマンドを指定可能
- 実行時間は15秒まで
- 出力は100KiBまで
- メモリは500MBまで
- 対応言語
Assembly, ats, Bash, C, Clojure, COBOL, CoffeeScript, C++, Crystal, C#, D, Elixir, Elm, Erlang, F#, Go, Groovy, Haskell, Idris, Java, JavaScript, Julia, Kotlin, Lua, mercury, Nim, Nix, OCaml, Perl, PHP, Python, Raku, Ruby, Rust, Scala, Swift, TypeScript
paiza.io
- コードの共有機能はあるが、APIからの利用は不可
- 実行時間は2秒まで(要検証、実際1秒で打ち切られている?)
- APIの使用方法が分かりやすい APIインターフェース
- メモリは512MBまで
- 対応言語
Java, PHP, Ruby, Python2, Perl, C, C++, C#, JavaScript, Objective-C, Scala, Go, Haskell, CoffeeScript, Bash, Erlang, R, COBOL, VB, F#, Python3, Clojure, D, Swift, Kotlin, Elixir, Rust, Scheme, Nadesiko, TypeScript, MySQL
Wandbox
- 言語実行環境のバージョンを指定可能
- 複数ファイル対応
- 実行時間は10秒まで(要検証)
- メモリ制限は不明
- 対応言語
Bash, C, C#, C++, CLISP, CoffeeScript, Crystal, D, Elixir, Erlang, F#, Free Pascal, Go, Groovy, Haskell, Java, JavaScript, Lazy K, Lua, Nim, OCaml, OpenSSL, Perl, PHP, Pony, PyPy, Python, R, Rill, Ruby, Rust, Scala, SQL, Swift, TypeScript, VimScript
まとめ
glot.ioのスニペット機能があることと実行時間が15秒までという点は、他の2つに比べ大きなメリットだと思います。また、APIの仕様もシンプルでわかりやすいです。
glot.ioをPythonから使うためのライブラリ
インストール
$ pip install glotio-api
使用例
from glotio import Runner
g = Runner("[YOUR_API_KEY]")
# language list
print(Runner.get_lang().keys())
g.set_lang("python")
code = "import sys;print(input() + ', ' + sys.argv[1])"
g.set_code(code, filename="main.py")
g.set_stdin("input text")
g.set_command("python3 main.py 'command line argument'")
result = g.run()
print(result)