{"id":20829479,"url":"https://github.com/inkapplications/spondee","last_synced_at":"2026-02-26T04:10:49.652Z","repository":{"id":57725259,"uuid":"340931470","full_name":"InkApplications/Spondee","owner":"InkApplications","description":"📐 A class set for wrapping units of measure in Kotlin","archived":false,"fork":false,"pushed_at":"2025-04-19T12:37:29.000Z","size":409,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T17:38:13.216Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/InkApplications.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2021-02-21T15:15:29.000Z","updated_at":"2025-04-19T12:37:27.000Z","dependencies_parsed_at":"2024-04-22T06:28:48.878Z","dependency_job_id":"43d0f44f-008f-4eea-b38a-713ed18572c1","html_url":"https://github.com/InkApplications/Spondee","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InkApplications%2FSpondee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InkApplications%2FSpondee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InkApplications%2FSpondee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InkApplications%2FSpondee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InkApplications","download_url":"https://codeload.github.com/InkApplications/Spondee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961307,"owners_count":21832183,"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":[],"created_at":"2024-11-17T23:20:32.553Z","updated_at":"2026-02-26T04:10:49.601Z","avatar_url":"https://github.com/InkApplications.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"Spondee\n=======\n\nA class set for wrapping units of measure and common data structures in\na Kotlin application.\n\nFAQ\n---\n\n### What is this?\nA collection of classes representing units of measure and other common\ndata containers that can be used in an application.\n\n### Why not use a plain number type?\nPlain numbers are often ambiguous. Consider the method:\n\n    fun setLight(brightness: Number)\n\nWhat number would you pass in to set the light to half brightness?\n\n### What measurement systems does this use?\nFor measurements, both Metric and US Customary systems are typically\nimplemented. You can also easily add new units by implementing the\ntype's interface. This typically only requires the ability to convert\nto a common unit, and will allow the new unit to be easily converted\nbetween units of the same type.\n\n### Is this a comprehensive set of units?\nThere are many ways to measure things and store data.\nThis will never be comprehensive, but is designed to be extensible instead.\nFeel free to add units that you use.\n\n### Why are some units represented as ratios and some have their own definition?\nRelying only on base units and composing the unit definitions was\nconsidered for the design of this project. However, while technically correct,\nit made using and maintaining the library cumbersome. It also relied more on\nmath transformations, which increased floating point issues.\n\nThis library is designed so that values can be simply annotated by a wrapping\nvalue class, maintaining its original number type.\n\nIn practice, units that are expressed as ratios, such as kilometers per hour,\nshould rely on the `Ratio` type. Units that are given a name should get their\nown types, even if they are technically composed from other units.\n\n### What is the worst unit?\nYou would think it'd be Ounces, but it's actually Bels.\n\n### Are these optimized for efficiency?\nNo. Math on these units are often done with Double precision. If this is\na problem in your application, they can be converted to a plain number for\nefficiency. In reality, though, it's probably fine.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkapplications%2Fspondee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finkapplications%2Fspondee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkapplications%2Fspondee/lists"}