{"id":36420664,"url":"https://github.com/teslanet-nl/mule-coap-connector","last_synced_at":"2026-01-11T17:33:36.192Z","repository":{"id":40508873,"uuid":"240953946","full_name":"teslanet-nl/mule-coap-connector","owner":"teslanet-nl","description":"Mule CoAP Connector is a Mule extension that enables Mule 4 applications to implement IoT services and/or IoT clients that use the CoAP protocol.","archived":false,"fork":false,"pushed_at":"2025-10-04T13:53:52.000Z","size":4224,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-04T15:27:22.949Z","etag":null,"topics":["coap","coap-client","coap-protocol","coap-server","extension","iot","iot-application","iot-middleware","iot-platform","mule","mule-coap","mule-esb","mule4"],"latest_commit_sha":null,"homepage":"https://www.teslanet.nl","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teslanet-nl.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-16T19:39:57.000Z","updated_at":"2025-10-04T13:53:58.000Z","dependencies_parsed_at":"2024-04-21T09:26:10.087Z","dependency_job_id":"7b4992d2-5eed-4bd3-8ec3-f57282e98873","html_url":"https://github.com/teslanet-nl/mule-coap-connector","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/teslanet-nl/mule-coap-connector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teslanet-nl%2Fmule-coap-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teslanet-nl%2Fmule-coap-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teslanet-nl%2Fmule-coap-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teslanet-nl%2Fmule-coap-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teslanet-nl","download_url":"https://codeload.github.com/teslanet-nl/mule-coap-connector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teslanet-nl%2Fmule-coap-connector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28315879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["coap","coap-client","coap-protocol","coap-server","extension","iot","iot-application","iot-middleware","iot-platform","mule","mule-coap","mule-esb","mule4"],"created_at":"2026-01-11T17:33:35.604Z","updated_at":"2026-01-11T17:33:36.171Z","avatar_url":"https://github.com/teslanet-nl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mule CoAP Connector\n![Mule-Coap logo](icon/icon.svg)\n\nMule CoAP Connector is a [Mule](https://www.mulesoft.com/) extension that enables Mule 4 applications to implement IoT services and/or IoT clients that make use of the CoAP protocol. \n\nThe CoAP protocol is specified by [RFC7252 - Constrained Application Protocol](http://tools.ietf.org/html/rfc7252) and other specifications (see below). \nThe connector uses Californium, a Java CoAP implementation. More information about Californium and CoAP can be found at:\n\n* [http://www.eclipse.org/californium/](http://www.eclipse.org/californium/)\n* [http://coap.technology/](http://coap.technology/).\n\nThe complete Mule CoAP Connector documentation can be found at [Teslanet.nl](http://www.teslanet.nl)\n\n## Supported versions\n* Mule 4.3+\n* Java 1.8, 11, 17\n\n## The CoAP protocol\nThe CoAP protocol is an Internet Standard published by [IETF](https://www.ietf.org/) in:\n\n* [IETF rfc 6690](https://www.rfc-editor.org/rfc/rfc6690)\n* [IETF rfc 7252](https://www.rfc-editor.org/rfc/rfc7252)\n* [IETF rfc 7641](https://www.rfc-editor.org/rfc/rfc7641)\n* [IETF rfc 7959](https://www.rfc-editor.org/rfc/rfc7959)\n* [IETF rfc 7967](https://www.rfc-editor.org/rfc/rfc7967)\n* [IETF rfc 8132](https://www.rfc-editor.org/rfc/rfc8132)\n\nand other.\n\n## Uses\n\n* [Californium](https://www.eclipse.org/californium/) 3.14.0\n\n## Installation\n\nTo use Mule CoAP Connector in your Mule 4 application, \nadd following dependency to your `pom.xml`:\n\n```xml\n  \n    \u003cdependency\u003e\n        \u003cgroupId\u003enl.teslanet.mule.connectors\u003c/groupId\u003e\n        \u003cartifactId\u003emule-coap-connector\u003c/artifactId\u003e\n        \u003cversion\u003e3.4.0\u003c/version\u003e\n        \u003cclassifier\u003emule-plugin\u003c/classifier\u003e\n    \u003c/dependency\u003e\n  \n```\n\nAfter updating dependencies in Anypoint Studio, all CoAP tools (message-sources and message-processors) will be shown in the Anypoint Studio panel - _Mule Palette_.\n\n## Reporting Issues\n\nYou can report issues and feature requests at [github](https://github.com/teslanet-nl/mule-coap-connector/issues).\n\n## Contact\n\nQuestions or remarks? Create an issue on [github](https://github.com/teslanet-nl/mule-coap-connector/issues).\n\n## Contributing\n\nUse issues or pull-requests on your fork.\n\n## Quick start\n\nThe CoAP Connector has numerous configuration options to realize the CoAP communication that is needed in your \nspecific use case. Sensible default CoAP parameters make it easy to get CoAP clients and servers up and running \nwith minimal effort. Below some explanation how to get started in AnypointStudio, after you have installed \nthe maven dependency to the _pom.xml_ of your mule application.\n\n### CoAP client requests\n\nCoAP requests such as _GET_ and _PUT_, can be added to your application by dragging the CoAP Request message-processor \nfrom the AnypointStudios Mule Palette into the application flows, or by editing the application xml configuration directly.\n\n\nOn this request set the host, port and path of the CoAP resource that the request should operate on.\n Optionally query parameters can be added. The different CoAP options to add to the request are configured on the Options Tab. \n\n\n![Image](src/site/images/put-example.png \"put request\")\n\nXml configuration:\n\n\n```\n\n    \u003ccoap:request  \n        doc:name=\"PUT eclipseprojects test\" \n        type=\"CONFIRMABLE\"\n        requestCode=\"PUT\" \n        host=\"californium.eclipseprojects.io\"\n        port=\"5683\" \n        path=\"/test\"\n        config-ref=\"CoAP_Client\" /\u003e\n\n```\n\n\n\n### CoAP Client Configuration\n\n\nThe Client Config element is referenced by Requests and other CoAP Message Processors and holds\nthe default configuration to use. Also it defines the CoAP endpoint to use. \n\nMultiple client configurations can be created to define different defaults to use on the different requests. \nWhen defining multiple clients, remember to define a separate CoAP Endpoint that is referenced by \nthese client configurations, because the resources overhead resides in the endpoint. Client configurations that reference \nan endpoint configured separately are light-weight.\n\nBy default the CoAP endpoint binds to a free random - so called - ephemeral port.\n\n\n![Image](src/site/images/client-example.png \"client request\")\n\n\nXml configuration:\n\n\n```\n\n    \u003ccoap:client-config\n        name=\"CoAP_Client_eclipseprojects\"\n        host=\"californium.eclipseprojects.io\" \n        port=\"5683\"/\u003e\n\n```\n\n### CoAP Server Configuration\n\n\nThe Server Config element configures a CoAP server. The server defines resources and \nmakes these available to clients. Which CoAP request-types are allowed is set \non the resources, as well as the Discovery Information. The Discovery Information can be queried \nby clients using the _./well-known/core_ resource. \nBy nesting Resources the resource tree structure of the CoAP Server is formed, on which CoAP requests can be issued \nby clients.\n\n![Image](src/site/images/server-example.png \"server\")\n\nWithout explicit endpoint configuration the server listens on a default UDP endpoint, that binds to port 5683.\n\nAlternatively a non-default port number \nand many other CoAP parameters can be set on an explicitly defined endpoint.\nWhen an endpoint is given, remember to at least set the port number, otherwise a \nrandom port is chosen - which is not what is normally wanted for a server endpoint.\n\n\n![Image](src/site/images/server-endpoint-example.png \"server with endpoint\")\n\n\nXml configuration:\n\n\n```\n\n    \u003ccoap:server-config name=\"CoAP_Server\" doc:name=\"CoAP Server\" \u003e\n        \u003ccoap:endpoint \u003e\n            \u003ccoap:udp-endpoint \u003e\n                \u003ccoap:socket-params bindToPort=\"5683\" /\u003e\n            \u003c/coap:udp-endpoint\u003e\n        \u003c/coap:endpoint\u003e\n        \u003ccoap:resources \u003e\n            \u003ccoap:resource \n                resourceName=\"my_first_resource\" \n                get=\"true\" \n                put=\"true\"\u003e\n                \u003ccoap:core-info-config title=\"The first resource of this server.\" ct=\"0\" /\u003e\n            \u003c/coap:resource\u003e\n            \u003ccoap:resource \n                resourceName=\"my_second_resource\" \n                get=\"true\" \n                put=\"true\"\u003e\n                \u003ccoap:core-info-config title=\"The second resource of this server.\" ct=\"0\" /\u003e\n            \u003c/coap:resource\u003e\n        \u003c/coap:resources\u003e\n    \u003c/coap:server-config\u003e\n\n```\n\n\n### CoAP Listeners\n\nThe server listens on the on the endpoint for client requests. Listeners are configured as \nmessage sources of Mule flows. The Listeners will hand over incoming requests to the flow.\n\nA listener defines which requests on the server are delivered to the Mule flow, by the setting the resource-path \non the path-pattern parameter. Requests on resources that comply to this pattern are delivered to the flow. \nMultiple resources can be configures on the path-pattern, using the wildcard symbol \"\\*\".\nA listener with the path-pattern \"/\\*\" will deliver requests on all resources. \n\nAdditionally, requests can be selected based on the CoAP request-types that are configured on the Listener.\n\n\nWhen the Listener delivers a message to the flow, the CoAP payload, CoAP options and other context of the CoAP request\nis made available to the flow as Mule message containing payload and attributes.\n\nOn the Response Tab of the listener can be explicitly configured which CoAP response is to return. \nBy default, the payload and mime-type of the resulting Mule message of the flow, is used as CoAP response. \nWhen not set on the Listener an appropriate CoAP Response code is chosen for the CoAP request at hand. \nFor instance, a _CONTENT_ response is returned by default on a _GET_ request,\nand _CHANGED_ is used on _PUT_ and _POST_ requests. \n\n\n![Image](src/site/images/listener-example.png \"listener\")\n\n\nXml configuration:\n\n\n```\n\n    \u003ccoap:listener doc:name=\"listen to PUT requests on my first resource\" \n        config-ref=\"CoAP_Server\" \n        pathPattern=\"/my_first_resource\" \n        put=\"true\"\u003e\n        \u003ccoap:response \n            responseCode=\"CHANGED\" \n            responsePayload=\"#[null]\"/\u003e\n    \u003c/coap:listener\u003e\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteslanet-nl%2Fmule-coap-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteslanet-nl%2Fmule-coap-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteslanet-nl%2Fmule-coap-connector/lists"}