{"id":25595511,"url":"https://github.com/polywrap/client-readiness","last_synced_at":"2026-06-19T12:32:36.429Z","repository":{"id":154434757,"uuid":"623552845","full_name":"polywrap/client-readiness","owner":"polywrap","description":"The current state of all Polywrap Clients in the ecosystem.","archived":false,"fork":false,"pushed_at":"2023-08-18T15:04:41.000Z","size":851,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-21T11:45:30.749Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/polywrap.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-04T15:44:57.000Z","updated_at":"2023-09-07T03:33:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"17d9e5bb-0fff-45fe-b2c9-d2e4e10f3f29","html_url":"https://github.com/polywrap/client-readiness","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/polywrap/client-readiness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fclient-readiness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fclient-readiness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fclient-readiness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fclient-readiness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polywrap","download_url":"https://codeload.github.com/polywrap/client-readiness/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polywrap%2Fclient-readiness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34532253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"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":[],"created_at":"2025-02-21T11:29:35.576Z","updated_at":"2026-06-19T12:32:36.416Z","avatar_url":"https://github.com/polywrap.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Client Readiness Checklist\nA \"readiness checklist\" for [all Polywrap clients](https://docs.polywrap.io/clients) to adhere to.\n\n## Checklist\n\n| Feature :heavy_check_mark:                                                                   | Scenario :thought_balloon:                     | Required :question: | Spec :clipboard:                                       | JS :scroll:                                                                         | KT :robot:                                                                                         | Swift :eagle:                                                                                         | RS :crab:                                                                           | PY :snake:                                                                          |\n|----------------------------------------------------------------------------------------------|------------------------------------------------|---------------------|--------------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\n| **`wrap://` URIs**                                                                           |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Create \u0026 sanitize a `wrap://` URI              | Yes                 | [:mag:](./specs/uri.yaml)                              | [:heavy_check_mark:](./clients/js/src/features/uri.ts)                              | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/uri/uri.kt)                         | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/Uri.swift)                            | [:heavy_check_mark:](./clients/rs/src/features/uri.rs)                              | [:heavy_check_mark:](./clients/py/src/features/uri.py)                              |\n| **Client Configuration**                                                                     |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Add a wrap package                             | Yes                 | [:mag:](./specs/config_embed_wrap_package.yaml)        | [:heavy_check_mark:](./clients/js/src/features/config_embed_wrap_package.ts)        | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/config/EmbedWrapPackage.kt)         | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/ConfigEmbedWrapPackage.swift)         | [:heavy_check_mark:](./clients/rs/src/features/config_embed_wrap_package.rs)        | [:heavy_check_mark:](./clients/py/src/features/config_embed_wrap_package.py)        |\n|                                                                                              | Add a plugin package                           | Yes                 | [:mag:](./specs/config_plugin_package.yaml)            | [:heavy_check_mark:](./clients/js/src/features/config_plugin_package.ts)            | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/config/PluginPackage.kt)            | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/ConfigPluginPackage.swift)            | [:heavy_check_mark:](./clients/rs/src/features/config_plugin_package.rs)            | [:heavy_check_mark:](./clients/py/src/features/config_plugin_package.py)            |\n|                                                                                              | Add a plugin instance                          | Yes                 | [:mag:](./specs/config_plugin_instance.yaml)           | [:heavy_check_mark:](./clients/js/src/features/config_plugin_instance.ts)           | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/config/PluginInstance.kt)           | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/ConfigPluginInstance.swift)           | [:heavy_check_mark:](./clients/rs/src/features/config_plugin_instance.rs)           | [:heavy_check_mark:](./clients/py/src/features/config_plugin_instance.py)           |\n|                                                                                              | Add a URI redirect                             | Yes                 | [:mag:](./specs/config_uri_redirect.yaml)              | [:heavy_check_mark:](./clients/js/src/features/config_uri_redirect.ts)              | [:x:](./clients/kotlin/src/main/kotlin/features/config/UriRedirect.kt)                             | [:x:](./clients/swift/Sources/Readiness/Features/ConfigUriRedirect.swift)                             | [:heavy_check_mark:](./clients/rs/src/features/config_uri_redirect.rs)              | [:heavy_check_mark:](./clients/py/src/features/config_uri_redirect.py)              |\n|                                                                                              | Add env variables                              | Yes                 | [:mag:](./specs/config_env_variables.yaml)             | [:heavy_check_mark:](./clients/js/src/features/config_env_variables.ts)             | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/config/EnvVariables.kt)             | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/ConfigEnvVariables.swift)             | [:heavy_check_mark:](./clients/rs/src/features/config_env_variables.rs)             | [:heavy_check_mark:](./clients/py/src/features/config_env_variables.py)             |\n|                                                                                              | Add interface implementations                  | Yes                 | [:mag:](./specs/config_interface_implementations.yaml) | [:heavy_check_mark:](./clients/js/src/features/config_interface_implementations.ts) | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/config/InterfaceImplementations.kt) | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/ConfigInterfaceImplementations.swift) | [:heavy_check_mark:](./clients/rs/src/features/config_interface_implementations.rs) | [:heavy_check_mark:](./clients/py/src/features/config_interface_implementations.py) |\n|                                                                                              | Add resolver                                   | Yes                 | [:mag:](./specs/config_resolver.yaml)                  | [:heavy_check_mark:](./clients/js/src/features/config_resolver.ts)                  | [:x:](./clients/kotlin/src/main/kotlin/features/config/Resolver.kt)                                | [:x:](./clients/swift/Sources/Readiness/Features/ConfigResolver.swift)                                | [:heavy_check_mark:](./clients/rs/src/features/config_resolver.rs)                  | [:heavy_check_mark:](./clients/py/src/features/config_resolver.py)                  |\n|                                                                                              | Add resolver ext                               | Yes                 | [:mag:](./specs/config_resolver_ext.yaml)              | [:heavy_check_mark:](./clients/js/src/features/config_resolver_ext.ts)              | [:x:](./clients/kotlin/src/main/kotlin/features/config/ResolverExt.kt)                             | [:x:](./clients/swift/Sources/Readiness/Features/ConfigResolverExt.swift)                             | [:heavy_check_mark:](./clients/rs/src/features/config_resolver_ext.rs)              | [:heavy_check_mark:](./clients/py/src/features/config_resolver_ext.py)              |\n| **Invocation**                                                                               |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Invoke a wrap function\u003cbr/\u003e(Wasm Runtime v0.1) | Yes                 | [:mag:](./specs/invoke_wrap_wasm_v0_1.yaml)            | [:heavy_check_mark:](./clients/js/src/features/invoke_wrap_wasm_v0_1.ts)            | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/invoke/WrapWasmV01.kt)              | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/InvokeWrapWasmV0_1.swift)             | [:heavy_check_mark:](./clients/rs/src/features/invoke_wrap_wasm_v0_1.rs)            | [:heavy_check_mark:](./clients/py/src/features/invoke_wrap_wasm_v0_1.py)            |\n|                                                                                              | Invoke a plugin function                       | Yes                 | [:mag:](./specs/invoke_plugin.yaml)                    | [:heavy_check_mark:](./clients/js/src/features/invoke_plugin.ts)                    | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/invoke/Plugin.kt)                   | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/InvokePlugin.swift)                   | [:heavy_check_mark:](./clients/rs/src/features/invoke_plugin.rs)                    | [:heavy_check_mark:](./clients/py/src/features/invoke_plugin.py)                    |\n|                                                                                              | Subinvoke: `wrap -\u003e wrap`                      | Yes                 | [:mag:](./specs/subinvoke_wrap_wrap.yaml)              | [:heavy_check_mark:](./clients/js/src/features/subinvoke_wrap_wrap.ts)              | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/subinvoke/WrapWrap.kt)              | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/SubinvokeWrapWrap.swift)              | [:heavy_check_mark:](./clients/rs/src/features/subinvoke_wrap_wrap.rs)              | [:heavy_check_mark:](./clients/py/src/features/subinvoke_wrap_wrap.py)              |\n|                                                                                              | Subinvoke: `wrap -\u003e plugin`                    | Yes                 | [:mag:](./specs/subinvoke_wrap_plugin.yaml)            | [:heavy_check_mark:](./clients/js/src/features/subinvoke_wrap_plugin.ts)            | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/subinvoke/WrapPlugin.kt)            | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/SubinvokeWrapPlugin.swift)            | [:heavy_check_mark:](./clients/rs/src/features/subinvoke_wrap_plugin.rs)            | [:heavy_check_mark:](./clients/py/src/features/subinvoke_wrap_plugin.py)            |\n|                                                                                              | Subinvoke: `plugin -\u003e wrap`                    | Yes                 | [:mag:](./specs/subinvoke_plugin_wrap.yaml)            | [:heavy_check_mark:](./clients/js/src/features/subinvoke_plugin_wrap.ts)            | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/subinvoke/PluginWrap.kt)            | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/SubinvokePluginWrap.swift)            | [:heavy_check_mark:](./clients/rs/src/features/subinvoke_plugin_wrap.rs)            | [:heavy_check_mark:](./clients/py/src/features/subinvoke_plugin_wrap.py)            |\n| **`wrap://` Resolution**                                                                     |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Resolve a wrap package                         | Yes                 | [:mag:](./specs/resolve_package.yaml)                  | [:heavy_check_mark:](./clients/js/src/features/resolve_package.ts)                  | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/Package.kt)                                | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_package.rs)                  | [:heavy_check_mark:](./clients/py/src/features/resolve_package.py)                  |\n|                                                                                              | Resolve a wrap instance                        | Yes                 | [:mag:](./specs/resolve_instance.yaml)                 | [:heavy_check_mark:](./clients/js/src/features/resolve_instance.ts)                 | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/Instance.kt)                               | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_instance.rs)                 | [:heavy_check_mark:](./clients/py/src/features/resolve_instance.py)                 |\n|                                                                                              | Resolve a redirect                             | Yes                 | [:mag:](./specs/resolve_redirect.yaml)                 | [:heavy_check_mark:](./clients/js/src/features/resolve_redirect.ts)                 | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/Redirect.kt)                               | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_redirect.rs)                 | [:heavy_check_mark:](./clients/py/src/features/resolve_redirect.py)                 |\n|                                                                                              | Resolve `wrap://http/` \u0026\u003cbr/\u003e`wrap://https/`   | Yes                 | [:mag:](./specs/resolve_http.yaml)                     | [:heavy_check_mark:](./clients/js/src/features/resolve_http.ts)                     | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/Http.kt)                                   | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_http.rs)                     | [:heavy_check_mark:](./clients/py/src/features/resolve_http.py)                     |\n|                                                                                              | Resolve `wrap://file/` \u0026\u003cbr/\u003e`wrap://fs/`      | Yes                 | [:mag:](./specs/resolve_file.yaml)                     | [:heavy_check_mark:](./clients/js/src/features/resolve_file.ts)                     | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/File.kt)                                   | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_file.rs)                     | [:heavy_check_mark:](./clients/py/src/features/resolve_file.py)                     |\n|                                                                                              | Resolve `wrap://ipfs/`                         | Yes                 | [:mag:](./specs/resolve_ipfs.yaml)                     | [:heavy_check_mark:](./clients/js/src/features/resolve_ipfs.ts)                     | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/Ipfs.kt)                                   | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_ipfs.rs)                     | [:heavy_check_mark:](./clients/py/src/features/resolve_ipfs.py)                     |\n|                                                                                              | Resolve `wrap://ens/` contenthash              | No                  | [:mag:](./specs/resolve_ens_contenthash.yaml)          | [:heavy_check_mark:](./clients/js/src/features/resolve_ens_contenthash.ts)          | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/EnsContentHash.kt)                         | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_ens_contenthash.rs)                         | [:heavy_check_mark:](./clients/py/src/features/resolve_ens_contenthash.py)          |\n|                                                                                              | Resolve `wrap://ens/` text-records             | No                  | [:mag:](./specs/resolve_ens_text_record.yaml)          | [:heavy_check_mark:](./clients/js/src/features/resolve_ens_text_record.ts)          | [:x:](./clients/kotlin/src/main/kotlin/features/resolve/EnsTextRecord.kt)                          | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_ens_text_record.rs)                         | [:heavy_check_mark:](./clients/py/src/features/resolve_ens_text_record.py)          |\n|                                                                                              | Resolve `wrap://wrapscan.io/`                     | No                  | [:mag:](./specs/resolve_wrapscan.yaml)                 | [:heavy_check_mark:](./clients/js/src/features/resolve_wrapscan.ts)                 | :x:                                                                                                | :x:                                                                                                   | [:heavy_check_mark:](./clients/rs/src/features/resolve_wrapscan.rs) | [:heavy_check_mark:](./clients/py/src/features/resolve_wrapscan.py)                                                                                |\n| **[WRAP Features](https://github.com/polywrap/wrap-test-harness/tree/master/cases)**         |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Wrap `Env` Variables                           | Yes                 | [:mag:](./specs/wrap_feature_env_vars.yaml)            | [:heavy_check_mark:](./clients/js/src/features/wrap_feature_env_vars.ts)            | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapFeature/EnvVars.kt)             | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapFeatureEnvVars.swift)             | [:heavy_check_mark:](./clients/rs/src/features/wrap_feature_env_vars.rs)            | [:heavy_check_mark:](./clients/py/src/features/wrap_feature_env_vars.py)            |\n|                                                                                              | Wrap Interface Invocations                     | Yes                 | [:mag:](./specs/wrap_feature_interface_invoke.yaml)    | [:heavy_check_mark:](./clients/js/src/features/wrap_feature_interface_invoke.ts)    | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapFeature/InterfaceInvoke.kt)     | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapFeatureInterfaceInvoke.swift)     | [:heavy_check_mark:](./clients/rs/src/features/wrap_feature_interface_invoke.rs)    | [:heavy_check_mark:](./clients/py/src/features/wrap_feature_interface_invoke.py)    |\n| **[WRAP ABI Type Support](https://github.com/polywrap/wrap-test-harness/tree/master/cases)** |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | `(U)Int(8\\|16\\|32)`                            | Yes                 | [:mag:](./specs/wrap_type_ints.yaml)                   | [:heavy_check_mark:](./clients/js/src/features/wrap_type_ints.ts)                   | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Ints.kt)                   | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeInts.swift)                   | [:heavy_check_mark:](./clients/rs/src/features/wrap_type_ints.rs)                   | [:heavy_check_mark:](./clients/py/src/features/wrap_type_ints.py)                   |\n|                                                                                              | `String`                                       | Yes                 | TODO                                                   | TODO                                                                                | TODO                                                                                               | TODO                                                                                                  | TODO                                                                                | TODO                                                                                |\n|                                                                                              | `Bytes`                                        | Yes                 | [:mag:](./specs/wrap_type_bytes.yaml)                  | [:heavy_check_mark:](./clients/js/src/features/wrap_type_bytes.ts)                  | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Bytes.kt)                  | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeBytes.swift)                  | [:heavy_check_mark:](./clients/rs/src/features/wrap_type_bytes.rs)                  | [:heavy_check_mark:](./clients/py/src/features/wrap_type_bytes.py)                  |\n|                                                                                              | `Object`                                       | Yes                 | [:mag:](./specs/wrap_type_object.yaml)                 | [:heavy_check_mark:](./clients/js/src/features/wrap_type_object.ts)                 | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Object.kt)                 | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeObject.swift)                 | [:yellow_circle:](./clients/rs/src/features/wrap_type_object.rs)                    | [:heavy_check_mark:](./clients/py/src/features/wrap_type_object.py)                 |\n|                                                                                              | `Enum`                                         | Yes                 | [:mag:](./specs/wrap_type_enum.yaml)                   | [:heavy_check_mark:](./clients/js/src/features/wrap_type_enum.ts)                   | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Enum.kt)                   | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeEnum.swift)                   | [:heavy_check_mark:](./clients/rs/src/features/wrap_type_enum.rs)                   | [:heavy_check_mark:](./clients/py/src/features/wrap_type_enum.py)                   |\n|                                                                                              | `BigInt`                                       | Yes                 | [:mag:](./specs/wrap_type_bigint.yaml)                 | [:heavy_check_mark:](./clients/js/src/features/wrap_type_bigint.ts)                 | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/BigInt.kt)                 | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeBigint.swift)                 | [:heavy_check_mark:](./clients/rs/src/features/wrap_type_bigint.rs)                 | [:heavy_check_mark:](./clients/py/src/features/wrap_type_bigint.py)                 |\n|                                                                                              | `BigNumber`                                    | Yes                 | [:mag:](./specs/wrap_type_bignumber.yaml)              | [:heavy_check_mark:](./clients/js/src/features/wrap_type_bignumber.ts)              | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/BigNumber.kt)              | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeBignumber.swift)              | [:heavy_check_mark:](./clients/rs/src/features/wrap_type_bignumber.rs)              | [:heavy_check_mark:](./clients/py/src/features/wrap_type_bignumber.py)              |\n|                                                                                              | `JSON`                                         | Yes                 | [:mag:](./specs/wrap_type_json.yaml)                   | [:heavy_check_mark:](./clients/js/src/features/wrap_type_json.ts)                   | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Json.kt)                   | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeJson.swift)                   | [:yellow_circle:](./clients/rs/src/features/wrap_type_json.rs)                      | [:heavy_check_mark:](./clients/py/src/features/wrap_type_json.py)                   |\n|                                                                                              | `Array\u003cT\u003e`                                     | Yes                 | TODO                                                   | TODO                                                                                | TODO                                                                                               | TODO                                                                                                  | TODO                                                                                | TODO                                                                                |\n|                                                                                              | `Map\u003cK, V\u003e`                                    | Yes                 | [:mag:](./specs/wrap_type_map.yaml)                    | [:heavy_check_mark:](./clients/js/src/features/wrap_type_map.ts)                    | [:heavy_check_mark:](./clients/kotlin/src/main/kotlin/features/wrapType/Map.kt)                    | [:heavy_check_mark:](./clients/swift/Sources/Readiness/Features/WrapTypeMap.swift)                    | [:yellow_circle:](./clients/rs/src/features/wrap_type_map.rs)                       | [:heavy_check_mark:](./clients/py/src/features/wrap_type_map.py)                    |\n| **Error handling**         |                                                |                     |                                                        |                                                                                     |                                                                                                    |                                                                                                       |                                                                                     |                                                                                     |\n|                                                                                              | Invoke                           | Yes                 | [:mag:](./specs/error_invoke.yaml)            | [:heavy_check_mark:](./clients/js/src/features/error_invoke.ts)            | :x:             | :x:             | [:heavy_check_mark:](./clients/rs/src/features/error_invoke.rs)            | [:heavy_check_mark:](./clients/py/src/features/error_invoke.py)            |\n|                                                                                              | Subinvoke                           | Yes                 | [:mag:](./specs/error_subinvoke.yaml)            | [:heavy_check_mark:](./clients/js/src/features/error_subinvoke.ts)            | :x:             | :x:             | [:heavy_check_mark:](./clients/rs/src/features/error_subinvoke.rs)            | [:heavy_check_mark:](./clients/py/src/features/error_subinvoke.py)            |\n|                                                                                              | Resolution                           | Yes                 | [:mag:](./specs/error_resolve_uri.yaml)            | [:heavy_check_mark:](./clients/js/src/features/error_resolve_uri.ts)            | :x:             | :x:             | [:heavy_check_mark:](./clients/rs/src/features/error_resolve_uri.rs)            | [:heavy_check_mark:](./clients/py/src/features/error_resolve_uri.py)            |\n\n\n## Build \u0026 Contribute\n\n### Prerequisites\n\n- [NVM](https://github.com/nvm-sh/nvm)\n- [Curl](https://curl.se/)\n- [Yarn](https://yarnpkg.com/)\n\n### Install\n\n```bash\n./install.sh\n```\n\n### Usage\n\n```bash\n./run.sh [implementation] [feature]\n```\n\n- implementation (e.g: js|rs|py)\n- feature (e.g: resolve_http|uri) -\u003e check [specs](./specs) for all features\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolywrap%2Fclient-readiness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolywrap%2Fclient-readiness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolywrap%2Fclient-readiness/lists"}