{"id":15532241,"url":"https://github.com/mindstorm38/wg-toolkit-rs","last_synced_at":"2025-04-23T13:19:20.435Z","repository":{"id":44086745,"uuid":"458798350","full_name":"mindstorm38/wg-toolkit-rs","owner":"mindstorm38","description":"Toolkit crate providing various implementations for codecs distributed by Wargaming.net (BigWorld \u0026 Core engine, World of Tanks). Network protocol is W.I.P.","archived":false,"fork":false,"pushed_at":"2025-03-07T21:27:12.000Z","size":1011,"stargazers_count":17,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-23T13:19:11.236Z","etag":null,"topics":["bigworld","core-engine","network","protocol","toolkit","wargaming","world-of-tanks","wot"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/wg-toolkit","language":"Rust","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/mindstorm38.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-02-13T12:09:31.000Z","updated_at":"2025-03-07T21:27:15.000Z","dependencies_parsed_at":"2024-04-13T21:37:29.830Z","dependency_job_id":"9d681506-a85f-45d1-b903-048c71022d28","html_url":"https://github.com/mindstorm38/wg-toolkit-rs","commit_stats":{"total_commits":56,"total_committers":3,"mean_commits":"18.666666666666668","dds":0.0714285714285714,"last_synced_commit":"6718d69516b1a4f3199c9017417a28df81b26b1f"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindstorm38%2Fwg-toolkit-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindstorm38%2Fwg-toolkit-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindstorm38%2Fwg-toolkit-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindstorm38%2Fwg-toolkit-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindstorm38","download_url":"https://codeload.github.com/mindstorm38/wg-toolkit-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250439295,"owners_count":21430824,"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":["bigworld","core-engine","network","protocol","toolkit","wargaming","world-of-tanks","wot"],"created_at":"2024-10-02T11:29:33.264Z","updated_at":"2025-04-23T13:19:20.393Z","avatar_url":"https://github.com/mindstorm38.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WG Toolkit\nToolkit crate providing various implementations for codecs distributed by [Wargaming.net](https://wargaming.net/). \nThese codecs are part of the Core engine *(previously known as BigWorld)* notably used by \nWorld of Tanks. This crate also provides an implementation of the network protocol.\n\n## Library\n- [Crate page](https://crates.io/crates/wg-toolkit)\n- [Crate documentation](https://docs.rs/wg-toolkit)\n- Packed XML codec\n  - Deserialization\n  - Serialization\n- Tank model codec\n  - Deserialization of visual tree\n  - Deserialization of vertices/indices\n- Compiled space codec *(WIP)*\n  - Deserialization of some sections\n    - BWTB (header table)\n    - BWST (string table)\n    - BWT2 (terrain2)\n    - BWSG (static geometry)\n    - BWCS (compiled space settings)\n    - BWAL (asset list)\n- Resource virtual filesystem (read-only)\n  - Package indexing\n  - Reading file either from native filesystem or packages\n  - Reading directory entries from native filesystem and packages\n- Network protocol *(WIP)*\n  - Packets encoding and decoding *(partial flags support)*\n  - Writing and reading elements to and from a bundle of packets\n  - Off-channel and channel bundle input and output with reliable support\n  - Working login application\n  - *WIP* base application\n\n## CLI\n- [Crate page](https://crates.io/crates/wg-toolkit-cli)\n- Packed XML\n  - Deserialization and display\n  - Value editing (string, integer, boolean, float)\n- Resource virtual filesystem\n  - Read file content and copy it to stdout\n  - Read directory content with possible configured recursion\n- Demonstrative login and base applications for WoT (`wot` feature)\n- Bootstrapping of WoT entities/methods (`bootstrap` feature)\n\n## Contributing guidelines\nWhen contributing to the code base, some rules should be followed:\n1. Each major feature should have its own directory module;\n2. Each side-feature, used internally by core features should be located under `util` module in its own file module.\n3. When working on a custom reader and/or writer, but only implement one of the two, please anticipate how your module would be built with both implemented;\n4. Catch all errors and forward them toward the public interface;\n5. Custom error types should all be defined using `thiserror::Error` derivation;\n6. When working on a custom reader and/or writer that doesn't provide lazy read/write operations, please make simple public functions that directly output, like `from_reader(reader: impl Read)` or `to_writer(writer: impl Write)`.\n\n## Credits\nThanks to SkepticalFox for [wot-space.bin-utils](https://bitbucket.org/SkepticalFox/wot-space.bin-utils/src/master/) python library, which directly inspired this crate.\n\nThanks to SkaceKamen for [wot-model-converter](https://github.com/SkaceKamen/wot-model-converter) python library, for its open-source work on processed model file format.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindstorm38%2Fwg-toolkit-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindstorm38%2Fwg-toolkit-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindstorm38%2Fwg-toolkit-rs/lists"}