{"id":16871642,"url":"https://github.com/phase/phast","last_synced_at":"2025-06-23T00:35:05.543Z","repository":{"id":86155188,"uuid":"148001703","full_name":"phase/phast","owner":"phase","description":"Minecraft Server Implementation written in Rust, supporting Java Edition \u0026 Bedrock Edition","archived":false,"fork":false,"pushed_at":"2019-01-27T20:57:01.000Z","size":96,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T19:55:09.053Z","etag":null,"topics":["minecraft","minecraft-pocket-edition","minecraft-server","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-09-09T07:09:48.000Z","updated_at":"2024-03-21T13:46:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"2992c8e6-41e8-4f7c-abbf-e67ee11c0274","html_url":"https://github.com/phase/phast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phase/phast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase%2Fphast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase%2Fphast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase%2Fphast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase%2Fphast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phase","download_url":"https://codeload.github.com/phase/phast/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase%2Fphast/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261390861,"owners_count":23151653,"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":["minecraft","minecraft-pocket-edition","minecraft-server","rust"],"created_at":"2024-10-13T15:09:21.367Z","updated_at":"2025-06-23T00:35:00.523Z","avatar_url":"https://github.com/phase.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# phast\n\n**Minecraft Server Implementation written in Rust, supporting Java Edition \u0026 Bedrock Edition**\n\nThe main goals of this implementation are compatibility \u0026 performance. Accepting clients using\nany Java or Bedrock version should be possible.\n\n**Currently Implemented**\n\n* TCP \u0026 UDP Servers run on different threads.\n    * There are actually 2 threads for TCP, one for accepting new connections and one for reading from \n      existing connections.\n* `Connection`s are created that hold state about a connected client.\n    * There is a `ConnectionManager` that is thread-safe. This is currently created in `main.rs`,\n      but it will be moved into a `Server` struct once it is created.\n* Packets are received and parsed given the user's current protocol.\n    * Multiple protocols are supported!\n    * Adding a new protocol is simple if it only changes a couple packets from an old version.\n* Protocols \u0026 Packets are generated using macros.\n    * Packets are disassociated from protocols so that they can be used in many different protocols.\n    * Protocol definitions are generated with read \u0026 write functions that are simple to use.\n\n**TODO**\n\n* Nothing works nor will it work for quite a while. Please don't ask about it.\n* Server structure\n    * [x] Received Packet queue\n    * [ ] Game Loop\n    * [ ] Blocks / Items / Tiles / Entities for specific versions\n    * [ ] World \u0026 Chunk Structure\n        * [ ] One thread per world?\n    * [x] Packet sending queue\n        * [ ]  Put this on its own thread?\n    * Wow there's a lot in here\n* Anvil World Loader (There are lots of open source implementations already)\n* Plugin system? I've got no clue. I think using WASM modules could be cool, and it would allow for\nany language to be used.\n\n**License**\n\nThe source code is licensed under the Mozilla Public License Version 2.0.\nYou can find more information [here](https://choosealicense.com/licenses/mpl-2.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase%2Fphast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphase%2Fphast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase%2Fphast/lists"}