From ace911465481680451cdc5295ac52dafccadedfa Mon Sep 17 00:00:00 2001 From: hulk-higakijin Date: Sat, 26 Oct 2024 17:42:48 +0900 Subject: [PATCH 1/3] docs: Japanese translation for README (#905) * docs: add japanese for README * docs: add ja link for root README --- README-pt_BR.md | 2 +- README-zh_CN.md | 2 +- README.fr.md | 3 +- README.ja.md | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 5 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 README.ja.md diff --git a/README-pt_BR.md b/README-pt_BR.md index c63d24d19..81f2e3af6 100644 --- a/README-pt_BR.md +++ b/README-pt_BR.md @@ -16,7 +16,7 @@ -[English](./README.md) · [中文](./README-zh_CN.md) · [Français](./README.fr.md) · Portuguese (Brazil) +[English](./README.md) · [中文](./README-zh_CN.md) · [Français](./README.fr.md) · Portuguese (Brazil) ・ [日本語](./README.ja.md) ## O que é o Loco? diff --git a/README-zh_CN.md b/README-zh_CN.md index 0452d054d..9bc439a55 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -11,7 +11,7 @@ -[English](./README.md) · 中文 · [Français](./README.fr.md) · [Portuguese (Brazil)](./README-pt_BR.md) +[English](./README.md) · 中文 · [Français](./README.fr.md) · [Portuguese (Brazil)](./README-pt_BR.md) ・ [日本語](./README.ja.md) Loco 是一个用 Rust 编写的 Web 框架,类似于 Rails。Loco 提供快速构建 Web 应用的功能,并且允许创建自定义任务,可以通过 CLI 运行。 diff --git a/README.fr.md b/README.fr.md index 719de4aaa..8c21a21db 100644 --- a/README.fr.md +++ b/README.fr.md @@ -14,8 +14,7 @@ -[English](./README.md) · [中文](./README-zh_CN.md) · Français · [Portuguese (Brazil)](./README-pt_BR.md) - +[English](./README.md) · [中文](./README-zh_CN.md) · Français · [Portuguese (Brazil)](./README-pt_BR.md) ・ [日本語](./README.ja.md) ## À propos de Loco `Loco` est fortement inspiré de Rails. Si vous connaissez Rails et Rust, vous vous sentirez chez vous. Si vous ne connaissez que Rails et que vous êtes nouveau sur Rust, vous trouverez Loco rafraîchissant. Nous ne supposons pas que vous connaissez Rails. diff --git a/README.ja.md b/README.ja.md new file mode 100644 index 000000000..4ab130385 --- /dev/null +++ b/README.ja.md @@ -0,0 +1,100 @@ +
+ + + +

Locoへようこそ

+ +

+🚂 LocoはRust on Railsです。 +

+ + [![crate](https://img.shields.io/crates/v/loco-rs.svg)](https://crates.io/crates/loco-rs) + [![docs](https://docs.rs/loco-rs/badge.svg)](https://docs.rs/loco-rs) + [![Discord channel](https://img.shields.io/badge/discord-Join-us)](https://discord.gg/fTvyBzwKS8) + +
+ +English · [中文](./README-zh_CN.md) · [Français](./README.fr.md) · [Portuguese (Brazil)](./README-pt_BR.md) ・ 日本語 + +## Locoとは? +`Loco`はRailsに強くインスパイアされています。RailsとRustの両方を知っているなら、すぐに馴染むでしょう。Railsしか知らなく、Rustに新しい方でも、Locoは新鮮に感じるでしょう。Railsを知っているとは仮定していません。 + +Locoの動作についての詳細なガイド、例、APIリファレンスは、[ドキュメント](https://loco.rs)をチェックしてください。 + +## Locoの特徴: + +* `設定より規約:` Ruby on Railsに似て、Locoはボイラープレートコードを減らすことでシンプルさと生産性を発揮します。合理的なデフォルトを使用し、開発者が設定に時間を費やすのではなく、ビジネスロジックの記述に集中できるようにします。 + +* `迅速な開発:` 高い開発者生産性を目指し、Locoの設計はボイラープレートコードを減らし、直感的なAPIを提供することに焦点を当てています。これにより、開発者は迅速に反復し、最小限の努力でプロトタイプを構築できます。 + +* `ORM統合:` ビジネスモデルを堅牢なエンティティで表現し、SQLを書く必要をなくします。エンティティに直接関係、検証、およびカスタムロジックを定義でき、メンテナンス性とスケーラビリティが向上します。 + +* `コントローラー:` ウェブリクエストのパラメータ、ボディ、検証を処理し、コンテンツに応じたレスポンスをレンダリングします。最高のパフォーマンス、シンプルさ、拡張性のためにAxumを使用しています。コントローラーは、認証、ロギング、エラーハンドリングなどのロジックを追加するためのミドルウェアを簡単に構築できます。 + +* `ビュー:` Locoはテンプレートエンジンと統合し、テンプレートから動的なHTMLコンテンツを生成できます。 + +* `バックグラウンドジョブ:` Redisバックエンドキューやスレッドを使用して、計算またはI/O集約型のジョブをバックグラウンドで実行します。ワーカーを実装するのは、Workerトレイトのperform関数を実装するだけです。 + +* `スケジューラー:` 従来の、しばしば面倒なcrontabシステムを簡素化し、タスクやシェルスクリプトをスケジュールするのをより簡単かつエレガントにします。 + +* `メール送信:` メール送信者は、既存のLocoバックグラウンドワーカーインフラストラクチャを使用して、バックグラウンドでメールを配信します。すべてがシームレスに行われます。 + +* `ストレージ:` Locoのストレージでは、ファイル操作を簡素化します。ストレージはメモリ内、ディスク上、またはAWS S3、GCP、Azureなどのクラウドサービスを使用できます。 + +* `キャッシュ:` Locoは、頻繁にアクセスされるデータを保存することでアプリケーションのパフォーマンスを向上させるためのキャッシュレイヤーを提供します。 + +Locoの詳細な機能については、[ドキュメントウェブサイト](https://loco.rs/docs/getting-started/tour/)を確認してください。 + +## 始め方 +```sh +cargo install loco-cli +cargo install sea-orm-cli # データベースが必要な場合のみ +``` + +以下で新しいアプリを作成できます(「`SaaS`アプリ」を選択)。 + +```sh +❯ loco new +✔ ❯ App name? · myapp +✔ ❯ What would you like to build? · SaaS app (with DB and user auth) +✔ ❯ Select a DB Provider · Sqlite +✔ ❯ Select your background worker type · Async (in-process tokio async tasks) +✔ ❯ Select an asset serving configuration · Client (configures assets for frontend serving) + +🚂 Loco app generated successfully in: +myapp/ +``` + +次に`myapp`に移動し、アプリを起動します: +```sh +$ cargo loco start + + ▄ ▀ + ▀ ▄ + ▄ ▀ ▄ ▄ ▄▀ + ▄ ▀▄▄ + ▄ ▀ ▀ ▀▄▀█▄ + ▀█▄ +▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▀▀█ +██████ █████ ███ █████ ███ █████ ███ ▀█ +██████ █████ ███ █████ ▀▀▀ █████ ███ ▄█▄ +██████ █████ ███ █████ █████ ███ ████▄ +██████ █████ ███ █████ ▄▄▄ █████ ███ █████ +██████ █████ ███ ████ ███ █████ ███ ████▀ + ▀▀▀██▄ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ██▀ + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + https://loco.rs + +listening on port 5150 +``` + +## Locoによって開発されています ++ [SpectralOps](https://spectralops.io) - Locoフレームワークによる各種サービス ++ [Nativish](https://nativi.sh) - Locoフレームワークによるアプリバックエンド + +## 貢献者 ✨ +これらの素晴らしい人々に感謝します: + + + + diff --git a/README.md b/README.md index e1c19397e..f445016c2 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ -English · [中文](./README-zh_CN.md) · [Français](./README.fr.md) · [Portuguese (Brazil)](./README-pt_BR.md) +English · [中文](./README-zh_CN.md) · [Français](./README.fr.md) · [Portuguese (Brazil)](./README-pt_BR.md) ・ [日本語](./README.ja.md) ## What's Loco? From fa84d6095d12de516562cb143c43f9c1c210fdc7 Mon Sep 17 00:00:00 2001 From: "Dotan J. Nahum" Date: Wed, 23 Oct 2024 07:39:31 +0300 Subject: [PATCH 2/3] docs: fix #908 --- .../content/docs/getting-started/guide.md | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/docs-site/content/docs/getting-started/guide.md b/docs-site/content/docs/getting-started/guide.md index e39170a11..e2b09678c 100644 --- a/docs-site/content/docs/getting-started/guide.md +++ b/docs-site/content/docs/getting-started/guide.md @@ -150,26 +150,34 @@ injected: "tests/requests/mod.rs" This is the generated controller body: ```rust +#![allow(clippy::missing_errors_doc)] +#![allow(clippy::unnecessary_struct_initialization)] #![allow(clippy::unused_async)] use loco_rs::prelude::*; +use axum::debug_handler; -pub async fn echo(req_body: String) -> String { - req_body -} - -pub async fn hello(State(_ctx): State) -> Result { - // do something with context (database, etc) - format::text("hello") +#[debug_handler] +pub async fn index(State(_ctx): State) -> Result { + format::empty() } pub fn routes() -> Routes { Routes::new() - .prefix("guide") - .add("/", get(hello)) - .add("/echo", post(echo)) + .prefix("guides/") + .add("/", get(index)) } ``` + +Change the `index` handler body: + +```rust +// replace + format::empty() +// with this + format::text("hello") +``` + Start the server: @@ -181,7 +189,7 @@ cargo loco start Now, let's test it out: ```sh -$ curl localhost:5150/guide +$ curl localhost:5150/guides hello ``` From 72b2fca89add22408d532f7fdaaa451b18ef5428 Mon Sep 17 00:00:00 2001 From: "Dotan J. Nahum" Date: Wed, 23 Oct 2024 09:03:17 +0300 Subject: [PATCH 3/3] fix: set_from_json does not set primary key --- src/db.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/db.rs b/src/db.rs index fcbd3faad..2bf7ca6dc 100644 --- a/src/db.rs +++ b/src/db.rs @@ -251,8 +251,7 @@ where let seed_data: Vec = serde_yaml::from_reader(File::open(path)?)?; for row in seed_data { - let mut model = ::default(); - model.set_from_json(row)?; + let model = ::from_json(row)?; ::Entity::insert(model) .exec(db) .await?;