{"id":20048875,"url":"https://github.com/sintef/sensapp","last_synced_at":"2025-05-05T10:31:42.479Z","repository":{"id":1715910,"uuid":"2445856","full_name":"SINTEF/sensapp","owner":"SINTEF","description":"SensApp, time-series with ease.","archived":false,"fork":false,"pushed_at":"2025-01-28T20:05:33.000Z","size":9509,"stargazers_count":20,"open_issues_count":9,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-08T21:41:23.944Z","etag":null,"topics":["amqp","data-engineering","gateway","influxdb","iot-platform","mqtt","opcua","opcua-gateway","pipelines","prometheus-remote-write","rust","sensors-data-collection","time-series"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SINTEF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2011-09-23T18:24:12.000Z","updated_at":"2025-02-01T18:53:27.000Z","dependencies_parsed_at":"2024-04-08T18:46:05.553Z","dependency_job_id":"70dd13a4-1a76-40c2-b61a-cd68ceb98a64","html_url":"https://github.com/SINTEF/sensapp","commit_stats":null,"previous_names":["sintef/sensapp","sintef-9012/sensapp"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Fsensapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Fsensapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Fsensapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Fsensapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SINTEF","download_url":"https://codeload.github.com/SINTEF/sensapp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252480515,"owners_count":21754785,"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":["amqp","data-engineering","gateway","influxdb","iot-platform","mqtt","opcua","opcua-gateway","pipelines","prometheus-remote-write","rust","sensors-data-collection","time-series"],"created_at":"2024-11-13T11:47:04.696Z","updated_at":"2025-05-05T10:31:41.473Z","avatar_url":"https://github.com/SINTEF.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![SensApp](./docs/sensapp_logo.png)\n\nSensApp is an open-source sensor data platform developed by SINTEF for research purposes. It manages time-series data from a multitude of sensors.\n\nIt enables the handling of small time series data of the edge efficiently to large-scale big data digital twins.\n\n## Features\n\n- **Flexible Time Series DataBase Storage**: Supports various time-series databases such as SQLite, PostgreSQL (with optional TimeScaleDB plugin), DuckDB, and ClickHouse, with the potential to extend support to other databases in the future.\n- **Data Lake Storage**: Supports Parquet files over S3 compatible object stores for long-term time-series data storage.\n- **Multiple Data Ingestion Protocols**: Easy data ingestion via HTTP REST API, MQTT, AMQP, KAFKA, OPCUA, and NATS.\n- **Compatibility with Existing Pipelines**: Offers Prometheus Remote Write and InfluxDB line format support for seamless integration into existing sensor data pipelines.\n- **Data formats**: Supports various data formats like JSON, CSV, Parquet, or SenML.\n\n## Architecture\n\nSensApp should be stateless and scale from the edge to big data. The message queue software and the database software solve the complex problems. SensApp is a simple adapter between.\n\n* SensApp supports simple deployments without requiring a message queue and only an embedded SQLite database.\n* SensApp supports medium deployments with a single message broker and a PostgreSQL database.\n* For larger deployments, SensApp advises a distributed message queue, an automatic load balancer for the SensApp instances, and a ClickHouse cluster.\n\nCheck the [ARCHITECTURE.md](docs/ARCHITECTURE.md) file for more details.\n\n## Built With Rust™️\n\nSensApp is developed using Rust, a language known for its performance, memory safety, and annoying borrow checker. SensApp used to be written in Scala, but the new author prefers Rust.\n\nNot only the language, it's also the extensive high quality open-source ecosystem that makes Rust a great choice for SensApp:\n\n* [Tokio](https://tokio.rs/) asynchronous runtime\n* [Serde](https://serde.rs/) serialization framework\n* [Axum](https://github.com/tokio-rs/axum) web framework\n* [SQLx](https://github.com/launchbadge/sqlx) database driver\n* [Polars](https://pola.rs) data frame library\n* [nom](https://github.com/rust-bakery/nom) parser combinator library\n* *and many more…*\n\n## Contributing\n\nWe appreciate your interest in contributing to SensApp! Contributing is as simple as submitting an issue or a merge/pull request. Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file for more details.\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\nThe SensApp software is provided \"as is,\" with no warranties, and the creators of SensApp are not liable for any damages that may arise from its use.\n\n## You may not want to use it in production (yet)\n\nSensApp is currently under development. It is not yet ready for production.\n\n## Acknowledgments\n\nWe thank [the historical authors of SensApp](https://github.com/SINTEF/sensapp/graphs/contributors) who created the first version a decade ago.\n\nSensApp is developed by\n[SINTEF](https://www.sintef.no) ([Digital division](https://www.sintef.no/en/digital/), [Sustainable Communication Technologies department](https://www.sintef.no/en/digital/departments-new/department-of-sustainable-communication-technologies/), [Smart Data research group](https://www.sintef.no/en/expertise/digital/sustainable-communication-technologies/smart-data/)).\n\nIt is made possible thanks to the research and development of many research projects, founded notably by the [European Commission](https://ec.europa.eu/programmes/horizon2020/en) and the [Norwegian Research Council](https://www.forskningsradet.no/en/).\n\nWe also thank the open-source community for all the tools they create and maintain that allow SensApp to exist.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintef%2Fsensapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsintef%2Fsensapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintef%2Fsensapp/lists"}