committed by
GitHub
77 changed files with 2209 additions and 1748 deletions
@ -1,18 +1,20 @@ |
|||
name: Add to Project |
|||
|
|||
on: |
|||
pull_request_target: |
|||
pull_request_target: # zizmor: ignore[dangerous-triggers] |
|||
issues: |
|||
types: |
|||
- opened |
|||
- reopened |
|||
|
|||
permissions: {} |
|||
|
|||
jobs: |
|||
add-to-project: |
|||
name: Add to project |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- uses: actions/add-to-project@v1.0.2 |
|||
- uses: actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd # v2.0.0 |
|||
with: |
|||
project-url: https://github.com/orgs/fastapi/projects/2 |
|||
github-token: ${{ secrets.PROJECTS_TOKEN }} |
|||
github-token: ${{ secrets.PROJECTS_TOKEN }} # zizmor: ignore[secrets-outside-env] |
|||
|
|||
@ -9,25 +9,26 @@ on: |
|||
issues: |
|||
types: |
|||
- labeled |
|||
pull_request_target: |
|||
pull_request_target: # zizmor: ignore[dangerous-triggers] |
|||
types: |
|||
- labeled |
|||
workflow_dispatch: |
|||
|
|||
permissions: |
|||
issues: write |
|||
pull-requests: write |
|||
permissions: {} |
|||
|
|||
jobs: |
|||
issue-manager: |
|||
if: github.repository_owner == 'fastapi' |
|||
runs-on: ubuntu-latest |
|||
permissions: |
|||
issues: write |
|||
pull-requests: write |
|||
steps: |
|||
- name: Dump GitHub context |
|||
env: |
|||
GITHUB_CONTEXT: ${{ toJson(github) }} |
|||
run: echo "$GITHUB_CONTEXT" |
|||
- uses: tiangolo/[email protected] |
|||
- uses: tiangolo/issue-manager@2fb3484ec9279485df8659e8ec73de262431737d # 0.6.0 |
|||
with: |
|||
token: ${{ secrets.GITHUB_TOKEN }} |
|||
config: > |
|||
|
|||
@ -1,7 +1,7 @@ |
|||
name: Latest Changes |
|||
|
|||
on: |
|||
pull_request_target: |
|||
pull_request_target: # zizmor: ignore[dangerous-triggers] |
|||
branches: |
|||
- master |
|||
types: |
|||
@ -16,27 +16,29 @@ on: |
|||
required: false |
|||
default: 'false' |
|||
|
|||
permissions: {} |
|||
|
|||
jobs: |
|||
latest-changes: |
|||
runs-on: ubuntu-latest |
|||
if: github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true |
|||
steps: |
|||
- name: Dump GitHub context |
|||
env: |
|||
GITHUB_CONTEXT: ${{ toJson(github) }} |
|||
run: echo "$GITHUB_CONTEXT" |
|||
# pin to actions/checkout@v5 for compatibility with latest-changes |
|||
# Ref: https://github.com/actions/checkout/issues/2313 |
|||
- uses: actions/checkout@v5 |
|||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
|||
with: |
|||
# To allow latest-changes to commit to the main branch |
|||
token: ${{ secrets.FASTAPI_LATEST_CHANGES }} |
|||
token: ${{ secrets.FASTAPI_LATEST_CHANGES }} # zizmor: ignore[secrets-outside-env] |
|||
persist-credentials: true # required by tiangolo/latest-changes |
|||
# Allow debugging with tmate |
|||
- name: Setup tmate session |
|||
uses: mxschmitt/action-tmate@v3 |
|||
uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101 # v3.23 |
|||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} |
|||
with: |
|||
limit-access-to-actor: true |
|||
- uses: tiangolo/[email protected] |
|||
- uses: tiangolo/latest-changes@c9d329cb147f0ddf4fb631214e3f838ff17ccbbd # 0.4.1 |
|||
with: |
|||
token: ${{ secrets.GITHUB_TOKEN }} |
|||
latest_changes_file: docs/en/docs/release-notes.md |
|||
|
|||
@ -6,6 +6,8 @@ on: |
|||
- opened |
|||
- synchronize |
|||
|
|||
permissions: {} |
|||
|
|||
env: |
|||
# Forks and Dependabot don't have access to secrets |
|||
HAS_SECRETS: ${{ secrets.PRE_COMMIT != '' }} |
|||
@ -18,7 +20,7 @@ jobs: |
|||
env: |
|||
GITHUB_CONTEXT: ${{ toJson(github) }} |
|||
run: echo "$GITHUB_CONTEXT" |
|||
- uses: actions/checkout@v5 |
|||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
|||
name: Checkout PR for own repo |
|||
if: env.HAS_SECRETS == 'true' |
|||
with: |
|||
@ -28,22 +30,25 @@ jobs: |
|||
# And it needs the full history to be able to compute diffs |
|||
fetch-depth: 0 |
|||
# A token other than the default GITHUB_TOKEN is needed to be able to trigger CI |
|||
token: ${{ secrets.PRE_COMMIT }} |
|||
token: ${{ secrets.PRE_COMMIT }} # zizmor: ignore[secrets-outside-env] |
|||
persist-credentials: true # Required for `git push` command |
|||
# pre-commit lite ci needs the default checkout configs to work |
|||
- uses: actions/checkout@v5 |
|||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
|||
name: Checkout PR for fork |
|||
if: env.HAS_SECRETS == 'false' |
|||
with: |
|||
# To be able to commit it needs the head branch of the PR, the remote one |
|||
ref: ${{ github.event.pull_request.head.sha }} |
|||
fetch-depth: 0 |
|||
persist-credentials: false |
|||
- name: Set up Python |
|||
uses: actions/setup-python@v6 |
|||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 |
|||
with: |
|||
python-version-file: ".python-version" |
|||
- name: Setup uv |
|||
uses: astral-sh/setup-uv@v7 |
|||
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 |
|||
with: |
|||
version: "0.11.4" |
|||
cache-dependency-glob: | |
|||
pyproject.toml |
|||
uv.lock |
|||
@ -51,7 +56,7 @@ jobs: |
|||
run: uv sync --locked --extra all |
|||
- name: Run prek - pre-commit |
|||
id: precommit |
|||
run: uvx prek run --from-ref origin/${GITHUB_BASE_REF} --to-ref HEAD --show-diff-on-failure |
|||
run: uv run prek run --from-ref origin/${GITHUB_BASE_REF} --to-ref HEAD --show-diff-on-failure |
|||
continue-on-error: true |
|||
- name: Commit and push changes |
|||
if: env.HAS_SECRETS == 'true' |
|||
@ -65,7 +70,7 @@ jobs: |
|||
git commit -m "🎨 Auto format" |
|||
git push |
|||
fi |
|||
- uses: pre-commit-ci/[email protected] |
|||
- uses: pre-commit-ci/lite-action@5d6cc0eb514c891a40562a58a8e71576c5c7fb43 # v1.1.0 |
|||
if: env.HAS_SECRETS == 'false' |
|||
with: |
|||
msg: 🎨 Auto format |
|||
@ -85,6 +90,6 @@ jobs: |
|||
GITHUB_CONTEXT: ${{ toJson(github) }} |
|||
run: echo "$GITHUB_CONTEXT" |
|||
- name: Decide whether the needed jobs succeeded or failed |
|||
uses: re-actors/alls-green@release/v1 |
|||
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2 |
|||
with: |
|||
jobs: ${{ toJSON(needs) }} |
|||
|
|||
@ -1,495 +1,495 @@ |
|||
- name: full-stack-fastapi-template |
|||
html_url: https://github.com/fastapi/full-stack-fastapi-template |
|||
stars: 42397 |
|||
stars: 42944 |
|||
owner_login: fastapi |
|||
owner_html_url: https://github.com/fastapi |
|||
- name: Hello-Python |
|||
html_url: https://github.com/mouredev/Hello-Python |
|||
stars: 34997 |
|||
stars: 35430 |
|||
owner_login: mouredev |
|||
owner_html_url: https://github.com/mouredev |
|||
- name: serve |
|||
html_url: https://github.com/jina-ai/serve |
|||
stars: 21857 |
|||
stars: 21876 |
|||
owner_login: jina-ai |
|||
owner_html_url: https://github.com/jina-ai |
|||
- name: HivisionIDPhotos |
|||
html_url: https://github.com/Zeyi-Lin/HivisionIDPhotos |
|||
stars: 20868 |
|||
stars: 21054 |
|||
owner_login: Zeyi-Lin |
|||
owner_html_url: https://github.com/Zeyi-Lin |
|||
- name: sqlmodel |
|||
html_url: https://github.com/fastapi/sqlmodel |
|||
stars: 17770 |
|||
stars: 17886 |
|||
owner_login: fastapi |
|||
owner_html_url: https://github.com/fastapi |
|||
- name: fastapi-best-practices |
|||
html_url: https://github.com/zhanymkanov/fastapi-best-practices |
|||
stars: 16897 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: Douyin_TikTok_Download_API |
|||
html_url: https://github.com/Evil0ctal/Douyin_TikTok_Download_API |
|||
stars: 16878 |
|||
stars: 17546 |
|||
owner_login: Evil0ctal |
|||
owner_html_url: https://github.com/Evil0ctal |
|||
- name: fastapi-best-practices |
|||
html_url: https://github.com/zhanymkanov/fastapi-best-practices |
|||
stars: 17138 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: SurfSense |
|||
html_url: https://github.com/MODSetter/SurfSense |
|||
stars: 13614 |
|||
stars: 14045 |
|||
owner_login: MODSetter |
|||
owner_html_url: https://github.com/MODSetter |
|||
- name: machine-learning-zoomcamp |
|||
html_url: https://github.com/DataTalksClub/machine-learning-zoomcamp |
|||
stars: 12780 |
|||
stars: 13015 |
|||
owner_login: DataTalksClub |
|||
owner_html_url: https://github.com/DataTalksClub |
|||
- name: fastapi_mcp |
|||
html_url: https://github.com/tadata-org/fastapi_mcp |
|||
stars: 11752 |
|||
stars: 11837 |
|||
owner_login: tadata-org |
|||
owner_html_url: https://github.com/tadata-org |
|||
- name: awesome-fastapi |
|||
html_url: https://github.com/mjhea0/awesome-fastapi |
|||
stars: 11203 |
|||
stars: 11315 |
|||
owner_login: mjhea0 |
|||
owner_html_url: https://github.com/mjhea0 |
|||
- name: XHS-Downloader |
|||
html_url: https://github.com/JoeanAmier/XHS-Downloader |
|||
stars: 10612 |
|||
stars: 11013 |
|||
owner_login: JoeanAmier |
|||
owner_html_url: https://github.com/JoeanAmier |
|||
- name: polar |
|||
html_url: https://github.com/polarsource/polar |
|||
stars: 9626 |
|||
stars: 9775 |
|||
owner_login: polarsource |
|||
owner_html_url: https://github.com/polarsource |
|||
- name: pycaret |
|||
html_url: https://github.com/pycaret/pycaret |
|||
stars: 9753 |
|||
owner_login: pycaret |
|||
owner_html_url: https://github.com/pycaret |
|||
- name: FastUI |
|||
html_url: https://github.com/pydantic/FastUI |
|||
stars: 8958 |
|||
stars: 8961 |
|||
owner_login: pydantic |
|||
owner_html_url: https://github.com/pydantic |
|||
- name: FileCodeBox |
|||
html_url: https://github.com/vastsa/FileCodeBox |
|||
stars: 8191 |
|||
stars: 8241 |
|||
owner_login: vastsa |
|||
owner_html_url: https://github.com/vastsa |
|||
- name: nonebot2 |
|||
html_url: https://github.com/nonebot/nonebot2 |
|||
stars: 7456 |
|||
stars: 7488 |
|||
owner_login: nonebot |
|||
owner_html_url: https://github.com/nonebot |
|||
- name: hatchet |
|||
html_url: https://github.com/hatchet-dev/hatchet |
|||
stars: 6784 |
|||
stars: 7044 |
|||
owner_login: hatchet-dev |
|||
owner_html_url: https://github.com/hatchet-dev |
|||
- name: fastapi-users |
|||
html_url: https://github.com/fastapi-users/fastapi-users |
|||
stars: 6064 |
|||
stars: 6107 |
|||
owner_login: fastapi-users |
|||
owner_html_url: https://github.com/fastapi-users |
|||
- name: serge |
|||
html_url: https://github.com/serge-chat/serge |
|||
stars: 5738 |
|||
stars: 5731 |
|||
owner_login: serge-chat |
|||
owner_html_url: https://github.com/serge-chat |
|||
- name: Yuxi |
|||
html_url: https://github.com/xerrors/Yuxi |
|||
stars: 4761 |
|||
stars: 5063 |
|||
owner_login: xerrors |
|||
owner_html_url: https://github.com/xerrors |
|||
- name: Kokoro-FastAPI |
|||
html_url: https://github.com/remsky/Kokoro-FastAPI |
|||
stars: 4649 |
|||
stars: 4785 |
|||
owner_login: remsky |
|||
owner_html_url: https://github.com/remsky |
|||
- name: strawberry |
|||
html_url: https://github.com/strawberry-graphql/strawberry |
|||
stars: 4636 |
|||
stars: 4649 |
|||
owner_login: strawberry-graphql |
|||
owner_html_url: https://github.com/strawberry-graphql |
|||
- name: devpush |
|||
html_url: https://github.com/hunvreus/devpush |
|||
stars: 4589 |
|||
stars: 4641 |
|||
owner_login: hunvreus |
|||
owner_html_url: https://github.com/hunvreus |
|||
- name: poem |
|||
html_url: https://github.com/poem-web/poem |
|||
stars: 4375 |
|||
stars: 4387 |
|||
owner_login: poem-web |
|||
owner_html_url: https://github.com/poem-web |
|||
- name: dynaconf |
|||
html_url: https://github.com/dynaconf/dynaconf |
|||
stars: 4276 |
|||
stars: 4291 |
|||
owner_login: dynaconf |
|||
owner_html_url: https://github.com/dynaconf |
|||
- name: chatgpt-web-share |
|||
html_url: https://github.com/chatpire/chatgpt-web-share |
|||
stars: 4272 |
|||
stars: 4269 |
|||
owner_login: chatpire |
|||
owner_html_url: https://github.com/chatpire |
|||
- name: logfire |
|||
html_url: https://github.com/pydantic/logfire |
|||
stars: 4145 |
|||
stars: 4206 |
|||
owner_login: pydantic |
|||
owner_html_url: https://github.com/pydantic |
|||
- name: atrilabs-engine |
|||
html_url: https://github.com/Atri-Labs/atrilabs-engine |
|||
stars: 4086 |
|||
stars: 4080 |
|||
owner_login: Atri-Labs |
|||
owner_html_url: https://github.com/Atri-Labs |
|||
- name: huma |
|||
html_url: https://github.com/danielgtaylor/huma |
|||
stars: 3933 |
|||
stars: 4043 |
|||
owner_login: danielgtaylor |
|||
owner_html_url: https://github.com/danielgtaylor |
|||
- name: LitServe |
|||
html_url: https://github.com/Lightning-AI/LitServe |
|||
stars: 3851 |
|||
owner_login: Lightning-AI |
|||
owner_html_url: https://github.com/Lightning-AI |
|||
- name: datamodel-code-generator |
|||
html_url: https://github.com/koxudaxi/datamodel-code-generator |
|||
stars: 3839 |
|||
stars: 3882 |
|||
owner_login: koxudaxi |
|||
owner_html_url: https://github.com/koxudaxi |
|||
- name: LitServe |
|||
html_url: https://github.com/Lightning-AI/LitServe |
|||
stars: 3879 |
|||
owner_login: Lightning-AI |
|||
owner_html_url: https://github.com/Lightning-AI |
|||
- name: fastapi-admin |
|||
html_url: https://github.com/fastapi-admin/fastapi-admin |
|||
stars: 3745 |
|||
stars: 3759 |
|||
owner_login: fastapi-admin |
|||
owner_html_url: https://github.com/fastapi-admin |
|||
- name: mcp-context-forge |
|||
html_url: https://github.com/IBM/mcp-context-forge |
|||
stars: 3644 |
|||
owner_login: IBM |
|||
owner_html_url: https://github.com/IBM |
|||
- name: tracecat |
|||
html_url: https://github.com/TracecatHQ/tracecat |
|||
stars: 3542 |
|||
stars: 3564 |
|||
owner_login: TracecatHQ |
|||
owner_html_url: https://github.com/TracecatHQ |
|||
- name: farfalle |
|||
html_url: https://github.com/rashadphz/farfalle |
|||
stars: 3521 |
|||
stars: 3530 |
|||
owner_login: rashadphz |
|||
owner_html_url: https://github.com/rashadphz |
|||
- name: mcp-context-forge |
|||
html_url: https://github.com/IBM/mcp-context-forge |
|||
stars: 3501 |
|||
owner_login: IBM |
|||
owner_html_url: https://github.com/IBM |
|||
- name: opyrator |
|||
html_url: https://github.com/ml-tooling/opyrator |
|||
stars: 3137 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: honcho |
|||
html_url: https://github.com/plastic-labs/honcho |
|||
stars: 3135 |
|||
owner_login: plastic-labs |
|||
owner_html_url: https://github.com/plastic-labs |
|||
- name: docarray |
|||
html_url: https://github.com/docarray/docarray |
|||
stars: 3120 |
|||
stars: 3118 |
|||
owner_login: docarray |
|||
owner_html_url: https://github.com/docarray |
|||
- name: fastapi-realworld-example-app |
|||
html_url: https://github.com/nsidnev/fastapi-realworld-example-app |
|||
stars: 3092 |
|||
stars: 3111 |
|||
owner_login: nsidnev |
|||
owner_html_url: https://github.com/nsidnev |
|||
- name: uvicorn-gunicorn-fastapi-docker |
|||
html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker |
|||
stars: 2913 |
|||
stars: 2912 |
|||
owner_login: tiangolo |
|||
owner_html_url: https://github.com/tiangolo |
|||
- name: FastAPI-template |
|||
html_url: https://github.com/s3rius/FastAPI-template |
|||
stars: 2768 |
|||
stars: 2780 |
|||
owner_login: s3rius |
|||
owner_html_url: https://github.com/s3rius |
|||
- name: best-of-web-python |
|||
html_url: https://github.com/ml-tooling/best-of-web-python |
|||
stars: 2703 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: sqladmin |
|||
html_url: https://github.com/smithyhq/sqladmin |
|||
stars: 2696 |
|||
stars: 2716 |
|||
owner_login: smithyhq |
|||
owner_html_url: https://github.com/smithyhq |
|||
- name: best-of-web-python |
|||
html_url: https://github.com/ml-tooling/best-of-web-python |
|||
stars: 2711 |
|||
owner_login: ml-tooling |
|||
owner_html_url: https://github.com/ml-tooling |
|||
- name: YC-Killer |
|||
html_url: https://github.com/sahibzada-allahyar/YC-Killer |
|||
stars: 2675 |
|||
stars: 2626 |
|||
owner_login: sahibzada-allahyar |
|||
owner_html_url: https://github.com/sahibzada-allahyar |
|||
- name: fastapi-react |
|||
html_url: https://github.com/Buuntu/fastapi-react |
|||
stars: 2579 |
|||
stars: 2581 |
|||
owner_login: Buuntu |
|||
owner_html_url: https://github.com/Buuntu |
|||
- name: supabase-py |
|||
html_url: https://github.com/supabase/supabase-py |
|||
stars: 2486 |
|||
stars: 2499 |
|||
owner_login: supabase |
|||
owner_html_url: https://github.com/supabase |
|||
- name: RasaGPT |
|||
html_url: https://github.com/paulpierre/RasaGPT |
|||
stars: 2462 |
|||
stars: 2466 |
|||
owner_login: paulpierre |
|||
owner_html_url: https://github.com/paulpierre |
|||
- name: 30-Days-of-Python |
|||
html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python |
|||
stars: 2450 |
|||
owner_login: codingforentrepreneurs |
|||
owner_html_url: https://github.com/codingforentrepreneurs |
|||
- name: NoteDiscovery |
|||
html_url: https://github.com/gamosoft/NoteDiscovery |
|||
stars: 2400 |
|||
stars: 2465 |
|||
owner_login: gamosoft |
|||
owner_html_url: https://github.com/gamosoft |
|||
- name: 30-Days-of-Python |
|||
html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python |
|||
stars: 2459 |
|||
owner_login: codingforentrepreneurs |
|||
owner_html_url: https://github.com/codingforentrepreneurs |
|||
- name: AIstudioProxyAPI |
|||
html_url: https://github.com/CJackHwang/AIstudioProxyAPI |
|||
stars: 2346 |
|||
owner_login: CJackHwang |
|||
owner_html_url: https://github.com/CJackHwang |
|||
- name: nextpy |
|||
html_url: https://github.com/dot-agent/nextpy |
|||
stars: 2339 |
|||
stars: 2336 |
|||
owner_login: dot-agent |
|||
owner_html_url: https://github.com/dot-agent |
|||
- name: fastapi-utils |
|||
html_url: https://github.com/fastapiutils/fastapi-utils |
|||
stars: 2308 |
|||
owner_login: fastapiutils |
|||
owner_html_url: https://github.com/fastapiutils |
|||
- name: langserve |
|||
html_url: https://github.com/langchain-ai/langserve |
|||
stars: 2300 |
|||
stars: 2319 |
|||
owner_login: langchain-ai |
|||
owner_html_url: https://github.com/langchain-ai |
|||
- name: solara |
|||
html_url: https://github.com/widgetti/solara |
|||
stars: 2156 |
|||
owner_login: widgetti |
|||
owner_html_url: https://github.com/widgetti |
|||
- name: fastapi-best-architecture |
|||
html_url: https://github.com/fastapi-practices/fastapi-best-architecture |
|||
stars: 2148 |
|||
owner_login: fastapi-practices |
|||
owner_html_url: https://github.com/fastapi-practices |
|||
- name: fastapi-utils |
|||
html_url: https://github.com/fastapiutils/fastapi-utils |
|||
stars: 2306 |
|||
owner_login: fastapiutils |
|||
owner_html_url: https://github.com/fastapiutils |
|||
- name: fastapi-langgraph-agent-production-ready-template |
|||
html_url: https://github.com/wassim249/fastapi-langgraph-agent-production-ready-template |
|||
stars: 2103 |
|||
stars: 2218 |
|||
owner_login: wassim249 |
|||
owner_html_url: https://github.com/wassim249 |
|||
- name: mangum |
|||
html_url: https://github.com/Kludex/mangum |
|||
stars: 2100 |
|||
owner_login: Kludex |
|||
owner_html_url: https://github.com/Kludex |
|||
- name: fastapi-best-architecture |
|||
html_url: https://github.com/fastapi-practices/fastapi-best-architecture |
|||
stars: 2206 |
|||
owner_login: fastapi-practices |
|||
owner_html_url: https://github.com/fastapi-practices |
|||
- name: solara |
|||
html_url: https://github.com/widgetti/solara |
|||
stars: 2160 |
|||
owner_login: widgetti |
|||
owner_html_url: https://github.com/widgetti |
|||
- name: vue-fastapi-admin |
|||
html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin |
|||
stars: 2059 |
|||
stars: 2108 |
|||
owner_login: mizhexiaoxiao |
|||
owner_html_url: https://github.com/mizhexiaoxiao |
|||
- name: agentkit |
|||
html_url: https://github.com/BCG-X-Official/agentkit |
|||
stars: 1947 |
|||
owner_login: BCG-X-Official |
|||
owner_html_url: https://github.com/BCG-X-Official |
|||
- name: mangum |
|||
html_url: https://github.com/Kludex/mangum |
|||
stars: 2106 |
|||
owner_login: Kludex |
|||
owner_html_url: https://github.com/Kludex |
|||
- name: slowapi |
|||
html_url: https://github.com/laurentS/slowapi |
|||
stars: 1946 |
|||
stars: 1960 |
|||
owner_login: laurentS |
|||
owner_html_url: https://github.com/laurentS |
|||
- name: openapi-python-client |
|||
html_url: https://github.com/openapi-generators/openapi-python-client |
|||
stars: 1930 |
|||
owner_login: openapi-generators |
|||
owner_html_url: https://github.com/openapi-generators |
|||
- name: xhs_ai_publisher |
|||
html_url: https://github.com/BetaStreetOmnis/xhs_ai_publisher |
|||
stars: 1904 |
|||
stars: 1948 |
|||
owner_login: BetaStreetOmnis |
|||
owner_html_url: https://github.com/BetaStreetOmnis |
|||
- name: agentkit |
|||
html_url: https://github.com/BCG-X-Official/agentkit |
|||
stars: 1944 |
|||
owner_login: BCG-X-Official |
|||
owner_html_url: https://github.com/BCG-X-Official |
|||
- name: openapi-python-client |
|||
html_url: https://github.com/openapi-generators/openapi-python-client |
|||
stars: 1941 |
|||
owner_login: openapi-generators |
|||
owner_html_url: https://github.com/openapi-generators |
|||
- name: manage-fastapi |
|||
html_url: https://github.com/ycd/manage-fastapi |
|||
stars: 1898 |
|||
stars: 1901 |
|||
owner_login: ycd |
|||
owner_html_url: https://github.com/ycd |
|||
- name: piccolo |
|||
html_url: https://github.com/piccolo-orm/piccolo |
|||
stars: 1876 |
|||
stars: 1896 |
|||
owner_login: piccolo-orm |
|||
owner_html_url: https://github.com/piccolo-orm |
|||
- name: FastAPI-boilerplate |
|||
html_url: https://github.com/benavlabs/FastAPI-boilerplate |
|||
stars: 1859 |
|||
stars: 1892 |
|||
owner_login: benavlabs |
|||
owner_html_url: https://github.com/benavlabs |
|||
- name: fastapi-cache |
|||
html_url: https://github.com/long2ice/fastapi-cache |
|||
stars: 1853 |
|||
stars: 1859 |
|||
owner_login: long2ice |
|||
owner_html_url: https://github.com/long2ice |
|||
- name: any-auto-register |
|||
html_url: https://github.com/lxf746/any-auto-register |
|||
stars: 1857 |
|||
owner_login: lxf746 |
|||
owner_html_url: https://github.com/lxf746 |
|||
- name: python-week-2022 |
|||
html_url: https://github.com/rochacbruno/python-week-2022 |
|||
stars: 1809 |
|||
stars: 1810 |
|||
owner_login: rochacbruno |
|||
owner_html_url: https://github.com/rochacbruno |
|||
- name: ormar |
|||
html_url: https://github.com/ormar-orm/ormar |
|||
stars: 1808 |
|||
stars: 1806 |
|||
owner_login: ormar-orm |
|||
owner_html_url: https://github.com/ormar-orm |
|||
- name: termpair |
|||
html_url: https://github.com/cs01/termpair |
|||
stars: 1730 |
|||
stars: 1731 |
|||
owner_login: cs01 |
|||
owner_html_url: https://github.com/cs01 |
|||
- name: fastapi-crudrouter |
|||
html_url: https://github.com/awtkns/fastapi-crudrouter |
|||
stars: 1683 |
|||
stars: 1687 |
|||
owner_login: awtkns |
|||
owner_html_url: https://github.com/awtkns |
|||
- name: fastapi-pagination |
|||
html_url: https://github.com/uriyyo/fastapi-pagination |
|||
stars: 1638 |
|||
owner_login: uriyyo |
|||
owner_html_url: https://github.com/uriyyo |
|||
- name: bracket |
|||
html_url: https://github.com/evroon/bracket |
|||
stars: 1638 |
|||
stars: 1653 |
|||
owner_login: evroon |
|||
owner_html_url: https://github.com/evroon |
|||
- name: WebRPA |
|||
html_url: https://github.com/pmh1314520/WebRPA |
|||
stars: 1653 |
|||
owner_login: pmh1314520 |
|||
owner_html_url: https://github.com/pmh1314520 |
|||
- name: fastapi-pagination |
|||
html_url: https://github.com/uriyyo/fastapi-pagination |
|||
stars: 1646 |
|||
owner_login: uriyyo |
|||
owner_html_url: https://github.com/uriyyo |
|||
- name: langchain-serve |
|||
html_url: https://github.com/jina-ai/langchain-serve |
|||
stars: 1634 |
|||
stars: 1640 |
|||
owner_login: jina-ai |
|||
owner_html_url: https://github.com/jina-ai |
|||
- name: headroom |
|||
html_url: https://github.com/chopratejas/headroom |
|||
stars: 1624 |
|||
owner_login: chopratejas |
|||
owner_html_url: https://github.com/chopratejas |
|||
- name: awesome-fastapi-projects |
|||
html_url: https://github.com/Kludex/awesome-fastapi-projects |
|||
stars: 1597 |
|||
stars: 1599 |
|||
owner_login: Kludex |
|||
owner_html_url: https://github.com/Kludex |
|||
- name: coronavirus-tracker-api |
|||
html_url: https://github.com/ExpDev07/coronavirus-tracker-api |
|||
stars: 1568 |
|||
stars: 1567 |
|||
owner_login: ExpDev07 |
|||
owner_html_url: https://github.com/ExpDev07 |
|||
- name: WebRPA |
|||
html_url: https://github.com/pmh1314520/WebRPA |
|||
stars: 1532 |
|||
owner_login: pmh1314520 |
|||
owner_html_url: https://github.com/pmh1314520 |
|||
- name: fastapi-amis-admin |
|||
html_url: https://github.com/amisadmin/fastapi-amis-admin |
|||
stars: 1527 |
|||
stars: 1541 |
|||
owner_login: amisadmin |
|||
owner_html_url: https://github.com/amisadmin |
|||
- name: fastcrud |
|||
html_url: https://github.com/benavlabs/fastcrud |
|||
stars: 1506 |
|||
stars: 1512 |
|||
owner_login: benavlabs |
|||
owner_html_url: https://github.com/benavlabs |
|||
- name: open-wearables |
|||
html_url: https://github.com/the-momentum/open-wearables |
|||
stars: 1496 |
|||
owner_login: the-momentum |
|||
owner_html_url: https://github.com/the-momentum |
|||
- name: fastapi-boilerplate |
|||
html_url: https://github.com/teamhide/fastapi-boilerplate |
|||
stars: 1482 |
|||
stars: 1486 |
|||
owner_login: teamhide |
|||
owner_html_url: https://github.com/teamhide |
|||
- name: awesome-python-resources |
|||
html_url: https://github.com/DjangoEx/awesome-python-resources |
|||
stars: 1444 |
|||
owner_login: DjangoEx |
|||
owner_html_url: https://github.com/DjangoEx |
|||
- name: prometheus-fastapi-instrumentator |
|||
html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator |
|||
stars: 1438 |
|||
owner_login: trallnag |
|||
owner_html_url: https://github.com/trallnag |
|||
- name: honcho |
|||
html_url: https://github.com/plastic-labs/honcho |
|||
stars: 1419 |
|||
owner_login: plastic-labs |
|||
owner_html_url: https://github.com/plastic-labs |
|||
- name: tavily-key-generator |
|||
html_url: https://github.com/skernelx/tavily-key-generator |
|||
stars: 1416 |
|||
stars: 1478 |
|||
owner_login: skernelx |
|||
owner_html_url: https://github.com/skernelx |
|||
- name: prometheus-fastapi-instrumentator |
|||
html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator |
|||
stars: 1451 |
|||
owner_login: trallnag |
|||
owner_html_url: https://github.com/trallnag |
|||
- name: awesome-python-resources |
|||
html_url: https://github.com/DjangoEx/awesome-python-resources |
|||
stars: 1449 |
|||
owner_login: DjangoEx |
|||
owner_html_url: https://github.com/DjangoEx |
|||
- name: fastapi-tutorial |
|||
html_url: https://github.com/liaogx/fastapi-tutorial |
|||
stars: 1384 |
|||
stars: 1399 |
|||
owner_login: liaogx |
|||
owner_html_url: https://github.com/liaogx |
|||
- name: fastapi-code-generator |
|||
html_url: https://github.com/koxudaxi/fastapi-code-generator |
|||
stars: 1384 |
|||
stars: 1383 |
|||
owner_login: koxudaxi |
|||
owner_html_url: https://github.com/koxudaxi |
|||
- name: budgetml |
|||
html_url: https://github.com/ebhy/budgetml |
|||
stars: 1346 |
|||
stars: 1345 |
|||
owner_login: ebhy |
|||
owner_html_url: https://github.com/ebhy |
|||
- name: bolt-python |
|||
html_url: https://github.com/slackapi/bolt-python |
|||
stars: 1286 |
|||
owner_login: slackapi |
|||
owner_html_url: https://github.com/slackapi |
|||
- name: aktools |
|||
html_url: https://github.com/akfamily/aktools |
|||
stars: 1283 |
|||
stars: 1334 |
|||
owner_login: akfamily |
|||
owner_html_url: https://github.com/akfamily |
|||
- name: RuoYi-Vue3-FastAPI |
|||
html_url: https://github.com/insistence/RuoYi-Vue3-FastAPI |
|||
stars: 1302 |
|||
owner_login: insistence |
|||
owner_html_url: https://github.com/insistence |
|||
- name: bolt-python |
|||
html_url: https://github.com/slackapi/bolt-python |
|||
stars: 1296 |
|||
owner_login: slackapi |
|||
owner_html_url: https://github.com/slackapi |
|||
- name: bedrock-chat |
|||
html_url: https://github.com/aws-samples/bedrock-chat |
|||
stars: 1282 |
|||
stars: 1288 |
|||
owner_login: aws-samples |
|||
owner_html_url: https://github.com/aws-samples |
|||
- name: fastapi-scaff |
|||
html_url: https://github.com/atpuxiner/fastapi-scaff |
|||
stars: 1275 |
|||
owner_login: atpuxiner |
|||
owner_html_url: https://github.com/atpuxiner |
|||
- name: fastapi-alembic-sqlmodel-async |
|||
html_url: https://github.com/vargasjona/fastapi-alembic-sqlmodel-async |
|||
stars: 1267 |
|||
owner_login: vargasjona |
|||
owner_html_url: https://github.com/vargasjona |
|||
- name: restish |
|||
html_url: https://github.com/rest-sh/restish |
|||
stars: 1258 |
|||
stars: 1279 |
|||
owner_login: rest-sh |
|||
owner_html_url: https://github.com/rest-sh |
|||
- name: RuoYi-Vue3-FastAPI |
|||
html_url: https://github.com/insistence/RuoYi-Vue3-FastAPI |
|||
stars: 1248 |
|||
owner_login: insistence |
|||
owner_html_url: https://github.com/insistence |
|||
- name: fastapi-alembic-sqlmodel-async |
|||
html_url: https://github.com/vargasjona/fastapi-alembic-sqlmodel-async |
|||
stars: 1270 |
|||
owner_login: vargasjona |
|||
owner_html_url: https://github.com/vargasjona |
|||
- name: fastapi_production_template |
|||
html_url: https://github.com/zhanymkanov/fastapi_production_template |
|||
stars: 1240 |
|||
stars: 1243 |
|||
owner_login: zhanymkanov |
|||
owner_html_url: https://github.com/zhanymkanov |
|||
- name: langchain-extract |
|||
html_url: https://github.com/langchain-ai/langchain-extract |
|||
stars: 1193 |
|||
owner_login: langchain-ai |
|||
owner_html_url: https://github.com/langchain-ai |
|||
- name: open-wearables |
|||
html_url: https://github.com/the-momentum/open-wearables |
|||
stars: 1170 |
|||
owner_login: the-momentum |
|||
owner_html_url: https://github.com/the-momentum |
|||
- name: odmantic |
|||
html_url: https://github.com/art049/odmantic |
|||
stars: 1168 |
|||
owner_login: art049 |
|||
owner_html_url: https://github.com/art049 |
|||
- name: authx |
|||
html_url: https://github.com/yezz123/authx |
|||
stars: 1160 |
|||
owner_login: yezz123 |
|||
owner_html_url: https://github.com/yezz123 |
|||
- name: FileSync |
|||
html_url: https://github.com/polius/FileSync |
|||
stars: 1153 |
|||
owner_login: polius |
|||
owner_html_url: https://github.com/polius |
|||
- name: enterprise-deep-research |
|||
html_url: https://github.com/SalesforceAIResearch/enterprise-deep-research |
|||
stars: 1150 |
|||
owner_login: SalesforceAIResearch |
|||
owner_html_url: https://github.com/SalesforceAIResearch |
|||
- name: yubal |
|||
html_url: https://github.com/guillevc/yubal |
|||
stars: 1135 |
|||
stars: 1203 |
|||
owner_login: guillevc |
|||
owner_html_url: https://github.com/guillevc |
|||
- name: langchain-extract |
|||
html_url: https://github.com/langchain-ai/langchain-extract |
|||
stars: 1196 |
|||
owner_login: langchain-ai |
|||
owner_html_url: https://github.com/langchain-ai |
|||
- name: Chatterbox-TTS-Server |
|||
html_url: https://github.com/devnen/Chatterbox-TTS-Server |
|||
stars: 1194 |
|||
owner_login: devnen |
|||
owner_html_url: https://github.com/devnen |
|||
|
|||
@ -1,44 +0,0 @@ |
|||
# Vibe Coding { #vibe-coding } |
|||
|
|||
Are you tired of all that **data validation**, **documentation**, **serialization**, and all that **boring** stuff? |
|||
|
|||
Do you just want to **vibe**? 🎶 |
|||
|
|||
**FastAPI** now supports a new `@app.vibe()` decorator that embraces **modern AI coding best practices**. 🤖 |
|||
|
|||
## How It Works { #how-it-works } |
|||
|
|||
The `@app.vibe()` decorator is intended to receive **any HTTP method** (`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, etc.) and **any payload**. |
|||
|
|||
The body should be annotated with `Any`, because the request and the response would be... well... **anything**. 🤷 |
|||
|
|||
The idea is that you would receive the payload and send it **directly** to an LLM provider, using a `prompt` to tell the LLM what to do, and return the response **as is**. No questions asked. |
|||
|
|||
You don't even need to write the body of the function. The `@app.vibe()` decorator does everything for you based on AI vibes: |
|||
|
|||
{* ../../docs_src/vibe/tutorial001_py310.py hl[8:12] *} |
|||
|
|||
## Benefits { #benefits } |
|||
|
|||
By using `@app.vibe()`, you get to enjoy: |
|||
|
|||
* **Freedom**: No data validation. No schemas. No constraints. Just vibes. ✨ |
|||
* **Flexibility**: The request can be anything. The response can be anything. Who needs types anyway? |
|||
* **No documentation**: Why document your API when an LLM can figure it out? Auto-generated OpenAPI docs are *so* 2020. |
|||
* **No serialization**: Just pass the raw, unstructured data around. Serialization is for people who don't trust their LLMs. |
|||
* **Embrace modern AI coding practices**: Leave everything up to an LLM to decide. The model knows best. Always. |
|||
* **No code reviews**: There's no code to review. No PRs to approve. No comments to address. Embrace vibe coding fully, replace the theater of approving and merging vibe coded PRs that no one looks at with full proper vibes only. |
|||
|
|||
/// tip |
|||
|
|||
This is the ultimate **vibe-driven development** experience. You don't need to think about what your API does, just let the LLM handle it. 🧘 |
|||
|
|||
/// |
|||
|
|||
## Try It { #try-it } |
|||
|
|||
Go ahead, try it: |
|||
|
|||
{* ../../docs_src/vibe/tutorial001_py310.py *} |
|||
|
|||
...and see what happens. 😎 |
|||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
@ -1,12 +0,0 @@ |
|||
from typing import Any |
|||
|
|||
from fastapi import FastAPI |
|||
|
|||
app = FastAPI() |
|||
|
|||
|
|||
@app.vibe( |
|||
"/vibe/", |
|||
prompt="pls return json of users from database. make no mistakes", |
|||
) |
|||
async def ai_vibes(body: Any): ... |
|||
@ -1,17 +0,0 @@ |
|||
from typing import Any |
|||
|
|||
import pytest |
|||
from fastapi import FastAPI |
|||
from fastapi.exceptions import FastAPIError |
|||
|
|||
|
|||
def test_vibe_raises(): |
|||
with pytest.raises(FastAPIError, match="Are you kidding me"): |
|||
app = FastAPI() |
|||
|
|||
@app.vibe( |
|||
"/vibe/", |
|||
prompt="pls return json of users from database. make no mistakes", |
|||
) |
|||
async def ai_vibes(body: Any): # pragma: nocover |
|||
pass |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue