{"id":16587360,"url":"https://github.com/alemidev/aiocraft","last_synced_at":"2025-07-08T23:04:12.426Z","repository":{"id":41491245,"uuid":"412111428","full_name":"alemidev/aiocraft","owner":"alemidev","description":"asyncio-driven headless client library for block game","archived":false,"fork":false,"pushed_at":"2025-04-09T05:59:16.000Z","size":584,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-04-09T06:02:13.988Z","etag":null,"topics":["async","codegen","minecraft","protocol","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/alemidev.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":"2021-09-30T15:05:53.000Z","updated_at":"2024-04-04T22:36:37.000Z","dependencies_parsed_at":"2023-01-16T18:15:39.930Z","dependency_job_id":"d16416fe-8ab8-42ae-9038-34937422ce16","html_url":"https://github.com/alemidev/aiocraft","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/alemidev/aiocraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Faiocraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Faiocraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Faiocraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Faiocraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alemidev","download_url":"https://codeload.github.com/alemidev/aiocraft/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Faiocraft/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264363749,"owners_count":23596502,"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":["async","codegen","minecraft","protocol","python"],"created_at":"2024-10-11T22:54:01.665Z","updated_at":"2025-07-08T23:04:12.411Z","avatar_url":"https://github.com/alemidev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aiocraft\n**an asyncio-driven headless client library for block game with packet definitions**\n\naiocraft is a collection of types, definitions and utils to build minecraft clients without the official Java implementation\n\nit is built on top of [PrismarineJS/minecraft-data](https://github.com/PrismarineJS/minecraft-data), which contains definitions for all types across all versions\n\naiocraft provides a raw implementation of a client but it isn't ready to be used, if you're looking for a convenient client library take a look at **[Treepuncher](https://git.alemi.dev/treepuncher.git/about)**\n\n## Packets\nthe whole Minecraft protocol from `0.30c` to `1.19.3` is compiled and available\nfeature flags to only include certain protocol versions are planned\nall types and packets are instantiable and serializable on all supported protocols:\n```py\nfrom aiocraft.proto.play.serverbound import PacketPosition\n\na_packet = PacketPosition(x=-4.0, y=64.0, z=10.5, onGround=True)\nawait client.dispatcher.write(a_packet)\n```\n\n## Client\nan abstract client implementation is provided, but it's supposed to be extended (like in **[Treepuncher](https://git.alemi.dev/treepuncher.git/about)**)\nthe abstract client implements flows for all game phases and both a `.join()` or a `.info()` method to easily start the login flow\n\n## Types\naiocraft defines these minecraft types:\n\n * `Dimension`\n * `Difficulty`\n * `Gamemode`\n * `GameProfile`\n * `Enchantment`\n * `BlockPos`\n * `Item` (without constants)\n * `Texture`\n * `Player`\n\nmore types are planned but still not generated:\n\n * `Entity`\n * `Block`\n * `Item` (with constants)\n\n## World\na chunk parser is provided with native code (Rust + PyO3). It is pretty fast but the abstract client doesn't make use of it\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Faiocraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falemidev%2Faiocraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Faiocraft/lists"}