LoginSignup
1
3

RailsみたいなRustフレームワーク「Loco」でWebAPIを爆速で立ち上げよう!

Posted at

先日、列車を走らせましたので解説していきます。

前提

・Rust実行環境があること

Rustフレームワーク「Loco」とは?

公式サイト(https://loco.rs/)によると

「サイドプロジェクトやスタートアップのためのRustの一人用フレームワーク」

と定義されています。

高速でRust APIを立ち上げるためのサーバーサイドフレームワークと言えるでしょう。

うちのチームはクリエイター主体でエンジニアは僕しかいないので最適かもしれません。

以下が挙げられている特徴になります。

バッテリー付属

1人チームを強化します。サービス、データ、メール、バックグラウンドジョブ、タスク、それを動かすCLI、すべてが含まれています。

Railsは素晴らしい

LocoはRailsに従っています。Railsのコンセプトは、最新のRust開発に注意深く適応されています。

自信を持って提供する

一人で開発する人のために最適化されています。複雑な作業や大掛かりな作業は必要ありません。

必要に応じて拡張

必要なときに Loco の一部だけを分割、再構成、または使用できます。苦痛を伴うことなく構築し、成長させることができます。

段階的に構築

必要なものを使う。サービス、データベース付きサービス、バックグラウンドジョブワーカー、タスク。

すべてテスト駆動

わずかな労力でアプリをテストできます。モデル、コントローラ、バックグラウンドジョブなど、自信を持って迅速に出荷。

立ち上げ

cliをインストールします。

$ cargo install loco-cli
$ cargo install sea-orm-cli

新規アプリケーションを作成します。

$ loco new
✔ ❯ App name? · myapp
? ❯ What would you like to build? ›
  lightweight-service (minimal, only controllers and views)
  Rest API (with DB and user auth)
❯ Saas app (with DB and user auth)
🚂 Loco app generated successfully in:
myapp

ポスグレを立ち上げます。

$ docker run -d -p 5432:5432 -e POSTGRES_USER=loco -e POSTGRES_DB=myapp_development -e POSTGRES_PASSWORD="loco" postgres:15.3-alpine

error returned from database: role "loco" does not exist

となった場合は、別のポスグレのdocker image, container, volumeなどを削除してみてください。

myappに移動します。

$ cd myapp

立ち上げます。

$ cargo loco start
Finished dev [unoptimized + debuginfo] target(s) in 21.63s
    Running `target/debug/myapp start`

    :
    :
    :

controller/app_routes.rs:203: [Middleware] Adding log trace id

                      ▄     ▀
                                 ▀  ▄
                  ▄       ▀     ▄  ▄ ▄▀
                                    ▄ ▀▄▄
                        ▄     ▀    ▀  ▀▄▀█▄
                                          ▀█▄
▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄   ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▀▀█
 ██████  █████   ███ █████   ███ █████   ███ ▀█
 ██████  █████   ███ █████   ▀▀▀ █████   ███ ▄█▄
 ██████  █████   ███ █████       █████   ███ ████▄
 ██████  █████   ███ █████   ▄▄▄ █████   ███ █████
 ██████  █████   ███  ████   ███ █████   ███ ████▀
   ▀▀▀██▄ ▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀ ██▀
       ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

started on port 3000
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3