{"id":20833082,"url":"https://github.com/kfields/attacus","last_synced_at":"2025-07-06T13:03:27.227Z","repository":{"id":150790076,"uuid":"491472363","full_name":"kfields/attacus","owner":"kfields","description":"Python powered Flutter Shell","archived":false,"fork":false,"pushed_at":"2023-05-23T12:46:29.000Z","size":12225,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-18T21:03:13.452Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kfields.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-12T10:46:25.000Z","updated_at":"2023-02-25T00:50:19.000Z","dependencies_parsed_at":"2025-01-18T21:11:11.486Z","dependency_job_id":null,"html_url":"https://github.com/kfields/attacus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfields%2Fattacus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfields%2Fattacus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfields%2Fattacus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfields%2Fattacus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kfields","download_url":"https://codeload.github.com/kfields/attacus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243188204,"owners_count":20250452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T00:14:12.680Z","updated_at":"2025-03-12T08:43:45.909Z","avatar_url":"https://github.com/kfields.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Attacus :butterfly: :snake:\n\nFlutter SDL Python\n\n[Flutter](https://flutter.dev/)\n\n[SDL](https://github.com/libsdl-org/SDL)\n\n## Required\n\n* [Poetry](https://python-poetry.org/)\n\n## Optional\n\n* [Ninja](https://ninja-build.org/)\n\n## Clone\n\n```bash\ngit clone --recursive https://github.com/kfields/attacus\ncd attacus\n```\n\n## Extra Steps\n\nYou need to download the Flutter engine binaries from: [Custom-Flutter-Engine-Embedders](https://github.com/flutter/flutter/wiki/Custom-Flutter-Engine-Embedders)\n\nExtract to: [project-root]/binaries/flutter\n\n# Development\n\n## Tool Chain\n\n[scikit-build](https://github.com/scikit-build/scikit-build)\n\n[pybind11](https://github.com/pybind/pybind11)\n\n## Build\n```bash\npoetry shell\npoetry install\npython setup.py build [--build-type [Release|Debug]}\n```\n\n### Release\n```bash\npython setup.py build\n```\n\n### Debug\n```bash\npython setup.py build --build-type Debug\n#or\npython setup.py build -G \"Visual Studio 16 2019\" --build-type Debug\n#or\npython setup.py build -G \"Visual Studio 17 2022\" --build-type Debug\n```\n\n## Quick Start\n```bash\ngit clone --recursive https://github.com/kfields/attacus\ncd attacus\nmkdir build\ncd build\ncmake ..\n```\n### Or\n```bash\nmkdir build-debug\ncd build-debug\ncmake -DCMAKE_BUILD_TYPE=Debug ..\n```\n## Wayland\n```bash\nsudo apt install libwayland-dev\nsudo apt install libxkbcommon-dev\nsudo add-apt-repository ppa:christianrauch/libdecoration\n\ncmake -DATT_WM_WAYLAND=ON -DCMAKE_BUILD_TYPE=Debug ..\n```\n\n## Glad\n    v1\n    glad --generator c --no-loader --out-path src\n    \n    v2\n    glad --api gl:core --out-path src/glad c\n\n\n## [Flutter Custom Devices](https://github.com/flutter/flutter/wiki/Using-custom-embedders-with-the-Flutter-CLI)\n```\nflutter channel master\nflutter config --enable-custom-devices\nflutter custom-devices\n```\nC:\\Users\\kurti\\AppData\\Roaming\\.flutter_custom_devices.json\n\n``` json\n    {\n      \"id\": \"attacus\",\n      \"label\": \"Attacus\",\n      \"sdkNameAndVersion\": \"Attacus 0.1\",\n      \"platform\": null,\n      \"enabled\": true,\n      \"ping\": [\n        \"ping\",\n        \"-n\",\n        \"1\",\n        \"-w\",\n        \"500\",\n        \"localhost\"\n      ],\n      \"pingSuccessRegex\": \"[\u003c=]\\\\d+ms\",\n      \"postBuild\": null,\n      \"install\": [\n        \"python\",\n        \"--version\"\n      ],\n      \"uninstall\": [\n        \"python\",\n        \"--version\"\n      ],\n      \"runDebug\": [\n        \"python\",\n        \"main.py\"\n      ],\n      \"forwardPort\": null,\n      \"forwardPortSuccessRegex\": null,\n      \"screenshot\": null\n    }\n```\n\n## [Flutter Embedder](https://github.com/flutter/flutter/wiki/Custom-Flutter-Engine-Embedders)\nGet the SHA of the Flutter engine you wish to use\n```bash\ncd flutter/bin/internal\ncat engine.version\n```\n\n## Flutter Examples\n```bash\nflutter build bundle\npython main.py\n```\nor\n```bash\nflutter run\n```\n\n\n## icudtl.dat\n```\nflutter\\bin\\cache\\artifacts\\engine\\windows-x64\\icudtl.dat\n```\nI'm manually copying this into the build directory.  Not good.\nIt needs to be copied over automatically","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfields%2Fattacus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkfields%2Fattacus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfields%2Fattacus/lists"}