{"id":21032831,"url":"https://github.com/gee1k/capacitor-udp-socket","last_synced_at":"2025-10-07T12:13:53.317Z","repository":{"id":143546939,"uuid":"615564063","full_name":"gee1k/capacitor-udp-socket","owner":"gee1k","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-14T04:26:38.000Z","size":252,"stargazers_count":11,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-19T15:55:12.694Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/gee1k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2023-03-18T02:16:48.000Z","updated_at":"2025-08-10T16:05:11.000Z","dependencies_parsed_at":"2024-02-01T03:05:25.465Z","dependency_job_id":"ee11f11b-0ad3-4157-9bee-c510f5d85c32","html_url":"https://github.com/gee1k/capacitor-udp-socket","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gee1k/capacitor-udp-socket","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gee1k%2Fcapacitor-udp-socket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gee1k%2Fcapacitor-udp-socket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gee1k%2Fcapacitor-udp-socket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gee1k%2Fcapacitor-udp-socket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gee1k","download_url":"https://codeload.github.com/gee1k/capacitor-udp-socket/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gee1k%2Fcapacitor-udp-socket/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278772392,"owners_count":26043173,"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-10-07T02:00:06.786Z","response_time":59,"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":"2024-11-19T12:46:03.352Z","updated_at":"2025-10-07T12:13:53.284Z","avatar_url":"https://github.com/gee1k.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# capacitor-udp-socket\n\nA UDP Socket Plugin for capacitor\n\nThanks [@unitree-czk](https://github.com/unitree-czk/capacitor-udp)\n\n## Install\n\n```bash\nnpm install capacitor-udp-socket\nnpx cap sync\n```\n\n## API\n\n\u003cdocgen-index\u003e\n\n* [`create(...)`](#create)\n* [`update(...)`](#update)\n* [`bind(...)`](#bind)\n* [`send(...)`](#send)\n* [`close(...)`](#close)\n* [`closeAllSockets()`](#closeallsockets)\n* [`setBroadcast(...)`](#setbroadcast)\n* [`setPaused(...)`](#setpaused)\n* [`getInfo(...)`](#getinfo)\n* [`getSockets()`](#getsockets)\n* [`joinGroup(...)`](#joingroup)\n* [`leaveGroup(...)`](#leavegroup)\n* [`getJoinedGroups()`](#getjoinedgroups)\n* [`setMulticastTimeToLive(...)`](#setmulticasttimetolive)\n* [`setMulticastLoopbackMode(...)`](#setmulticastloopbackmode)\n* [`addListener('receive', ...)`](#addlistenerreceive-)\n* [`addListener('receiveError', ...)`](#addlistenerreceiveerror-)\n* [Interfaces](#interfaces)\n\n\u003c/docgen-index\u003e\n\n\u003cdocgen-api\u003e\n\u003c!--Update the source file JSDoc comments and rerun docgen to update the docs below--\u003e\n\nUDP socket plugin for Capacitor.\n\nOnly available on Android and iOS.\n\n### create(...)\n\n```typescript\ncreate(options?: CreateOptions | undefined) =\u003e Promise\u003cCreateResult\u003e\n```\n\nCreate a socket for udp, and you can create more than one differentiated by the socket id.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                    |\n| ------------- | ------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#createoptions\"\u003eCreateOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#createresult\"\u003eCreateResult\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### update(...)\n\n```typescript\nupdate(options: UpdateOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nUpdate the socket info including socket name and buffer size.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                    |\n| ------------- | ------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#updateoptions\"\u003eUpdateOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### bind(...)\n\n```typescript\nbind(options: BindOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nYou need to bind a socket before sending and receiving data.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                |\n| ------------- | --------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#bindoptions\"\u003eBindOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### send(...)\n\n```typescript\nsend(options: SendOptions) =\u003e Promise\u003cSendResult\u003e\n```\n\nSend udp data\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                |\n| ------------- | --------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#sendoptions\"\u003eSendOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#sendresult\"\u003eSendResult\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### close(...)\n\n```typescript\nclose(options: CloseOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nClose one socket\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                  |\n| ------------- | ----------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#closeoptions\"\u003eCloseOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### closeAllSockets()\n\n```typescript\ncloseAllSockets() =\u003e Promise\u003cvoid\u003e\n```\n\nClose All Sockets\n\nOnly available on Android and iOS.\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### setBroadcast(...)\n\n```typescript\nsetBroadcast(options: SetBroadcastOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nAfter enabling broadcasting, you can send data with target address 255.255.255.255.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                |\n| ------------- | ------------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#setbroadcastoptions\"\u003eSetBroadcastOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### setPaused(...)\n\n```typescript\nsetPaused(options: SetPausedOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nPause receiving data.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                          |\n| ------------- | ------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#setpausedoptions\"\u003eSetPausedOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### getInfo(...)\n\n```typescript\ngetInfo(options: InfoOptions) =\u003e Promise\u003cInfoResult\u003e\n```\n\nGet Socket information\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                |\n| ------------- | --------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#infooptions\"\u003eInfoOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#inforesult\"\u003eInfoResult\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### getSockets()\n\n```typescript\ngetSockets() =\u003e Promise\u003cGetSocketsResult\u003e\n```\n\nObtain all the sockets available.\n\nOnly available on Android and iOS.\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#getsocketsresult\"\u003eGetSocketsResult\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### joinGroup(...)\n\n```typescript\njoinGroup(options: JoinGroupOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nJoin a particular group address. For IPv4, it's like \"238.12.12.12\". For IPv6, it's like \"ff02::08\".\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                          |\n| ------------- | ------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#joingroupoptions\"\u003eJoinGroupOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### leaveGroup(...)\n\n```typescript\nleaveGroup(options: LeaveGroupOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nLeave a particular group address. For IPv4, it's like \"238.12.12.12\". For IPv6, it's like \"ff02::08\".\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#leavegroupoptions\"\u003eLeaveGroupOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### getJoinedGroups()\n\n```typescript\ngetJoinedGroups() =\u003e Promise\u003cGetJoinedGroupsResult\u003e\n```\n\nGet joined groups\n\nOnly available on Android and iOS.\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#getjoinedgroupsresult\"\u003eGetJoinedGroupsResult\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### setMulticastTimeToLive(...)\n\n```typescript\nsetMulticastTimeToLive(options: SetMulticastTimeToLiveOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nSet the time to live (TTL) for multicast packets\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                                    |\n| ------------- | --------------------------------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#setmulticasttimetoliveoptions\"\u003eSetMulticastTimeToLiveOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### setMulticastLoopbackMode(...)\n\n```typescript\nsetMulticastLoopbackMode(options: SetMulticastLoopbackModeOptions) =\u003e Promise\u003cvoid\u003e\n```\n\nSet whether to enable multicast loopback mode\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                                        |\n| ------------- | ------------------------------------------------------------------------------------------- |\n| **`options`** | \u003ccode\u003e\u003ca href=\"#setmulticastloopbackmodeoptions\"\u003eSetMulticastLoopbackModeOptions\u003c/a\u003e\u003c/code\u003e |\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### addListener('receive', ...)\n\n```typescript\naddListener(eventName: 'receive', listenerFunc: (event: ReceiveEvent) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\nListening for data reception events\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                      |\n| ------------------ | ------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'receive'\u003c/code\u003e                                                    |\n| **`listenerFunc`** | \u003ccode\u003e(event: \u003ca href=\"#receiveevent\"\u003eReceiveEvent\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### addListener('receiveError', ...)\n\n```typescript\naddListener(eventName: 'receiveError', listenerFunc: (event: ReceiveEvent) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\nListening for data reception exception events\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                      |\n| ------------------ | ------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'receiveError'\u003c/code\u003e                                               |\n| **`listenerFunc`** | \u003ccode\u003e(event: \u003ca href=\"#receiveevent\"\u003eReceiveEvent\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n**Since:** 5.0.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### CreateResult\n\nResult of creating a UDP socket\n\n| Prop           | Type                | Description          |\n| -------------- | ------------------- | -------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket |\n| **`ipv4`**     | \u003ccode\u003estring\u003c/code\u003e | ipv4 address         |\n| **`ipv6`**     | \u003ccode\u003estring\u003c/code\u003e | ipv6 address         |\n\n\n#### CreateOptions\n\nParameters for creating a UDP socket\n\n| Prop             | Type                                                 |\n| ---------------- | ---------------------------------------------------- |\n| **`properties`** | \u003ccode\u003e{ name?: string; bufferSize?: number; }\u003c/code\u003e |\n\n\n#### UpdateOptions\n\nParameters for updating a UDP socket\n\n| Prop             | Type                                                 | Description          |\n| ---------------- | ---------------------------------------------------- | -------------------- |\n| **`socketId`**   | \u003ccode\u003enumber\u003c/code\u003e                                  | The id of the socket |\n| **`properties`** | \u003ccode\u003e{ name?: string; bufferSize?: number; }\u003c/code\u003e |                      |\n\n\n#### BindOptions\n\nParameters for binding a UDP socket\n\n| Prop           | Type                | Description                                                                                 |\n| -------------- | ------------------- | ------------------------------------------------------------------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket                                                                        |\n| **`address`**  | \u003ccode\u003estring\u003c/code\u003e | The address to bind to. If not specified, the socket will be bound to the wildcard address. |\n| **`port`**     | \u003ccode\u003enumber\u003c/code\u003e | The port to bind to.                                                                        |\n\n\n#### SendResult\n\nResult of sending data\n\n| Prop            | Type                |\n| --------------- | ------------------- |\n| **`bytesSent`** | \u003ccode\u003enumber\u003c/code\u003e |\n\n\n#### SendOptions\n\nParameters for sending data\n\n| Prop           | Type                | Description                     |\n| -------------- | ------------------- | ------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket            |\n| **`address`**  | \u003ccode\u003estring\u003c/code\u003e | The address of the remote host. |\n| **`port`**     | \u003ccode\u003enumber\u003c/code\u003e | The port of the remote host.    |\n| **`buffer`**   | \u003ccode\u003estring\u003c/code\u003e | The data to send.               |\n\n\n#### CloseOptions\n\nParameters for closing a UDP socket\n\n| Prop           | Type                | Description          |\n| -------------- | ------------------- | -------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket |\n\n\n#### SetBroadcastOptions\n\nParameters for settings broadcast mode\n\n| Prop           | Type                 | Description                       |\n| -------------- | -------------------- | --------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e  | The id of the socket              |\n| **`enabled`**  | \u003ccode\u003eboolean\u003c/code\u003e | Whether to enable broadcast mode. |\n\n\n#### SetPausedOptions\n\nParameters for binding a UDP socket\n\n| Prop           | Type                 | Description                     |\n| -------------- | -------------------- | ------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e  | The id of the socket            |\n| **`paused`**   | \u003ccode\u003eboolean\u003c/code\u003e | Whether to pause receiving data |\n\n\n#### InfoResult\n\nResult of getting information about a UDP socket\n\n| Prop               | Type                        | Description                                                                        |\n| ------------------ | --------------------------- | ---------------------------------------------------------------------------------- |\n| **`socketId`**     | \u003ccode\u003enumber\u003c/code\u003e         | The id of the socket                                                               |\n| **`name`**         | \u003ccode\u003estring \\| null\u003c/code\u003e | The name of the socket, which can be used to distinguish between multiple sockets. |\n| **`bufferSize`**   | \u003ccode\u003enumber\u003c/code\u003e         | The size of the buffer used to receive data.                                       |\n| **`paused`**       | \u003ccode\u003eboolean\u003c/code\u003e        | Whether data reception has been suspended。                                         |\n| **`localAddress`** | \u003ccode\u003estring\u003c/code\u003e         | The address to which the socket is bound.                                          |\n| **`localPort`**    | \u003ccode\u003enumber\u003c/code\u003e         | The port to which the socket is bound.                                             |\n\n\n#### InfoOptions\n\nParameters for getting information about a UDP socket\n\n| Prop           | Type                | Description          |\n| -------------- | ------------------- | -------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket |\n\n\n#### GetSocketsResult\n\nParameters for getting information about all UDP sockets\n\n| Prop          | Type                      | Description             |\n| ------------- | ------------------------- | ----------------------- |\n| **`sockets`** | \u003ccode\u003eInfoResult[]\u003c/code\u003e | The list of UDP sockets |\n\n\n#### JoinGroupOptions\n\nParameters for joining a multicast group\n\n| Prop           | Type                | Description                                                                                                     |\n| -------------- | ------------------- | --------------------------------------------------------------------------------------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket                                                                                            |\n| **`address`**  | \u003ccode\u003estring\u003c/code\u003e | The address of the multicast group to join. For IPv4, it's like \"238.12.12.12\". For IPv6, it's like \"ff02::08\". |\n\n\n#### LeaveGroupOptions\n\nParameters for leaving a multicast group\n\n| Prop           | Type                | Description                                                                                                      |\n| -------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket                                                                                             |\n| **`address`**  | \u003ccode\u003estring\u003c/code\u003e | The address of the multicast group to leave. For IPv4, it's like \"238.12.12.12\". For IPv6, it's like \"ff02::08\". |\n\n\n#### GetJoinedGroupsResult\n\nParameters for getting joined multicast groups\n\n| Prop         | Type                  | Description                           |\n| ------------ | --------------------- | ------------------------------------- |\n| **`groups`** | \u003ccode\u003e[string]\u003c/code\u003e | The list of multicast group addresses |\n\n\n#### SetMulticastTimeToLiveOptions\n\nParameters for setting multicast time to live\n\n| Prop           | Type                | Description             |\n| -------------- | ------------------- | ----------------------- |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket    |\n| **`ttl`**      | \u003ccode\u003enumber\u003c/code\u003e | The time to live value. |\n\n\n#### SetMulticastLoopbackModeOptions\n\nParameters for setting multicast loopback mode\n\n| Prop           | Type                 | Description                                |\n| -------------- | -------------------- | ------------------------------------------ |\n| **`socketId`** | \u003ccode\u003enumber\u003c/code\u003e  | The id of the socket                       |\n| **`enabled`**  | \u003ccode\u003eboolean\u003c/code\u003e | Whether to enable multicast loopback mode. |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | \u003ccode\u003e() =\u0026gt; Promise\u0026lt;void\u0026gt;\u003c/code\u003e |\n\n\n#### ReceiveEvent\n\nResult of receiving data\n\n| Prop                | Type                | Description                     |\n| ------------------- | ------------------- | ------------------------------- |\n| **`socketId`**      | \u003ccode\u003enumber\u003c/code\u003e | The id of the socket            |\n| **`buffer`**        | \u003ccode\u003estring\u003c/code\u003e | The data received.              |\n| **`remoteAddress`** | \u003ccode\u003estring\u003c/code\u003e | The address of the remote host. |\n| **`remotePort`**    | \u003ccode\u003enumber\u003c/code\u003e | The port of the remote host.    |\n| **`error`**         | \u003ccode\u003estring\u003c/code\u003e | Error message                   |\n\n\u003c/docgen-api\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgee1k%2Fcapacitor-udp-socket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgee1k%2Fcapacitor-udp-socket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgee1k%2Fcapacitor-udp-socket/lists"}