{"id":22702025,"url":"https://github.com/elegantchaos/swiftbsa","last_synced_at":"2025-07-14T03:13:13.066Z","repository":{"id":138440991,"uuid":"464943785","full_name":"elegantchaos/SwiftBSA","owner":"elegantchaos","description":"Swift support for Bethesda's BSA format, used by Skyrim, Fallout, etc.","archived":false,"fork":false,"pushed_at":"2022-03-24T13:53:33.000Z","size":2353,"stargazers_count":4,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T19:31:02.924Z","etag":null,"topics":["bsa","creationkit","skyrim-special-edition","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elegantchaos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-01T15:13:42.000Z","updated_at":"2025-03-10T19:18:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"0be2685d-f1b5-4658-9ea2-c3645394d7a4","html_url":"https://github.com/elegantchaos/SwiftBSA","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/elegantchaos/SwiftBSA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elegantchaos%2FSwiftBSA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elegantchaos%2FSwiftBSA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elegantchaos%2FSwiftBSA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elegantchaos%2FSwiftBSA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elegantchaos","download_url":"https://codeload.github.com/elegantchaos/SwiftBSA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elegantchaos%2FSwiftBSA/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265237404,"owners_count":23732509,"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":["bsa","creationkit","skyrim-special-edition","swift"],"created_at":"2024-12-10T07:11:50.796Z","updated_at":"2025-07-14T03:13:13.044Z","avatar_url":"https://github.com/elegantchaos.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"[comment]: \u003c\u003e (Header Generated by ActionStatus 2.0.6 - 478)\n\n[![Test results][tests shield]][actions] [![Latest release][release shield]][releases] [![swift 5.6 shield]][swift] ![Platforms: macOS][platforms shield]\n\n[release shield]: https://img.shields.io/github/v/release/elegantchaos/SwiftBSA\n[platforms shield]: https://img.shields.io/badge/platforms-macOS-lightgrey.svg?style=flat \"macOS\"\n[tests shield]: https://github.com/elegantchaos/SwiftBSA/workflows/Tests/badge.svg\n[swift 5.6 shield]: https://img.shields.io/badge/swift-5.6-F05138.svg \"Swift 5.6\"\n\n[swift]: https://swift.org\n[releases]: https://github.com/elegantchaos/SwiftBSA/releases\n[actions]: https://github.com/elegantchaos/SwiftBSA/actions\n\n[comment]: \u003c\u003e (End of ActionStatus Header)\n\n# SwiftBSA\n\nSwift support for Bethesda's BSA file format, as used by Skyrim, Fallout, etc.\n\nCurrently this version of the code supports version 105, as used by Skyrim SE/AE. \n\nSupport for earlier versions may be added at some later date. \n\n## Here Be Dragons\n\nThis is an early version, and it currently only supports extracting a `.bsa` file to a directory, and packing a directory to a compressed archive.\n\nRight now it's just a library and some tests. \n\nThe next step will be to add a command line tool target, but I envisage it mostly being used as a library, linked to by other tools. \n\n## Why?\n\nThis is part of a [larger tools project](https://github.com/elegantchaos/SkyrimCompiler).\n\n### Why Swift?\n\nIt's what I use for the day job, has decent cross platform support, and I needed an excuse to mess around with some binary streaming and async/await things. \n\n### Why Cross Platform?\n\n1. Although I play Skyrim on a PC, I do most of my coding work on a Mac.\n2. OpenMW supports Windows/MacOS/Linux. At some point I'd like to extend this tool and the other things I'm working on to support OpenMW.\n\n## Useful Info\n\n- File Format: https://en.uesp.net/wiki/Skyrim_Mod:Archive_File_Format\n- Pyffi definitions (possibly incomplete): https://github.com/niftools/pyffi/blob/develop/pyffi/formats/bsa/bsa.xml\n- Some Notes: https://github.com/focustense/easymod/tree/master/Focus.Apps.EasyNpc\n- Other Implementations:\n  - https://github.com/focustense/easymod/blob/master/Focus.Storage.Archives/README.md\n  - https://github.com/Guekka/libbsarch\n  - https://github.com/TES5Edit/TES5Edit/tree/dev/Tools/BSArchive\n  \n### Example Data\n\nThe example data in this repo is taken from [Parapets](https://www.nexusmods.com/skyrimspecialedition/users/39501725), who helpful makes all their mods available under an MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felegantchaos%2Fswiftbsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felegantchaos%2Fswiftbsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felegantchaos%2Fswiftbsa/lists"}