{"id":15146989,"url":"https://github.com/thefirstlineofcode/lithosphere","last_synced_at":"2025-10-24T01:31:17.461Z","repository":{"id":169018145,"uuid":"630348531","full_name":"TheFirstLineOfCode/Lithosphere","owner":"TheFirstLineOfCode","description":"Lithosphere IoT Development Platform","archived":false,"fork":false,"pushed_at":"2023-11-19T11:28:03.000Z","size":735,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T22:31:44.997Z","etag":null,"topics":["arduino","c","cplusplus","iot","java","lora","plugin-architecture","raspberry-pi","webrtc","xmpp","xmpp-library","xmpp-server"],"latest_commit_sha":null,"homepage":"","language":null,"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/TheFirstLineOfCode.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-20T07:34:59.000Z","updated_at":"2024-07-12T02:37:28.000Z","dependencies_parsed_at":"2023-11-07T01:06:19.744Z","dependency_job_id":"a706990a-bb1a-4136-bcd5-9e7c75e2d80d","html_url":"https://github.com/TheFirstLineOfCode/Lithosphere","commit_stats":{"total_commits":54,"total_committers":4,"mean_commits":13.5,"dds":0.4444444444444444,"last_synced_commit":"62a6ce7a33bdc5bc593afe3cfc4254404dfa6777"},"previous_names":["thefirstlineofcode/lithosphere"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFirstLineOfCode%2FLithosphere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFirstLineOfCode%2FLithosphere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFirstLineOfCode%2FLithosphere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFirstLineOfCode%2FLithosphere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheFirstLineOfCode","download_url":"https://codeload.github.com/TheFirstLineOfCode/Lithosphere/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237901379,"owners_count":19384384,"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":["arduino","c","cplusplus","iot","java","lora","plugin-architecture","raspberry-pi","webrtc","xmpp","xmpp-library","xmpp-server"],"created_at":"2024-09-26T12:21:18.830Z","updated_at":"2025-10-24T01:31:16.823Z","avatar_url":"https://github.com/TheFirstLineOfCode.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcom to Lithosphere\n\n## Lithosphere是什么？\nLithosphere是基于XMPP协议的IoT开发平台。\u003cbr\u003e\u003cbr\u003e\nLithosphere平台的目标，是提供全栈的IoT解决方案，开发者可以基于Lithosphere平台技术，开发复杂、灵活的IoT应用。\u003cbr\u003e\u003cbr\u003e\nLithosphere 作为IoT应用的解决方案，主要有以下的特征：\n* **全栈IoT开发框架**\u003cbr\u003e \nLithosphere提供全栈的IoT解决方案，包括IoT服务器，LoT局域网网关，到MCU硬件板通讯库，以及移动端开发框架。\u003cbr\u003e\u003cbr\u003e\nLithosphere采用统一的架构技术和通讯协议，开发者不再需要整合多种开发技术来开发IoT应用，这使得IoT应用的开发变得简单。\u003cbr\u003e\u003cbr\u003e\n* **插件架构（Plugin-Architecture）**\u003cbr\u003e\nLithosphere的核心子项目Chalk，Granite，Sand等，都基于插件架构构建。采用Lithosphere开发的IoT应用一般会具备以下这些特征：\n  * 高度模块化\n  * 扩展性良好\n  * 部署灵活\n  \u003cbr\u003e\u003cbr\u003e\n* **高效的通讯协议**\u003cbr\u003e\n标准XMPP协议使用XML来表达协议消息包，这使得它具备灵活和扩展性强特点的同时，也备受通讯协议冗余和低效的指责。\u003cbr\u003e\u003cbr\u003e\n一家公司在解决XMPP效率问题上做出了很好的示范。WhatsApp公司使用二进制的XMPP变种，为全球超过20亿用户提供IM服务。\u003cbr\u003e\u003cbr\u003e\n是的，Lithosphere平台也使用二进制XMPP来解决通讯协议效率问题。\n\u003cbr\u003e\u003cbr\u003e\n* **基于IoT概念组件编程**\u003cbr\u003e\nLithosphere提供了一组屏蔽了底层通讯细节，封装良好的IoT组件来提高开发效率。\u003cbr\u003e\u003cbr\u003e\n我们可以使用Actuator，Sensor，Concentrator，Gateway，Webcam等IoT概念组件来做开发，而不需要去研究XMPP、LoRa、WebRTC等具体技术的底层实现细节。\n\u003cbr\u003e\u003cbr\u003e\n## Lithosphere由以下子项目构成：\n### [Granite](https://github.com/TheFirstLineOfCode/granite)\u003cbr\u003e\nGranite是一个基于Java开发的XMMP Server。Granite XMPP Server具有以下特征：\n* 标准兼容\n* 高度模块化\n* 高可用性和高扩展性\n* 易于扩展和集成  \nGranite基于微内核架构（插件架构），这使得它非常灵活和易于扩展。\n\u003cbr\u003e\u003cbr\u003e\n### [Chalk](https://github.com/TheFirstLineOfCode/chalk)\u003cbr\u003e\nChalk是Java XMPP客户端通讯库，可以用于开发Java桌面和Android的XMPP客户端。Chalk基于插件架构设计，这使得它易于使用及易于扩展。\n\u003cbr\u003e\u003cbr\u003e\n### [Basalt](https://github.com/TheFirstLineOfCode/basalt)\u003cbr\u003e\nBasalt是XMPP的Java解析库。Basalt基于OXM（Protocol Object-XMPP Document Mapping）概念，提供XMPP协议文档和协议对象（Protocol Object）之间的解析转换功能。\n\u003cbr\u003e\u003cbr\u003e\n### [Sand](https://github.com/TheFirstLineOfCode/sand)\u003cbr\u003e\nSand项目提供一组封装良好的IoT插件。这些IoT插件基于Chalk技术（客户端插件）和Granite技术（服务器端插件）开发。包括：\n* Actuator\u003cbr\u003e\n执行器组件。关于执行器，可以参考概念里的[Actuator](./Concepts.md#Actuator)章节内容。\n\u003cbr\u003e\u003cbr\u003e\n* Sensor\u003cbr\u003e\n传感器组件。关于传感器，可以参考概念里的[Sensor](./Concepts.md#Sensor)章节内容。\n\u003cbr\u003e\u003cbr\u003e\n* Edge Thing\u003cbr\u003e\n边缘设备组件。Lithosphere里的边缘设备组件（Edge Thing）连接到Granite XMPP Server上后，会自动申请注册。一般来说，Gateway，Concentrator等组件，都是Edge Thing。\n\u003cbr\u003e\u003cbr\u003e\n* LoRa Gateway\u003cbr\u003e\n封装LoRa协议的网关组件。\n\u003cbr\u003e\u003cbr\u003e\n* Remoting\u003cbr\u003e\n远程控制插件。用于在移动App或桌面客户端里做IoT设备的远程控制。\n\u003cbr\u003e\u003cbr\u003e\n* Operator\u003cbr\u003e\n运维人员使用的运维功能插件。例如，在运维App里，用于实现授权设备入网，修改客户权限等功能。\n\u003cbr\u003e\u003cbr\u003e\n* Webcam\u003cbr\u003e\n基于WebRTC技术的实时监控摄像头组件。\n\u003cbr\u003e\u003cbr\u003e\n### [Mud](https://github.com/TheFirstLineOfCode/mud)\u003cbr\u003e\nMCU板通讯库。支持BXMPP，和TUXP协议族Notification、\nExecution、Report等协议。使用Mud库，可以为MCU板添加IoT通讯能力。\n\u003cbr\u003e\u003cbr\u003e\n## 快速入门\n如果你并不熟悉XMPP，插件架构，IoT，那你可以通过阅读\u003cbr\u003e\n[**概念**](./Concepts.md)\u003cbr\u003e\n来熟悉相关概念 。\u003cbr\u003e\u003cbr\u003e\n如果你是第一次接触使用Lithosphere，建议跟随\u003cbr\u003e\n[**Hello Lithosphere教程**](./Hello_Lithosphere_Tutorials.md)\u003cbr\u003e\n来学习和了解Lithosphere平台的使用。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefirstlineofcode%2Flithosphere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthefirstlineofcode%2Flithosphere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefirstlineofcode%2Flithosphere/lists"}