add file layout visualization from aracelix

https://github.com/ankitects/anki/issues/1010#issuecomment-1032248683
This commit is contained in:
Damien Elmes 2022-02-09 13:23:52 +10:00
parent b64c179609
commit 4653873db9
2 changed files with 8 additions and 4 deletions

View file

@ -6,7 +6,11 @@ Very brief notes for now.
At the highest level, Anki is logically separated into two parts. At the highest level, Anki is logically separated into two parts.
### Library A neat visualization
of the file layout is available here:
<https://octo-repo-visualization.vercel.app/?repo=ankitects%2Fanki>
### Library (rslib & pylib)
The Python library (pylib) exports "backend" methods - opening collections, The Python library (pylib) exports "backend" methods - opening collections,
fetching and answering cards, and so on. It is used by Ankis GUI, and can also fetching and answering cards, and so on. It is used by Ankis GUI, and can also
@ -19,7 +23,7 @@ These days, the majority of backend logic lives in a Rust library (rslib, locate
pylib contains a private Python module called rsbridge (`pylib/rsbridge/`) that wraps the Rust code, making it accessible in Python. pylib contains a private Python module called rsbridge (`pylib/rsbridge/`) that wraps the Rust code, making it accessible in Python.
### GUI ### GUI (aqt & ts)
Anki's _GUI_ is a mix of Qt (via the PyQt Python bindings for Qt), and Anki's _GUI_ is a mix of Qt (via the PyQt Python bindings for Qt), and
TypeScript/HTML/CSS. The Qt code lives in `qt/aqt/`, and is importable in Python TypeScript/HTML/CSS. The Qt code lives in `qt/aqt/`, and is importable in Python

View file

@ -3,7 +3,7 @@
For info on contributing things other than code, such as translations, decks For info on contributing things other than code, such as translations, decks
and add-ons, please see https://docs.ankiweb.net/contrib and add-ons, please see https://docs.ankiweb.net/contrib
With most users now on 2.1, the past year has been focused on paying down some With most users now on 2.1, the past 2 years have been focused on paying down some
of the technical debt that Anki's codebase has built up over the years, and making of the technical debt that Anki's codebase has built up over the years, and making
changes that will make future maintenance and refactoring easier. A lot of Anki's changes that will make future maintenance and refactoring easier. A lot of Anki's
"business logic" has been migrated to Rust, which AnkiMobile and AnkiDroid "business logic" has been migrated to Rust, which AnkiMobile and AnkiDroid
@ -13,7 +13,7 @@ Considerable effort has also been put into improving the Python side of things,
with type hints added to the majority of the codebase, automatic linting/formatting, with type hints added to the majority of the codebase, automatic linting/formatting,
and refactoring of parts of the code. and refactoring of parts of the code.
The scheduling code and import/export code remains to be done, and this will likely The import/export code remains to be done, and this will likely
take a number of months to work through. Until that is complete, new features take a number of months to work through. Until that is complete, new features
will not be the top priority, unless they are easy wins as part of the refactoring will not be the top priority, unless they are easy wins as part of the refactoring
process. process.