{"id":19343997,"url":"https://github.com/petereb/coap-shepherd","last_synced_at":"2025-04-23T04:36:12.902Z","repository":{"id":143959319,"uuid":"49176850","full_name":"PeterEB/coap-shepherd","owner":"PeterEB","description":"Network server and manager for lightweight M2M (LWM2M).","archived":false,"fork":false,"pushed_at":"2019-05-13T06:48:53.000Z","size":764,"stargazers_count":43,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-16T12:23:37.989Z","etag":null,"topics":["coap","lwm2m","nodejs","smartobject"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/PeterEB.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":"2016-01-07T02:54:02.000Z","updated_at":"2022-12-11T15:23:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"f35647ab-6921-438a-9a82-0789e6d79d9c","html_url":"https://github.com/PeterEB/coap-shepherd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterEB%2Fcoap-shepherd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterEB%2Fcoap-shepherd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterEB%2Fcoap-shepherd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterEB%2Fcoap-shepherd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeterEB","download_url":"https://codeload.github.com/PeterEB/coap-shepherd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250372394,"owners_count":21419718,"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":["coap","lwm2m","nodejs","smartobject"],"created_at":"2024-11-10T03:42:08.084Z","updated_at":"2025-04-23T04:36:12.640Z","avatar_url":"https://github.com/PeterEB.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coap-shepherd\nNetwork server and manager for lightweight M2M (LWM2M).\n\n[![NPM](https://nodei.co/npm/coap-shepherd.png?downloads=true)](https://nodei.co/npm/coap-shepherd/)  \n\n[![Build Status](https://travis-ci.org/PeterEB/coap-shepherd.svg?branch=develop)](https://travis-ci.org/PeterEB/coap-shepherd)\n[![npm](https://img.shields.io/npm/v/coap-shepherd.svg?maxAge=2592000)](https://www.npmjs.com/package/coap-shepherd)\n[![npm](https://img.shields.io/npm/l/coap-shepherd.svg?maxAge=2592000)](https://www.npmjs.com/package/coap-shepherd)\n\n\u003cbr /\u003e\n\n## Documentation  \n\nPlease visit the [Wiki](https://github.com/PeterEB/coap-shepherd/wiki).\n\n\u003cbr /\u003e\n\n## Overview\n\n[**OMA Lightweight M2M**](http://technical.openmobilealliance.org/Technical/technical-information/release-program/current-releases/oma-lightweightm2m-v1-0) (LWM2M) is a resource constrained device management protocol relies on [**CoAP**](https://tools.ietf.org/html/rfc7252). And **CoAP** is an application layer protocol that allows devices to communicate with each other RESTfully over the Internet.  \n\n**coap-shepherd**, **coap-node** and **lwm2m-bs-server** modules aim to provide a simple way to build and manage a **LWM2M** network.\n* Server-side library: **coap-shepherd** (this module)\n* Client-side library: [**coap-node**](https://github.com/PeterEB/coap-node)\n* Bootstrap server library: [**lwm2m-bs-server**](https://github.com/PeterEB/lwm2m-bs-server)\n* [**A simple demo webapp**](https://github.com/PeterEB/quick-demo)\n\n![coap-shepherd net](https://raw.githubusercontent.com/PeterEB/documents/master/coap-shepherd/media/lwm2m_net.png) \n\n### LWM2M Server: coap-shepherd\n\n* It is a **LWM2M** Server application framework running on node.js.  \n* It follows most parts of **LWM2M** specification to meet the requirements of a machine network and devices management.  \n* It works well with [**Leshan**](https://github.com/eclipse/leshan) and [**Wakaama**](https://github.com/eclipse/wakaama).\n* Supports functionalities, such as permission of device joining, reading resources, writing resources, observing resources, and executing a procedure on a remote device.  \n* It follows [**IPSO**](http://www.ipso-alliance.org/smart-object-guidelines/) data model to let you allocate and query resources on remote devices with semantic URIs in a comprehensive manner. \n\n\u003cbr /\u003e\n\n## Installation\n\n\u003e $ npm install coap-shepherd --save\n\n\u003cbr /\u003e\n\n## Usage\n\nThis example shows how to start a server and allow devices to join the network within 180 seconds after the server is ready:\n\n```js\nvar cserver = require('coap-shepherd');\n\ncserver.on('ready', function () {\n    console.log('Server is ready.');\n\n    // when server is ready, allow devices to join the network within 180 secs\n    cserver.permitJoin(180);  \n});\n\ncserver.start(function (err) {  // start the server\n    if (err)\n        console.log(err);\n});\n\n// That's all to start a LWM2M server.\n// Now cserver is going to automatically tackle most of the network managing things.\n```\n\nOr you can pass a config object as an argument to the CoapShepherd constructor and instance the CoapShepherd by yourself:\n\n```js\nvar CoapShepherd = require('coap-shepherd').constructor;\nvar cshepherd = new CoapShepherd({\n    connectionType: 'udp6',\n    port: 5500,\n    defaultDbPath: __dirname + '/../lib/database/myShepherd.db'\n});\n```\n\n\u003cbr /\u003e\n\n## License\n\nLicensed under [MIT](https://github.com/PeterEB/coap-shepherd/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetereb%2Fcoap-shepherd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetereb%2Fcoap-shepherd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetereb%2Fcoap-shepherd/lists"}