{"id":18994423,"url":"https://github.com/loot/libloot","last_synced_at":"2025-06-13T07:34:40.384Z","repository":{"id":45114835,"uuid":"81589680","full_name":"loot/libloot","owner":"loot","description":"A C++ library for accessing LOOT's metadata and sorting functionality.","archived":false,"fork":false,"pushed_at":"2025-06-07T09:28:43.000Z","size":12298,"stargazers_count":36,"open_issues_count":12,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-07T10:25:56.574Z","etag":null,"topics":["api","fallout-3","fallout-4","fallout-newvegas","modding","oblivion","skyrim","skyrim-special-edition"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2017-02-10T17:35:26.000Z","updated_at":"2025-05-31T03:24:11.000Z","dependencies_parsed_at":"2023-11-25T17:21:55.977Z","dependency_job_id":"6f7c2f7e-11f7-4703-b432-308a51a4b813","html_url":"https://github.com/loot/libloot","commit_stats":null,"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"purl":"pkg:github/loot/libloot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loot%2Flibloot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loot%2Flibloot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loot%2Flibloot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loot%2Flibloot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loot","download_url":"https://codeload.github.com/loot/libloot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loot%2Flibloot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259602797,"owners_count":22883047,"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":["api","fallout-3","fallout-4","fallout-newvegas","modding","oblivion","skyrim","skyrim-special-edition"],"created_at":"2024-11-08T17:25:31.563Z","updated_at":"2025-06-13T07:34:40.372Z","avatar_url":"https://github.com/loot.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libloot\n\n![CI](https://github.com/loot/libloot/actions/workflows/ci.yml/badge.svg?branch=master\u0026event=push)\n[![Documentation Status](https://readthedocs.org/projects/loot-api/badge/?version=latest)](http://loot-api.readthedocs.io/en/latest/?badge=latest)\n\n## Introduction\n\nLOOT is a plugin load order optimisation tool for Starfield, TES III: Morrowind, TES IV: Oblivion, TES IV: Oblivion Remastered, TES V: Skyrim, TES V: Skyrim Special Edition, TES V: Skyrim VR, Fallout 3, Fallout: New Vegas, Fallout 4, Fallout 4 VR and OpenMW. It is designed to assist mod users in avoiding detrimental conflicts, by automatically calculating a load order that satisfies all plugin dependencies and maximises each plugin's impact on the user's game.\n\nLOOT also provides some load order error checking, including checks for requirements, incompatibilities and cyclic dependencies. In addition, it provides a large number of plugin-specific usage notes, bug warnings and Bash Tag suggestions.\n\nlibloot provides access to LOOT's metadata and sorting functionality, and the LOOT application is built using it.\n\nlibloot's core is written in Rust, and C++, Python and Node.js wrappers can be found in the `cpp`, `python` and `nodejs` subdirectories respectively.\n\n## Downloads\n\nBinary artifacts are currently only provided for the C++ wrapper.\n\nReleases are hosted on [GitHub](https://github.com/loot/libloot/releases).\n\nSnapshot builds are available as artifacts from [GitHub Actions runs](https://github.com/loot/libloot/actions), though they are only kept for 90 days and can only be downloaded when logged into a GitHub account. To mitigate these restrictions, snapshot build artifacts include a GPG signature that can be verified using the public key hosted [here](https://loot.github.io/.well-known/openpgpkey/hu/mj86by43a9hz8y8rbddtx54n3bwuuucg), which means it's possible to re-upload the artifacts elsewhere and still prove their authenticity.\n\nThe snapshot build artifacts are named like so:\n\n```\nlibloot-\u003clast tag\u003e-\u003crevisions since tag\u003e-g\u003cshort revision ID\u003e_\u003cbranch\u003e-\u003cplatform\u003e.\u003cfile extension\u003e\n```\n\n## Build\n\nMake sure you have [Rust](https://www.rust-lang.org/) installed.\n\nTo build the library, set the `LIBLOOT_REVISION` env var and then run Cargo.\n\nUsing PowerShell:\n\n```powershell\n$env:LIBLOOT_REVISION = git rev-parse --short HEAD\ncargo build --release\n```\n\nUsing a POSIX shell:\n\n```sh\nexport LIBLOOT_REVISION=$(git rev-parse --short HEAD)\ncargo build --release\n```\n\n`LIBLOOT_REVISION` is used to embed the commit hash into the build, if it's not defined then `unknown` will be used instead.\n\n### Tests\n\nBefore running the tests, first extract the [testing-plugins](https://github.com/Ortham/testing-plugins) archive to this readme's directory (so that there's a `testing-plugins` directory there).\n\nTo do that using `curl` and `tar` in a POSIX shell:\n\n```sh\ncurl -sSfL https://github.com/Ortham/testing-plugins/archive/refs/tags/1.6.2.tar.gz | tar -xz --strip=1 --one-top-level=testing-plugins\n```\n\nTo do that in PowerShell:\n\n```powershell\nInvoke-WebRequest https://github.com/Ortham/testing-plugins/archive/refs/tags/1.6.2.zip -OutFile testing-plugins-1.6.2.zip\nExpand-Archive testing-plugins-1.6.2.zip .\nMove-Item testing-plugins-1.6.2 testing-plugins\nRemove-Item testing-plugins-1.6.2.zip\n```\n\nThe tests can then be run using:\n\n```\ncargo test\n```\n\n### API documentation\n\nThe Rust API's reference documentation can be built and viewed using:\n\n```\ncargo doc --open\n```\n\nThe `docs` directory contains more general documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floot%2Flibloot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floot%2Flibloot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floot%2Flibloot/lists"}