{"id":13731962,"url":"https://github.com/aseprite/laf","last_synced_at":"2025-04-06T02:08:40.189Z","repository":{"id":14697127,"uuid":"53496040","full_name":"aseprite/laf","owner":"aseprite","description":"A C++ library to create desktop applications","archived":false,"fork":false,"pushed_at":"2024-05-09T12:23:56.000Z","size":1444,"stargazers_count":261,"open_issues_count":13,"forks_count":51,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-05-21T09:16:56.462Z","etag":null,"topics":["cpp","cpp17","cross-platform","ui-library"],"latest_commit_sha":null,"homepage":"https://aseprite.github.io/laf/","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/aseprite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2016-03-09T12:30:22.000Z","updated_at":"2024-05-30T16:28:42.539Z","dependencies_parsed_at":"2023-01-16T20:00:12.618Z","dependency_job_id":"0ce44737-6d10-427a-bde1-877d7a16825d","html_url":"https://github.com/aseprite/laf","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/aseprite%2Flaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aseprite%2Flaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aseprite%2Flaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aseprite%2Flaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aseprite","download_url":"https://codeload.github.com/aseprite/laf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423514,"owners_count":20936626,"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":["cpp","cpp17","cross-platform","ui-library"],"created_at":"2024-08-03T02:01:42.621Z","updated_at":"2025-04-06T02:08:40.164Z","avatar_url":"https://github.com/aseprite.png","language":"C++","readme":"# LAF: The Lost Application Framework\n\n[![build](https://github.com/aseprite/laf/workflows/build/badge.svg)](https://github.com/aseprite/laf/actions?query=workflow%3Abuild)\n[![MIT Licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.txt)\n\nA library to create Windows, macOS, and Linux applications.\n\nThis library is under active development so we don't provide API or\nABI compatibility at this moment.\n\n* [Documentation](https://aseprite.github.io/laf/)\n\n## Dependencies\n\n*laf* can be compiled with two back-ends (`LAF_BACKEND`): `skia` or `none`.\n\nWhen `LAF_BACKEND=skia`, *laf* requires a compiled version of the [Skia library](https://skia.org/)\nfrom branch `aseprite-m102`. You can check the aseprite/skia fork\nwhich includes a [release with pre-built versions](https://github.com/aseprite/skia/releases), or\nthe check the [instructions to compile skia](https://github.com/aseprite/skia#readme) from scratch.\n\nWhen `LAF_BACKEND=none`, the [Pixman library](http://www.pixman.org/)\ncan be used as an alternative implementation of the `gfx::Region` class (generally if\nyou're using `laf-os` you will link it with Skia, so there is no\nneed for Pixman at all).\n\n## Compile\n\nTo compile *laf* with Skia as backend you have to specify some\nvariables pointing to a valid compiled version of Skia in your\ndisk. In the following example `/skiadir` is the absolute path to a\ndirectory where the Skia source code + compiled version is, or just\nwhere you've uncompressed a pre-built package of Skia (note that in\nthis case `/skiadir/out/Release-x64` should contain the Skia library\nfiles, i.e. `skia.lib` on Windows or `libskia.a` on other platforms):\n\n```\ngit clone https://github.com/aseprite/laf.git\ncd laf\nmkdir build\ncd build\ncmake -G Ninja \\\n  -DLAF_BACKEND=skia \\\n  -DSKIA_DIR=/skiadir \\\n  -DSKIA_LIBRARY_DIR=/skiadir/out/Release-x64 \\\n  ..\nninja\n./examples/helloworld\n```\n\nTo compile only the library (without examples and tests) you can\ndisable the `LAF_WITH_EXAMPLES`/`LAF_WITH_TESTS` options:\n\n```\ncmake -DLAF_WITH_EXAMPLES=OFF -DLAF_WITH_TESTS=OFF ...\n```\n\n## Running Tests\n\nYou can use `ctest` to run all tests:\n\n```\ncd build\nninja\nctest\n```\n\n## License\n\n*laf* is distributed under the terms of [the MIT license](LICENSE.txt).\n\nSome functions in *laf* depends on third party libraries (you should\ninclude these license notices when you distribute your software):\n\n* Tests use the [Google Test](https://github.com/aseprite/googletest/tree/master/googletest)\n  framework by Google Inc. licensed under\n  [a BSD-like license](https://github.com/aseprite/googletest/blob/master/googletest/LICENSE).\n* Color spaces, `gfx::Region`, and the `laf::os` library use code from\n  the [Skia library](https://skia.org) by Google Inc. licensed under\n  [a BSD-like license](https://github.com/aseprite/skia/blob/master/LICENSE)\n  and several other [third-party libraries/licenses](https://github.com/aseprite/skia/tree/master/third_party).\n* `gfx::Region` uses the pixman library if you are not compiling with\n  the Skia backend (e.g. a if you want to create only Command Line\n  utilities that uses the `gfx::Region` class) on Linux or macOS. On\n  Windows we use an alternative implementation with [HRGN](https://learn.microsoft.com/en-us/windows/win32/gdi/regions).\n  Pixman is distributed under the [MIT License](https://cgit.freedesktop.org/pixman/tree/COPYING).\n","funding_links":[],"categories":["Graphics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faseprite%2Flaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faseprite%2Flaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faseprite%2Flaf/lists"}