CLICK
世の中には多くのWEBフレームワークがあり、貴方はそのどれか一つ、またはいくつかを使ってWEB開発をしているはずです。
そのいずれのフレームワークであっても、貴方は多くの記述パターンを発見し、同じ処理を書くことに飽き飽きしていることでしょう。
そこで、パターンは全て設定ファイルに書いてしまいたい!と思った貴方は、極めて優秀なエンジニアです。
ただYAMLにせよJSONにせよ、昨今のWEB開発の記述パターンを表現するには少し力不足です。
であれば、ビジュアルプログラミングのUI上で、各設定を線と線で結び表現してはどうでしょうか。 そんな試みから生まれたのが、このおにぎりの具として最も有名なTUNA-Mayonnaise(ツナマヨ)です。
# インストール
brew install solaoi/tap/tuna
# アップデート
brew upgrade tuna
こちらから 各OSごとの実行ファイルをダウンロードできます。
# wget または curl でインストール
## releasesタブの最新のバージョンを指定してください。
VERSION=v0.0.29
## 利用OSを指定してください。
OS=linux_amd64
## wget経由の場合
wget https://github.com/solaoi/tuna-mayonnaise/releases/download/$VERSION/tuna_${OS}.tar.gz
## curl経由の場合
curl -LO https://github.com/solaoi/tuna-mayonnaise/releases/download/$VERSION/tuna_${OS}.tar.gz
## 解凍
tar xvf ./tuna_${OS}_amd64.tar.gz
## /usr/local/binなどのPATHの通った場所に移動してください。
mv ./tuna /usr/local/bin/
# アップデート
tuna update
tuna tool
コマンドを実行すると、下記のようにブラウザが起動します。
このUI上で、 Save
メニューから設定ファイル( tuna-mayonnaise.json
)を作成できます。
※ このサンプルは Save
メニューをサポートしてませんが、 Download
メニューから編集した設定を取得できます。
tuna api
コマンドを実行すると、 http://localhost:8080
でJSONや、HTMLをAPIとして提供します。
このコマンドは、実行ディレクトリ内の設定ファイル( tuna-mayonnaise.json
)を参照します。
HTMLを作成する際に、テンプレートエンジンとして下記を利用できます。
- Pug
- Handlebars
WEB APIにリクエストし、そのレスポンスを利用できます。
このツールは下記データベースをサポートしてます。
- MySQL
- PostgreSQL
- SQLite3
データは、JSON形式で利用できます。
例)
仮に下記テーブルがあった場合、
id | name |
---|---|
1 | foo |
2 | bar |
次のようなレスポンスを取得できます。
[
{"id":1, "name":"foo"},
{"id":2, "name":"bar"}
]
- TUNA-Mayonnaise(ツナマヨ)は、Prometheusのメトリクスを
/metrics
で提供します。
メトリクスは、2つの統計情報を含みます。
- Echoライブラリ標準のPrometheusのメトリクス
- TUNA-Mayonnaise(ツナマヨ)で提供されるAPIコンポーネントのステータスコード、メソッド、URL
- TUNA-Mayonnaise(ツナマヨ)は、ヘルスチェックを
/health
で提供します。 - TUNA-Mayonnaise(ツナマヨ)は、Labeled Tab-separated Values (
LTSV
) フォーマット形式でログ出力します。
TUNA-Mayonnaise(ツナマヨ)は、多くのOSSによって成り立ってます。
ライブラリ | ライセンス |
---|---|
github.com/aymerick/raymond | MIT License |
github.com/blang/semver | MIT License |
github.com/christopherhein/go-version | Apache License 2.0 |
github.com/common-nighthawk/go-figure | MIT License |
github.com/eknkc/pug | MIT License |
github.com/fatih/color | MIT License |
github.com/go-sql-driver/mysql | MPL-2.0 License |
github.com/iancoleman/orderedmap | MIT License |
github.com/kpango/gache | MIT License |
github.com/labstack/echo | MIT License |
github.com/labstack/echo-contrib | MIT License |
github.com/lib/pq | MIT License |
github.com/mattn/go-sqlite3 | MIT License |
github.com/mohae/deepcopy | MIT License |
github.com/prometheus/client_golang | Apache License 2.0 |
github.com/rhysd/go-github-selfupdate | MIT License |
github.com/rodaine/table | MIT License |
github.com/spf13/cobra | Apache License 2.0 |
ライブラリ | ライセンス |
---|---|
@monaco-editor/react | MIT License |
file-saver | MIT License |
handlebars | MIT License |
js-sql-parser | MIT License |
pug | MIT License |
react | MIT License |
react-dom | MIT License |
react-modal | MIT License |
react-hot-toast | MIT License |
regenerator-runtime | MIT License |
rete | MIT License |
rete-area-plugin | ISC |
rete-auto-arrange-plugin | MIT License |
rete-connection-path-plugin | MIT License |
rete-connection-plugin | MIT License |
rete-connection-reroute-plugin | MIT License |
rete-context-menu-plugin | MIT License |
rete-history-plugin | MIT License |
rete-minimap-plugin | MIT License |
rete-react-render-plugin | ISC |
use-interval | MIT License |
ライブラリ | ライセンス |
---|---|
@types/pug | MIT License |
@types/react | MIT License |
@types/react-dom | MIT License |
@types/react-modal | MIT License |
@vitejs/plugin-react | MIT License |
eslint | MIT License |
eslint-config-airbnb | MIT License |
eslint-config-prettier | MIT License |
eslint-plugin-import | MIT License |
eslint-plugin-jsx-a11y | MIT License |
eslint-plugin-react | MIT License |
eslint-plugin-react-hooks | MIT License |
husky | MIT License |
lint-staged | MIT License |
prettier | MIT License |
rollup-plugin-visualizer | MIT License |
stylelint | MIT License |
stylelint-config-prettier | MIT License |
stylelint-config-recommended | MIT License |
stylelint-order | MIT License |
stylelint-prettier | MIT License |
typescript | Apache License 2.0 |
vite | MIT License |
vite-plugin-externals | MIT License |