{"id":16837661,"url":"https://github.com/jeffijoe/deltio","last_synced_at":"2025-03-22T04:31:02.827Z","repository":{"id":160434186,"uuid":"628398390","full_name":"jeffijoe/deltio","owner":"jeffijoe","description":"A Google Cloud Pub/Sub emulator alternative, written in Rust.","archived":false,"fork":false,"pushed_at":"2024-09-06T18:48:01.000Z","size":474,"stargazers_count":20,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-18T08:21:25.795Z","etag":null,"topics":["emulator","gcloud-pubsub","gcp","grpc","pubsub-emulator","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffijoe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-15T20:29:13.000Z","updated_at":"2024-12-27T11:20:01.000Z","dependencies_parsed_at":"2024-09-06T20:10:35.402Z","dependency_job_id":"33875dae-70c1-45d3-bd14-3bb791cb1ddf","html_url":"https://github.com/jeffijoe/deltio","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffijoe%2Fdeltio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffijoe%2Fdeltio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffijoe%2Fdeltio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffijoe%2Fdeltio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffijoe","download_url":"https://codeload.github.com/jeffijoe/deltio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244907420,"owners_count":20529850,"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":["emulator","gcloud-pubsub","gcp","grpc","pubsub-emulator","rust"],"created_at":"2024-10-13T12:18:24.099Z","updated_at":"2025-03-22T04:31:02.313Z","avatar_url":"https://github.com/jeffijoe.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deltio\n\nA Google Cloud Pub/Sub emulator alternative for local development.\n\n\u003e ℹ️ **DISCLAIMER**: This project is not endorsed, sponsored, or affiliated with Google Cloud and/or the Rust Foundation.\n\n### Why?\n\nPerformance.\n\nThe official Google Cloud Pub/Sub emulator would make our machines come to a crawl under moderate load (for example, \nintegration testing with \u003e50 topics + subscriptions). Even after the tests were done, the emulator would still be \nspinning the CPU. Frequent restarts were needed, as performance degraded over time.   \n\nDeltio is a minimal implementation of a Google Cloud Pub/Sub emulator that supports the core features needed\nto use Pub/Sub.\n\n# Installation\n\nYou can either:\n\n* [Download the latest release](https://github.com/jeffijoe/deltio/releases/latest) for your platform.\n* Use Docker:\n\n  ```bash\n  docker run -p 8085:8085 ghcr.io/jeffijoe/deltio:latest\n  ```\n\n# Running\n\nWhen running outside of Docker (at least on macOS), it is recommended to increase the max open files limit to prevent the `too many open files` error.\n\n```bash\n$ ulimit -n unlimited\n```\n\nAssuming you have placed `deltio` somewhere in your `$PATH`, run Deltio with the default options (port: `8085`):\n\n```bash\n$ deltio\n```\n\nTo use a different port:\n\n```bash\n$ deltio --bind 0.0.0.0:1337\n```\n\nTo see a list of options:\n\n```bash\n$ deltio --help\n```\n\n# Limitations\n\nAs of this time, Deltio has **very limited functionality**, much less than the official Google Cloud Pub/Sub emulator.\n\n**Currently supported features:**\n\n* Create topic\n  * Only the `name` property is respected\n* Get topic\n* List topics in a project\n* Publish messages\n  * Only the `data` and `attributes` properties are respected\n* Delete topics\n* Create subscription\n  * Supports `name` and `ack_deadline_seconds` properties\n* Get subscription\n* List subscriptions in a project\n* List subscription names in a topic\n* Modify ACK deadlines\n* ACK messages\n* Pull messages\n* Streaming-pull messages\n  * Including handling stream requests for acks and deadline modifications\n  * Does **NOT** support flow control properties\n* Push subscriptions\n  * No flow control\n* Message expiration\n* Deleting subscriptions\n\nIf something is not listed above, it's probably not supported yet. For example: message ordering, exactly-once delivery, deadletter and expiration policies, are not supported.\n\n# Compiling from source\n\nDeltio is written in Rust, and requires a Protocol Buffers compiler. This is because the [official Google Cloud Pub/Sub protos](https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto) are used to generate the server code.\n\nWith both of those configured, you can simply run:\n\n```bash\ncargo build --release\n```\n\n# What's in a name?\n\n\u003e In Greek, the term \"deltio\" (δελτίο) translates to \"bulletin\" or \"announcement.\" It is commonly used to refer to a document or publication that provides information, updates, or news about a particular topic. For example, a \"deltio\" can be a newsletter, a news bulletin, or an official communication issued by an organization or government entity.\n\u003e\n\u003e~ ChatGPT\n\n# Author\n\nJeff Hansen - [@Jeffijoe](https://twitter.com/Jeffijoe)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffijoe%2Fdeltio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffijoe%2Fdeltio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffijoe%2Fdeltio/lists"}