{"id":17688050,"url":"https://github.com/itztravelintime/tinuserialization","last_synced_at":"2026-05-07T01:04:32.514Z","repository":{"id":134177781,"uuid":"429789454","full_name":"ITzTravelInTime/TINUSerialization","owner":"ITzTravelInTime","description":"Library with useful extensions to `Decodable` and `Encodable` (and so also `Codable`) types, including simple JSON/Plist serialization and deserialization.","archived":false,"fork":false,"pushed_at":"2022-08-27T08:19:59.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T21:30:01.909Z","etag":null,"topics":["ios","ipados","json","mac-catalyst","macos","plist","swift","swift-package","tinu"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ITzTravelInTime.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}},"created_at":"2021-11-19T12:27:08.000Z","updated_at":"2024-09-17T09:49:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"69912019-5275-44de-898c-4c3f27e43464","html_url":"https://github.com/ITzTravelInTime/TINUSerialization","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ITzTravelInTime/TINUSerialization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITzTravelInTime%2FTINUSerialization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITzTravelInTime%2FTINUSerialization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITzTravelInTime%2FTINUSerialization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITzTravelInTime%2FTINUSerialization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ITzTravelInTime","download_url":"https://codeload.github.com/ITzTravelInTime/TINUSerialization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ITzTravelInTime%2FTINUSerialization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274602356,"owners_count":25315199,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ios","ipados","json","mac-catalyst","macos","plist","swift","swift-package","tinu"],"created_at":"2024-10-24T11:43:14.037Z","updated_at":"2026-05-07T01:04:32.473Z","avatar_url":"https://github.com/ITzTravelInTime.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TINUSerialization\n\nLibrary with useful extensions to `Decodable` and `Encodable` (and so also `Codable`) types, including simple JSON/Plist serialization and deserialization.\n\n## Features and usage\n\nThe main feature of this library are the extensions for `Decodable` and `Encodable` (and so also `Codable`) types.\n\nHere are some examples of intended usages:\n\n```swift\nimport Foundation\nimport TINUSerialization\n\n///Tesing struct, to be able to use this library it must conform to `Codable` and `FastCodable` or `GenericCodable` and `FastCdable`.\nstruct Foo: Codable, FastCodable{\n    let bar_string: String\n    let bar_integer: Int\n}\n\n//extension Dictionary: GenericCodable {  }\n\n//Testing initialization of the struct\nlet test = Foo.init(bar_string: \"Test\", bar_integer: 30)\n\n//testing serialization to json\nprint(\"Obtained json string: \\n\" + (test.json(usingFormatting: .prettyPrinted) ?? \"\") + \"\\n\\n\")\n\n//testing serialization to plist\nprint(\"Obtained plsit string: \\n\" + (test.plist() ?? \"\") + \"\\n\\n\")\n\n//creating new instance from a json deserialization\nprint(\"Testing json de-serialization: \\(Foo.init(fromJSONSerializedString: test.json(usingFormatting: nil) ?? \"\")!) \\n\\n\")\n\n//creating new instance from a plist deserialization\nprint(\"Testing plist de-serialization: \\(Foo.init(fromPlistSerialisedString: test.plist() ?? \"\")!) \\n\\n\")\n\n//creating new instance from a remote json file\nprint(\"Testing remote json de-serialization: \\( Foo.init(fromRemoteFileAtUrl: \"https://raw.githubusercontent.com/ITzTravelInTime/TINUSerialization/main/Test.json\" )! ) \\n\\n\")\n\n//creating new instance from a remote plist file\nprint(\"Testing remote plist de-serialization: \\( Foo.init(fromRemoteFileAtUrl: \"https://raw.githubusercontent.com/ITzTravelInTime/TINUSerialization/main/Test.plist\" )! ) \\n\\n\")\n```\n\n## Who should use this Library?\n\nThis library should be used by Swift apps/programs that needs to perform simple operations with JSON/Plist serializaed objects, either by fetching data locally or remotely.\n\nThis code is tested on apple platfroms and the official Swift docker container.\n\n## About the project\n\nThis code was created as part of my TINU project (https://github.com/ITzTravelInTime/TINU) and has been separated and made into it's own library to make the main project's source less complex and more focused on it's aim. \n\nAlso having it as it's own library allows for code to be updated separately and so various versions of the main TINU app will be able to be compiled all with the latest version of this library.\n\n## Libraries used\n\n - [ITzTravelInTime/TINURecovery](https://github.com/ITzTravelInTime/TINURecovery)\n - [ITzTravelInTime/SwiftLoggedPrint](https://github.com/ITzTravelInTime/SwiftLoggedPrint)\n\n## Credits\n\n - [ITzTravelInTime (Pietro Caruso)](https://github.com/ITzTravelInTime) - Project creator and main developer.\n\n## Contacts\n\n - ITzTravelInTime (Pietro Caruso): piecaruso97@gmail.com\n\n## Legal info\n\nTINUSerialization: A library for the usage of serialization formats in Swift.\nCopyright (C) 2021-2022 Pietro Caruso\n\nThis library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitztravelintime%2Ftinuserialization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitztravelintime%2Ftinuserialization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitztravelintime%2Ftinuserialization/lists"}