Kataglyphis-Inference-Engine
An inference engine with flutter/dart frontend an rust backend. .
About The Project • Getting Started • License • Literature
Table of Contents
About The Project
Building a high performance native inference engine with a frontend is quite challenging. This project discovers possibilities in doing it using Flutter/Dart and Rust.
This project is a template.
Key Features
Dependencies
This enumeration also includes submodules.
Useful tools
Getting Started
Prerequisites
Installation
- Clone the repo
git clone --recurse-submodules git@github.com:Kataglyphis/Kataglyphis-Inference-Engine.git
Upgrades
Upgrading the flutter/dart bridge dependencies is as simple as this command:
see source
cargo install flutter_rust_bridge_codegen && flutter_rust_bridge_codegen generate
Windows
For windows we absolutely do not want to be dependent on MSVC compiler.
Therefore I use clang-cl.
Using clang-cl instead of MSVC needed adjustment. Therefore i give some instructions here.
Flutter generated cmake project
Adjust the CXX-Flags in the auto-generated Cmake project. Find the folloeing line and adjust accordingly:
# comment this line
# target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")
# add the following:
# target_compile_options(${TARGET} PRIVATE /W3 /WX /wd4100 -Wno-cast-function-type-mismatch -Wno-unused-function)
Now you can build the project by running following commands:
Attention: Adjust paths accordingly.
cd rust
cargo build --release
cp rust\target\release\rust_lib_kataglyphis_inference_engine.dll build\windows\x64\plugins\rust_lib_kataglyphis_inference_engine
cmake C:\GitHub\Kataglyphis-Inference-Engine\windows -B C:\GitHub\Kataglyphis-Inference-Engine\build\windows\x64 -G "Ninja" -DFLUTTER_TARGET_PLATFORM=windows-x64 -DCMAKE_CXX_COMPILER="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\Llvm\bin\clang-cl.exe" -DCMAKE_CXX_COMPILER_TARGET=x86_64-pc-windows-msvc
cmake --build C:\GitHub\Kataglyphis-Inference-Engine\build\windows\x64 --config Release --target install --verbose
Tests
Roadmap
Upcoming :)
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Contact
Jonas Heinle - @Cataglyphis_ - jonasheinle@googlemail.com
Project Link: https://github.com/Kataglyphis/...
Acknowledgements
Literature
Some very helpful literature, tutorials, etc.
CMake/C++
Libraries
- blog_dependent_app_attributes
- blog_page_config
- l10n/app_localizations
- l10n/app_localizations_de
- l10n/app_localizations_en
- main
- my_two_cents_config
- Pages/AboutMePage/about_me_page
- Pages/AboutMePage/Widgets/about_me_table
- Pages/AboutMePage/Widgets/donation
- Pages/AboutMePage/Widgets/perfect_day_chart
- Pages/AboutMePage/Widgets/skill_table
- Pages/Blog/blog_page
- Pages/blog_dependent_screen_configurations
- Pages/DataPage/BlockOverviewPage/block_entry
- Pages/DataPage/BlockOverviewPage/block_entry_list
- Pages/DataPage/BlockOverviewPage/block_overview_page
- Pages/DataPage/BlockOverviewPage/block_overview_page_config
- Pages/DataPage/BooksPage/book
- Pages/DataPage/BooksPage/books_list
- Pages/DataPage/BooksPage/books_page
- Pages/DataPage/BooksPage/books_page_config
- Pages/DataPage/data_page
- Pages/DataPage/data_page_entry
- Pages/DataPage/FilmsPage/film
- Pages/DataPage/FilmsPage/films_list
- Pages/DataPage/FilmsPage/films_page
- Pages/DataPage/FilmsPage/films_page_config
- Pages/DataPage/GamesPage/game
- Pages/DataPage/GamesPage/games_list
- Pages/DataPage/GamesPage/games_page
- Pages/DataPage/GamesPage/games_page_config
- Pages/DataPage/media_critics_page
- Pages/DataPage/QuotesPage/quotations_page_config
- Pages/DataPage/QuotesPage/quote
- Pages/DataPage/QuotesPage/quotes_list
- Pages/DataPage/QuotesPage/quotes_page
- Pages/DocumentsPage/documents_page
- Pages/ErrorPage/error_page
- Pages/ErrorPage/error_page_stateful_branch_info_provider
- Pages/ErrorPage/error_page_widget
- Pages/Footer/Pages/configs/privacy_policy_config
- Pages/Home/home_config
- Pages/jotrockenmitlocken_screen_configurations
- Pages/LandingPage/landing_page
- Routing/jotrockenmitlocken_router
- Widgets/Navigation/old/Navbar/mobile/drawer_item