{"id":13459170,"url":"https://github.com/yodaos-project/ShadowNode","last_synced_at":"2025-03-24T16:31:33.020Z","repository":{"id":54967023,"uuid":"114971968","full_name":"yodaos-project/ShadowNode","owner":"yodaos-project","description":"Use Node.js in your end devices(QQ: 796448809)","archived":false,"fork":false,"pushed_at":"2023-12-15T13:30:59.000Z","size":10387,"stargazers_count":589,"open_issues_count":72,"forks_count":46,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-05-14T00:26:59.769Z","etag":null,"topics":["embeddable","iot","javascript","node","nodejs"],"latest_commit_sha":null,"homepage":"https://yodaos-project.github.io/ShadowNode/","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/yodaos-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing/Assigned-People.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-12-21T06:40:28.000Z","updated_at":"2024-01-04T16:19:31.000Z","dependencies_parsed_at":"2023-12-19T11:05:08.848Z","dependency_job_id":"76d103a4-4ae4-49f7-9491-28bde5dc9284","html_url":"https://github.com/yodaos-project/ShadowNode","commit_stats":{"total_commits":1459,"total_committers":76,"mean_commits":19.19736842105263,"dds":0.7902673063742289,"last_synced_commit":"b03929d5500fd0823fdc3bc37c9b82ba88cc3f6d"},"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yodaos-project%2FShadowNode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yodaos-project%2FShadowNode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yodaos-project%2FShadowNode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yodaos-project%2FShadowNode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yodaos-project","download_url":"https://codeload.github.com/yodaos-project/ShadowNode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245308618,"owners_count":20594278,"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":["embeddable","iot","javascript","node","nodejs"],"created_at":"2024-07-31T09:01:08.054Z","updated_at":"2025-03-24T16:31:28.010Z","avatar_url":"https://github.com/yodaos-project.png","language":"JavaScript","readme":"# ShadowNode\n\nThe Node.js runtime in shadow, enables N-API and vast Node.js packages on edge devices.\n\n[![Build Status](https://travis-ci.org/yodaos-project/ShadowNode.svg?branch=master)](https://travis-ci.org/yodaos-project/ShadowNode)\n[![License](https://img.shields.io/badge/licence-Apache%202.0-brightgreen.svg?style=flat)](LICENSE)\n\nThe project is another runtime for your [Node.js][] packages, while ShadowNode is designed to be used on memory limited devices. It's inspired and forked from the awesome project [Samsung/iotjs][].\n\n## Quick Start\n\nTo get started with ShadowNode, you could download prebuilt binaries on [Release Page](https://github.com/yodaos-project/ShadowNode/releases) for following targets:\n\n- Linux x64\n- macOS x64\n\n\u003e Memory usage and binary footprint are measured at [here](https://samsung.github.io/js-remote-test) with real target daily.\n\n## Documentation\n\n- [Getting Started](docs/Getting-Started.md)\n- [API Reference](docs/api/README.md)\n\n### Build\n\n##### Fetch source code\n```sh\n$ git clone https://github.com/yodaos-project/ShadowNode.git\n$ cd ShadowNode\n```\n\n##### Build ShadowNode\n```sh\n$ npm run build\n```\n\n##### Get available build options\n```sh\n$ tools/build.py --help\n```\n\n##### Install\n```sh\n$ tools/build.py --install\n```\n\n##### Run tests\n```sh\n$ npm test\n```\n\nFor additional information see [Getting Started](docs/Getting-Started.md).\n\n## Compared with Node.js\n\nShadowNode is not designed to be ran identical code that ran on Node.js.\nWhile edge environments are experiencing limited resources on runtime, the packages to be ran on ShadowNode shall be rewritten in a resource compact way. However for the very initial thought of sharing the Node.js vast module ecosystem, we would like make ShadowNode compatible with Node.js with our efforts.\n\n\n- [Assert](docs/api/Assert.md)\n- [Buffer](docs/api/Buffer.md)\n- [C/C++ Addon API](docs/api/N-API.md)\n- [Child Process](docs/api/Child-Process.md)\n- [Crypto](docs/api/Crypto.md)\n- [DNS](docs/api/DNS.md)\n- [Events](docs/api/Events.md)\n- [File System](docs/api/File-System.md)\n- [HTTP](docs/api/HTTP.md)\n- [Module](docs/api/Module.md)\n- [Net](docs/api/Net.md)\n- [OS](docs/api/OS.md)\n- [Process](docs/api/Process.md)\n- [Stream](docs/api/Stream.md)\n- [Timers](docs/api/Timers.md)\n- [TLS](docs/api/TLS.md)\n- [UDP/Datagram](docs/api/DGRAM.md)\n- [Zlib](docs/api/Zlib.md)\n\nSince the `MQTT` protocol is commonly used for communication between IoT devices, ShadowNode supports\nthe protocol natively, and keeps the API consistent with the popular library [MQTT.js][]. See\n[MQTT API](docs/api/MQTT.md) for details.\n\nThe `WebSocket` is a popular protocol in IoT environment as well, and also supported by [ShadowNode][]\nnatively. See [WebSocket API](docs/api/WebSocket.md).\n\nFor hardware geek, this project benefits from the upstream [IoT.js][], which has supported the\nfollowing hardware interfaces, you are able to port [ShadowNode][] to your platforms and\nstart hacking with JavaScript:\n\n- [ADC](docs/api/ADC.md)\n- [BLE](docs/api/BLE.md)\n- [GPIO](docs/api/GPIO.md)\n- [I2C](docs/api/I2C.md)\n- [PWM](docs/api/PWM.md)\n- [SPI](docs/api/SPI.md)\n- [UART](docs/api/UART.md)\n\n## License\n\n[ShadowNode][] is Open Source software under the [Apache 2.0 license][].\nComplete license and copyright information can be found within the code.\n\n[ShadowNode]: https://github.com/yodaos-project/ShadowNode\n[Node.js]: https://github.com/nodejs/node\n[Iot.js]: https://github.com/Samsung/iotjs\n[Samsung/iotjs]: https://github.com/Samsung/iotjs\n[MQTT.js]: https://github.com/mqttjs/MQTT.js\n[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyodaos-project%2FShadowNode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyodaos-project%2FShadowNode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyodaos-project%2FShadowNode/lists"}