{"id":13732301,"url":"https://github.com/fallahn/tmxlite","last_synced_at":"2026-01-18T13:43:01.945Z","repository":{"id":13185158,"uuid":"73632818","full_name":"fallahn/tmxlite","owner":"fallahn","description":"lightweight C++14 parser for Tiled tmx files","archived":false,"fork":false,"pushed_at":"2025-12-23T10:02:33.000Z","size":712,"stargazers_count":445,"open_issues_count":12,"forks_count":76,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-12-25T00:11:12.586Z","etag":null,"topics":["android","cross-platform","linux","macos","parse","sdl2","sfml","tiled","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fallahn.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-13T17:55:24.000Z","updated_at":"2025-12-23T19:03:19.000Z","dependencies_parsed_at":"2023-01-11T20:19:57.197Z","dependency_job_id":"5c78828e-94d0-4b1f-b26f-52f252ae855a","html_url":"https://github.com/fallahn/tmxlite","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/fallahn/tmxlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallahn%2Ftmxlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallahn%2Ftmxlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallahn%2Ftmxlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallahn%2Ftmxlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fallahn","download_url":"https://codeload.github.com/fallahn/tmxlite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallahn%2Ftmxlite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28536773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T13:04:05.990Z","status":"ssl_error","status_checked_at":"2026-01-18T13:01:44.092Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["android","cross-platform","linux","macos","parse","sdl2","sfml","tiled","windows"],"created_at":"2024-08-03T02:01:52.314Z","updated_at":"2026-01-18T13:43:01.933Z","avatar_url":"https://github.com/fallahn.png","language":"C++","readme":"tmxlite\n-------\n\n[![Github Actions](https://github.com/fallahn/tmxlite/actions/workflows/cmake.yml/badge.svg)](https://github.com/fallahn/tmxlite/actions)\n\n#### Description\nA lightweight C++14 parsing library for tmx map files created with the Tiled map editor. Requires no external linking, all dependencies are included. Optionally Zstd support can be enabled by linking the required external library. Fully supports tmx maps up to 1.0 (see [here](https://doc.mapeditor.org/en/stable/reference/tmx-changelog/#tiled-1-0)) with CSV, zlib and base64 compression. Also supports some features of newer map versions (see below). The parser is renderer agnostic, and is cross platform on Windows, linux and macOS. It has also been successfully built for Android too.\n\nAs the library contains no specific rendering functions some example projects are included, along with the relevant CMake files. These are meant mostly for guidance and are not 100% optimised, but should get you off on the right foot when using libraries such as SFML, SDL2 or directly with OpenGL. Examples for any specific rendering library are welcome via a pull request.\n\n##### Other Features\nAs well as full support for maps up to version 1.0, tmxlite also supports these features found in newer versions of the [tmx specification](https://doc.mapeditor.org/en/stable/reference/tmx-changelog/#tiled-1-0):\n\n* Object Templates - Templates (and any associated tile sets) are automatically loaded and parsed if found. Object properties are transparently handled so that objects can be read from an `ObjectGroup` as if they were unique instances. If an `Object` uses a templated tileset then `Object::getTilsetName()` will contain a non-empty string which can be used as a key with `Map::getTemplateTilesets()` to retrieve the associated tileset data.\n* Infinite Maps - Maps with the 'infinite' flag set, and saved in either CSV or base64 (compressed and uncompressed) format are supported. A `TileLayer` will return an empty Tile vector in these cases, and tile ID data can be retrieved instead with `TileLayer::getChunks()` which returns a vector of chunk data that makes up the tile layer.\n* Parallax layers - the parallax offset property of layers is parsed, as well as each map's parallax origin, if they exist\n* Layer tint colours\n* Extended tag support such as `class`\n\nBy default tmxlite supports zlib compressed maps, however gzip and zstd compression can be enabled at compile time, by linking the relevant external libraries:\n\n###### Zstd compression\nTmxlite supports maps using Zstd compressed tile layers, however Zstd needs to be linked externally. To configure CMake or meson to use Zstd add the definition `USE_ZSTD` and set it to `true`. You may also configure your project manually, and add `-DUSE_ZSTD` to the compiler options. If you are using the `USE_EXTLIBS` option (see below) this is automatically configured for you.\n\n#### Building\nEither use the included Visual Studio project file if you are on Windows or the CMake file to generate project files for your compiler of choice. tmxlite can be built as both static or shared libraries, or simply include the source files in your own project. The following options are available for CMake configuration:\n\n * `TMXLITE_STATIC_LIB` - Set this to true to build a static library, default false\n * `PROJECT_STATIC_RUNTIME` - Statically link the cstd libraries, default false\n * `USE_RTTI` - Enable runtime type information, default true\n * `USE_EXTLIBS` - Use externally linked pugixml, zlib and Zstd libraries, default false\n * `USE_ZSTD` - Use externally linked Zstd library, required for Zstd compressed maps. Default is false, but is overridden if `USE_EXTLIBS` is true\n\nConfiguring with meson is also possible, see `meson_options.txt` for details.\n\n#### Quick Start\nThere is a getting started page on the Github wiki [here](https://github.com/fallahn/tmxlite/wiki/Quick-Start).\n\n#### Examples\nThe repository contains the following rendering examples:\n* [OpenGL Example](https://github.com/fallahn/tmxlite/tree/master/OpenGLExample)\n* [SFML 2 Example](https://github.com/fallahn/tmxlite/tree/master/SFMLExample)\n* [SFML 3 Example](https://github.com/fallahn/tmxlite/tree/master/SFML3Example)\n* [SDL2 Example](https://github.com/fallahn/tmxlite/tree/master/SDL2Example)\n\n\nCodotaku has published a video on creating a DX12 renderer: https://youtu.be/p1o1N72KQQA \n\nExamples are generally maintained by the community and offer varying amounts of functionality. All of them will render the included example tile maps at the very least, and some include more complex features such as animated tiles or individual tile flipping.\n\n#### API Documentation\nDoxygen generated API documentation can be found online [here](https://codedocs.xyz/fallahn/tmxlite/) or generated with doxygen\nusing the doxy file in the tmxlite/documentation/ directory.\n\n#### Important information \ntmxlite uses [pugixml](https://pugixml.org/) and [miniz](https://github.com/richgel999/miniz) which are included in the repository, although external zlib and pugixml libraries can be used. Add `-DUSE_EXTLIBS` to your compiler's definitions or when configuring CMake set `USE_EXTLIBS` to TRUE. This will also automatically include Zstd.\n\n***\n\n(c)Matt Marchant \u0026 contributors 2016 - 2025\nhttps://trederiagames.com\n\ntmxlite - Zlib license.\n\nThis software is provided 'as-is', without any express or\nimplied warranty. In no event will the authors be held\nliable for any damages arising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute\nit freely, subject to the following restrictions:\n\nThe origin of this software must not be misrepresented;\nyou must not claim that you wrote the original software.\nIf you use this software in a product, an acknowledgment\nin the product documentation would be appreciated but\nis not required.\n\nAltered source versions must be plainly marked as such,\nand must not be misrepresented as being the original software.\n\nThis notice may not be removed or altered from any\nsource distribution.\n***\n\nA big thanks goes to all who have contributed to tmxlite via the github community.\n","funding_links":[],"categories":["Libraries \u0026 Frameworks:","GameProgramming","C++"],"sub_categories":["JSON, XML"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffallahn%2Ftmxlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffallahn%2Ftmxlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffallahn%2Ftmxlite/lists"}