benavlabs/fastcrud

FastAPI 向けの強力な非同期 CRUD 操作と自動エンドポイント生成ツール

開発の材料自由に使える · MITバックエンド・DBPython難易度
1,537+7今週0
116フォーク12Issue
デモ・公式サイトをひらくbenavlabs.github.io

中辛 の解説

FastCRUD は Python 3.10 以上、FastAPI、SQLAlchemy 2.0.21 以上、Pydantic 2.4.1 以上を必要とします。crud_router を使うか FastCRUD クラスを直接統合して、自動または カスタムエンドポイントの両方に対応できます。オフセット・カーソルベースの 2 種類ペジネーション、動的フィルタリング、自動結合条件検出などが組み込まれており、すぐに本番級の を構築できます。デモは公式ドキュメント (benavlabs.github.io/fastcrud) とコード例を参照してください。

이런 레포예요

이럴 때 쓰면 좋아요

  • FastAPI REST API で定型的な CRUD エンドポイントを自動生成したい場合
  • 複数テーブル結合を含む複雑なクエリを効率的に構築したい場合
  • 大規模データセットに対してオフセット・カーソルベースの両方のペジネーションを実装する必要がある場合

핵심 기능

非同期 CRUD 操作と自動エンドポイント生成自動結合条件検出と動的クエリビルディングオフセット・カーソルベースペジネーション対応

대안 대비 차별점

SQLAlchemy 2.0 ネイティブサポートと Pydantic V2 統合により、現代的な Python フレームワークとの相性が良く、さらにエージェント向けの Library Skill バンドルで AI コーディングツール向けの最適な使用方法を提供しています。

食べた人たち

実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。

試食評 · 使った人のひとこと

まだ試食評がありません。使ってみたら、最初のひとことをどうぞ。

ほかのリポジトリの試食評を見る →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

준비물

  • Python 3.10 以上
  • FastAPI
  • SQLAlchemy 2.0.21 以上
  • Pydantic 2.4.1 以上

すぐ動かしてみるPython (uv)

ギット飯がリポジトリの構成を確認して組み立てた実行コマンドです。ターミナルに貼り付ければ、取得から実行までまとめて進みます。

git clone --depth 1 https://github.com/benavlabs/fastcrud.git &&
cd fastcrud &&
uv sync

uv가 없다면: brew install uv · 실행 명령은 README를 확인하세요.

コードは自分の環境で動きます — はじめて見るリポジトリなら、中身にひととおり目を通してから実行するのがおすすめです。

README가 안내하는 자세한 단계 보기
  1. fastcrud をインストールします。
pip install fastcrud
  1. モデルを定義します。
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import DeclarativeBase

class Base(DeclarativeBase):
    pass

class Item(Base):
    __tablename__ = 'items'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    description = Column(String)
  1. Pydantic スキーマを定義します。
from pydantic import BaseModel

class ItemCreateSchema(BaseModel):
    name: str
    description: str

class ItemUpdateSchema(BaseModel):
    name: str
    description: str
  1. FastAPI アプリを設定して CRUD ルーターを組み込みます。
from typing import AsyncGenerator
from fastapi import FastAPI
from fastcrud import FastCRUD, crud_router
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import sessionmaker

DATABASE_URL = "sqlite+aiosqlite:///./test.db"
engine = create_async_engine(DATABASE_URL, echo=True)
async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)

async def get_session() -> AsyncGenerator[AsyncSession, None]:
    async with async_session() as session:
        yield session

async def lifespan(app: FastAPI):
    async with engine.begin() as conn:
        await conn.run_sync(Base.metadata.create_all)
    yield

app = FastAPI(lifespan=lifespan)

item_router = crud_router(
    session=get_session,
    model=Item,
    create_schema=ItemCreateSchema,
    update_schema=ItemUpdateSchema,
    path="/items",
    tags=["Items"],
)

app.include_router(item_router)

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try benavlabs/fastcrud

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

1,537+7 / 7일

使いやすさ · まねしやすいか

まねしやすいサンプル評点 52/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2024 年に作成

「백엔드·DB」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/benavlabs/fastcrud.svg)](https://www.gitbap.com/r/benavlabs/fastcrud)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る