{"id":19673709,"url":"https://github.com/infinimesh/infinimesh","last_synced_at":"2025-09-06T02:47:44.123Z","repository":{"id":33516276,"uuid":"154967162","full_name":"infinimesh/infinimesh","owner":"infinimesh","description":"Home of infinimesh, the first portable cloud-native IoT platform","archived":false,"fork":false,"pushed_at":"2024-08-26T09:25:25.000Z","size":138597,"stargazers_count":95,"open_issues_count":56,"forks_count":23,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-20T19:09:49.650Z","etag":null,"topics":["cloud-native","go","golang","industry-40","infinimesh","iot","iot-cloud","iot-platform","kubernetes","mqtt"],"latest_commit_sha":null,"homepage":"https://infinitedevices.io","language":"Go","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/infinimesh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-27T13:24:00.000Z","updated_at":"2025-01-03T21:47:33.000Z","dependencies_parsed_at":"2023-01-16T22:45:34.462Z","dependency_job_id":"4d711278-51a9-418a-bdca-9a280c1abfca","html_url":"https://github.com/infinimesh/infinimesh","commit_stats":null,"previous_names":["infinitedevices/infinimesh"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinimesh%2Finfinimesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinimesh%2Finfinimesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinimesh%2Finfinimesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinimesh%2Finfinimesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infinimesh","download_url":"https://codeload.github.com/infinimesh/infinimesh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236045309,"owners_count":19086076,"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":["cloud-native","go","golang","industry-40","infinimesh","iot","iot-cloud","iot-platform","kubernetes","mqtt"],"created_at":"2024-11-11T17:16:05.355Z","updated_at":"2025-01-28T16:13:48.148Z","avatar_url":"https://github.com/infinimesh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# infinimesh IoT Platform\n\ninfinimesh is a opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with minimal TCO. It features a unique Graph-based authorization system, allowing users \u0026 engineers to create arbitrary hierarchical ontologies, with the possibility to scope permissions down to single sub-devices to specific users (e.g. suppliers). It exposes simple to consume RESTful \u0026 gRPC APIs with both high-level (e.g. device shadow) and low-level (sending messages) concepts. The infinimesh IoT platform is open source and fully kubernetes compliant. No vendor lock-in - **run it yourself on Kubernetes in your own datacenter, under your control with maximum data privacy.**\n\nOur API's (REST / gRPC / ConnectRPC) are considered as beta and may change in future. infinimesh has already available:  \n  \n- **MQTT support for version 3 and 5**\n- **State management (digital twin)**  \n- **Graph-based permission management (multi-dimensional permissons at data layer)**  \n- **TLS 1.2 / 1.3 support**  \n- **Device-to-Cloud and Cloud-to-Device messages**  \n- **Enhanced UI**  \n- **k8s and Docker environments**\n\n## Documentation  \n\nCheck out our:\n\n- [Wiki here](https://github.com/infinimesh/infinimesh/wiki).\n- [Swagger UI](https://infinimesh.github.io/infinimesh/) **soon to be deprecated**\n\n## Build status\n\n[![CI(Build Docker images)](https://github.com/infinimesh/infinimesh/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/infinimesh/infinimesh/actions/workflows/ci.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/infinimesh/infinimesh)](https://goreportcard.com/report/github.com/infinimesh/infinimesh)\n\n## Community\n\nYou can reach out to the community via Discord.\n\n![](http://invidget.switchblade.xyz/801798988163448832)\n\n## Client libraries\n\nThe recommended way to interact with infinimesh API is gRPC and ConnectRPC. Thus, we provide protobuf files at [`infinimesh/proto`](https://github.com/infinimesh/proto), using which you can generate a client library for your programming language of choice.\n\nAdditionally, we have pregenerated libraries:\n\n### Golang\n\nCan be added to your project via:\n\n```shell\ngo get github.com/infinimesh/proto@latest\n```\n\n### JS\n\nCan be obtained from npm via:\n\n```shell\nnpm install infinimesh-proto\n```\n\n### Dart / FLutter\n\nHas to be downloaded from [`infinimesh/proto`](https://github.com/infinimesh/proto), you can copy the whole [`build/dart`](https://github.com/infinimesh/proto/tree/master/build/dart) dir into your Flutter project\n\n## CLI\n\n### Usage\n\nStart with `inf help` and `inf help login` ;)\n\n### Homebrew\n\nSee [macOS](#macos).\n\n### Snap\n\nJust run\n\n```shell\nsnap install inf\n```\n\nand see usage [usage](#usage)\n\n### Linux\n\n#### `.deb` (Debian, Ubuntu, etc.)\n\n1. Go to [CLI Releases](https://github.com/infinimesh/inf/releases)\n2. Get `.deb` package for your CPU arch (`arm64` or `x86_64`)\n3. `dpkg -i path/to/.deb`\n\nIf you're using some other arch, let us know, we'll add it to the build. Meanwhile - try [building from source](#build-from-source)\n\nThen see usage [usage](#usage)\n\n#### `.rpm` (RedHat, CentOS, Fedora, etc.)\n\n1. Go to [CLI Releases](https://github.com/infinimesh/inf/releases)\n2. Get `.rpm` package for your CPU arch (`arm64` or `x86_64`)\n3. `yum localinstall path/to/.rpm` or `dnf install path/to/.rpm`\n\nIf you're using some other arch, let us know, we'll add it to the build. Meanwhile - try [building from source](#build-from-source)\n\nThen see usage [usage](#usage)\n\n#### AUR (Arch Linux, Manjaro, etc.)\n\nIf you have `yaourt` or `yay` package must be found automatically by label `inf-bin`\n\nOtherwise,\n\n1. `git clone https://aur.archlinux.org/packages/inf-bin`\n2. `cd inf-bin`\n3. `makepkg -i`\n\nThen see usage [usage](#usage)\n\n#### Others\n\nIf you're using other package manager or have none, you can download prebuilt binary in `.tar.gz` archive for `arm64` or `x86_64`, unpack it and put `inf` binary to `/usr/bin` or your `$PATH/bin`.\n\nIf you're using some other arch, let us know, we'll add it to the build. Meanwhile - try [building from source](#build-from-source)\n\nThen see usage [usage](#usage)\n\n### macOS\n\nIf you're using [**Homebrew**](https://brew.sh):\n\n```shell\nbrew tap infinimesh/inf\nbrew install inf\n```\n\nYou're good to go!\n\nThen see usage [usage](#usage)\n\nIf you don't have [**Homebrew**](https://brew.sh), consider using it ;), otherwise you can get prebuilt binary from [CLI Releases page](https://github.com/infinimesh/inf/releases) as an `.tar.gz` archive.\n\n```shell\n# if you have wget then\nwget https://github/infinimesh/inf/releases/#version/inf-version-darwin-arch.tar.gz\n# if you don't, just download it\ntar -xvzf #inf-version-darwin-arch.tar.gz\n# move binary to /usr/local/bin or alike\nmv #inf-version-darwin-arch/inf /usr/local/bin\n```\n\nYou're good to go!\n\nThen see usage [usage](#usage)\n\n### Windows\n\n1. Go to [CLI Releases](https://github.com/infinimesh/inf/releases)\n2. Get prebuilt binary from [CLI Releases page](https://github.com/infinimesh/inf/releases) as an `.zip` archive.\n3. Unpack it\n4. Put it somewhere in `$PATH`\n\nThen see usage [usage](#usage)\n\n### Build From Source\n\nSee [CLI repo](https://github.com/infinimesh/inf) for source and instructions.\n\n## Development\n\n### Local development installation\n\nWe have built an automated local development setup based on Docker.\n\n1. Add this entries to `/etc/hosts`:\n\n  ```hosts\n  127.0.0.1 api.infinimesh.local \n  127.0.0.1 console.infinimesh.local\n  127.0.0.1 traefik.infinimesh.local\n  127.0.0.1 rbmq.infinimesh.local\n  127.0.0.1 db.infinimesh.local\n  127.0.0.1 media.infinimesh.local\n  127.0.0.1 mqtt.infinimesh.local\n  ```\n\n2. Clone this repo via `git clone https://github.com/infinimesh/infinimesh.git` \n3. cd into the fresh cloned repo\n4. Run `docker compose up`\n\nSwagger API: https://infinimesh.github.io/infinimesh/\n\n### Generating proto files\n\nClone [proto repo](https://github.com/infinimesh/proto)\n\nNavigate to cloned repo directory and run:\n\n```shell\ndocker run -it \\\n  -v $(pwd):/go/src/github.com/infinimesh/proto \\\n  ghcr.io/infinimesh/proto/buf:latest\n```\n\nRight now we keep protos generated only for Go. If you need one of the other languages, add according module to `buf.gen.yaml`.\n\nPRs are as always welcome.\n\n### Mocks\n\ninfinimesh is using [mockery](https://vektra.github.io/mockery). To generate mocks it is recommended to use Docker image:\n\n```shell\ndocker pull vektra/mockery\ndocker run -v \"$PWD\":/src -w /src vektra/mockery --all\n```\n\nOtherwise just get the `mockery` binary and run it at the root of the project.\n\n### Local Development\n\nStart the local dev environment via `docker compose up -d`.\n\nLogin locally via CLI:\n\n```shell\ninf login api.infinimesh.local infinimesh infinimesh --insecure\n```\n\nAccess the Console at \u003chttp://console.infinimesh.local\u003e\n\n## License\n\nCopyright 2018 - 2024 the infinimesh committers, 2pk03, birdayz, slntopp and The Infinite AI Audio GmbH team\n\nLicensed under the Apache License, Version 2.0 (the \"Licenses\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the License at\n\n  [https://github.com/infinimesh/infinimesh/blob/master/LICENSE](https://github.com/infinimesh/infinimesh/blob/master/LICENSE)\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nThe authors of infinimesh are The Infinite AI Audio GmbH, [birdayz](https://github.com/birdayz), [2pk03](https://github.com/2pk03) and [slntopp](https://github.com/slntopp), all rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinimesh%2Finfinimesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinimesh%2Finfinimesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinimesh%2Finfinimesh/lists"}