{"id":17506232,"url":"https://github.com/orchetect/plistkit","last_synced_at":"2025-04-23T12:25:54.874Z","repository":{"id":45614056,"uuid":"136877246","full_name":"orchetect/PListKit","owner":"orchetect","description":"Swift library for easily reading/writing plist (Property List) files.","archived":false,"fork":false,"pushed_at":"2023-11-15T00:57:05.000Z","size":626,"stargazers_count":29,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-01T16:07:47.356Z","etag":null,"topics":["ios","macos","nested-dictionaries","plist","plist-files","property-list","subscripts","swift","swift5","tvos","watchos","xml"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/orchetect.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"orchetect"}},"created_at":"2018-06-11T05:10:34.000Z","updated_at":"2024-04-12T06:49:53.000Z","dependencies_parsed_at":"2023-11-15T01:40:39.052Z","dependency_job_id":"7dbb3fd8-6501-4f1c-8fd7-3fea495c1b6f","html_url":"https://github.com/orchetect/PListKit","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":"0.16455696202531644","last_synced_commit":"b9b68403c4ff1b5c987e9d61d498d0baac5d8c0e"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchetect%2FPListKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchetect%2FPListKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchetect%2FPListKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchetect%2FPListKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orchetect","download_url":"https://codeload.github.com/orchetect/PListKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250432449,"owners_count":21429673,"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":["ios","macos","nested-dictionaries","plist","plist-files","property-list","subscripts","swift","swift5","tvos","watchos","xml"],"created_at":"2024-10-20T03:34:10.745Z","updated_at":"2025-04-23T12:25:54.852Z","avatar_url":"https://github.com/orchetect.png","language":"Swift","readme":"# PListKit\n\n[![CI Build Status](https://github.com/orchetect/PListKit/actions/workflows/build.yml/badge.svg)](https://github.com/orchetect/PListKit/actions/workflows/build.yml) [![Platforms - macOS 10.10+ | iOS 9+ | tvOS 9+ | watchOS 2+ | visionOS 1+](https://img.shields.io/badge/platforms-macOS%2010.10+%20|%20iOS%209+%20|%20tvOS%209+%20|%20watchOS%202+%20|%20visionOS%201+-lightgrey.svg?style=flat)](https://developer.apple.com/swift) ![Swift 5.3-6](https://img.shields.io/badge/Swift-5.5–6-orange.svg?style=flat) [![Xcode 13-16](https://img.shields.io/badge/Xcode-13–16-blue.svg?style=flat)](https://developer.apple.com/swift) [![License: MIT](http://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat)](https://github.com/orchetect/PListKit/blob/main/LICENSE)\n\nA multiplatform Swift library bringing functional methods and type safety to .plist (Property List) files.\n\n## Summary\n\nThe challenges that Apple's standard `PropertyListSerialization` presents:\n\n1. **Lack of type safety** which allows the inadvertent injection of incompatible value types, which can lead to unexpected errors when saving a plist file later on, and are difficult to diagnose\n2. **Root-level dictionary access only**, making traversal of nested dictionaries very cumbersome\n3. **Deals in NS value types** which is not very Swifty and requires extra boilerplate at every interaction\n\nPListKit solves these issues by:\n\n1. Acting as a **safe and convenient** wrapper for `PropertyListSerialization`\n2. Providing **clean functional syntax** for\n   - easily manipulating nested keys and values in dictionary trees\n   - loading and saving plist files\n3. Dealing in **native Swift value types** for keys and values\n4. **Preventing the inadvertent use of incompatible value types** to avoid unexpected errors due to lack of type safety\n\n## Installation\n\nThe library is available as a Swift Package Manager (SPM) package.\n\nTo add PListKit to your Xcode project:\n\n1. Select **File → Swift Packages → Add Package Dependency**\n2. Add package using  `https://github.com/orchetect/PListKit` as the URL.\n\n## Documentation\n\nSee the [online documentation](https://orchetect.github.io/PListKit/) or view it in Xcode's documentation browser by selecting the **Product → Build Documentation** menu.\n\n## Resources\n\n- [Apple Docs: About Property Lists](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/PropertyLists/AboutPropertyLists/AboutPropertyLists.html)\n\n## Author\n\nCoded by a bunch of 🐹 hamsters in a trenchcoat that calls itself [@orchetect](https://github.com/orchetect).\n\n## License\n\nLicensed under the MIT license. See [LICENSE](https://github.com/orchetect/PListKit/blob/master/LICENSE) for details.\n\n## Contributions\n\nContributions are welcome. Feel free to post an Issue to discuss.\n\nThis library was formerly known as OTPList.\n","funding_links":["https://github.com/sponsors/orchetect"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forchetect%2Fplistkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forchetect%2Fplistkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forchetect%2Fplistkit/lists"}