langgenius / langgenius/dify

the roadmap for adapt to modern tech for backend

Open
#30,269 15 comments 3 reactions 1 assignee Claimed by @asukaminato0721 View on GitHub
💪 enhancement project#dify
Dominant language
TypeScript
Stars
156k
Forks
24.6k
Avg merge
22h 9m
Merged PRs (30d)
610

Description

### Self Checks

- [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542).
- [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones.
- [x] I confirm that I am using English to submit this report, otherwise it will be closed.
- [x] Please do not modify this template :) and fill in all the required fields.

### 1. Is this request related to a challenge you're experiencing? Tell me about your story.

flask is painful, it missing type checker.

the roadmap:

1. remove flask-sqlalchemy (doing) https://github.com/langgenius/dify/issues/24138
2. remove reqparse -> BaseModel (doing) https://github.com/langgenius/dify/issues/27513
3. remove api.model -> BaseModel (doing) https://github.com/langgenius/dify/pull/30388
4. ~~maybe change to https://luolingchun.github.io/flask-openapi3/latest/Quickstart/ since it's less hard, but also need to remove model~~
5. ~~adapt fastopenapi https://github.com/mr-fatalyst/fastopenapi (after 2 and 3) , so all the backend api endpoint style is fastapi-style~~
6. ~~flask -> quart https://quart.palletsprojects.com/en/latest/how_to_guides/flask_migration/ (so move to async api) , this need to deal with all the flask plugin, may take long time. and may be optional. draft ~~https://github.com/langgenius/dify/pull/31784
7. quart -> fastapi (currently final goal)

just use fastapi, use WSGI to mount flask.

### 2. Additional context or comments

this will take some time...

### 3. Can you help us with this feature?

- [x] I am interested in contributing to this feature.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.