零度物联网云平台是一个基于 GO 语言实现的物联网云平台,旨在为开发者提供一个高效、易用的物联网解决方案。该平台支持多种设备接入,提供数据存储、分析和可视化等功能,帮助用户快速构建物联网应用。所使用的技术栈如下。
Go 语言:作为主要开发语言,具有高性能和并发处理能力。
Gin:一个高性能的 HTTP Web 框架,用于构建 RESTful API。
Gorm:一个强大的 ORM 库,用于与数据库进行交互。
Go-Migrate:一个数据库迁移工具,用于管理数据库版本和结构变更。
Viper:一个用于管理应用程序配置的库,支持多种配置格式,零度物联网云平台使用 YAML 格式。
jwt-go:一个用于生成和验证 JSON Web Token 的库,支持用户认证和授权。
Casbin:一个强大且高效的开源权限访问控制库,支持 RBAC、ABAC 和 ACL 等多种访问控制模型。
Casdoor:身份访问管理单点登录平台,具有支持 OAuth 2.0、OIDC、SAML、CAS、LDAP、和 Kerberos 等多种身份验证协议的功能。
Swag: 将 Go 注释转换为 Swagger 文档,支持自动生成 API 文档。
Gin-Swagger:中间件自动生成 RESTful API 文档,使用 Swagger 2.0。
OpenTelemetry-Go:一个用于分布式追踪和监控的库,支持多种后端,如 Jaeger、Zipkin 和 Prometheus。
PostgreSQL:一个开源的关系型数据库,支持复杂查询和事务处理.
TimescaleDB:一个基于 PostgreSQL 的时序数据库,专门用于处理时间序列数据,适合物联网数据存储和分析。
Redis:一个开源的内存数据结构存储系统,支持多种数据结构,如字符串、哈希、列表、集合等,适合缓存和消息队列。
Kafka:一个分布式流处理平台,用于构建实时数据管道和流处理应用程序,支持高吞吐量和低延迟的数据传输。
Dapr:一个开源的微服务运行时,用于简化分布式应用程序的开发,提供了服务调用、状态管理、发布/订阅等功能。
React:一个用于构建用户界面的 JavaScript 库,具有组件化和虚拟 DOM 的特点。
Next.js:一个基于 React 的服务端渲染框架,支持静态网站生成和 API 路由。
Material-UI:一个流行的 React UI 组件库,提供了一套现代化的设计规范和组件。
TypeScript:JavaScript 的超集,提供静态类型检查和更好的开发体验。
Tailwind CSS:一个实用优先的 CSS 框架,提供了一套灵活的样式类,方便快速构建响应式布局。
CASL React:一个用于权限前端控制的库,支持基于角色和属性的访问控制。
Docker:一个开源的容器化平台,用于打包、分发和运行应用程序。
Kubernetes:一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
Helm:一个 Kubernetes 包管理工具,用于简化应用程序的部署和管理。
Prometheus:一个开源的监控和报警系统,用于收集和存储时间序列数据,支持多种数据源和可视化工具。
Grafana:一个开源的可视化工具,用于展示和分析时间序列数据,支持多种数据源和插件。
Jaeger:一个开源的分布式追踪系统,用于监控和分析微服务架构中的请求流。
Loki:一个开源的日志聚合工具,用于收集、存储和分析日志数据,支持多种数据源和可视化工具。