{"id":20476663,"url":"https://github.com/rabbitmq/rabbitmq-objc-client","last_synced_at":"2025-05-15T18:08:18.196Z","repository":{"id":3732091,"uuid":"49069557","full_name":"rabbitmq/rabbitmq-objc-client","owner":"rabbitmq","description":"RabbitMQ client for Objective-C and Swift","archived":false,"fork":false,"pushed_at":"2025-04-22T15:35:07.000Z","size":4853,"stargazers_count":246,"open_issues_count":20,"forks_count":87,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-04-22T15:48:51.736Z","etag":null,"topics":["amqp0-9-1","messaging","objective-c","rabbitmq","rabbitmq-client","swift"],"latest_commit_sha":null,"homepage":"https://rabbitmq.com","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabbitmq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2016-01-05T14:04:39.000Z","updated_at":"2025-04-22T15:35:07.000Z","dependencies_parsed_at":"2025-03-17T20:11:49.454Z","dependency_job_id":"4d23c9a4-1107-4e69-bf3b-3a4739ae007e","html_url":"https://github.com/rabbitmq/rabbitmq-objc-client","commit_stats":{"total_commits":1038,"total_committers":23,"mean_commits":"45.130434782608695","dds":0.2870905587668593,"last_synced_commit":"a8fb912b5b9800f582d2b96c95144f2d3715fea0"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-objc-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-objc-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-objc-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-objc-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabbitmq","download_url":"https://codeload.github.com/rabbitmq/rabbitmq-objc-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394722,"owners_count":22063984,"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":["amqp0-9-1","messaging","objective-c","rabbitmq","rabbitmq-client","swift"],"created_at":"2024-11-15T15:22:12.303Z","updated_at":"2025-05-15T18:08:18.161Z","avatar_url":"https://github.com/rabbitmq.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RabbitMQ Objective-C and Swift client\n\n[![Build Status](https://travis-ci.org/rabbitmq/rabbitmq-objc-client.svg?branch=master)](https://travis-ci.org/rabbitmq/rabbitmq-objc-client)\n\nA RabbitMQ client, largely influenced by [Bunny](https://github.com/ruby-amqp/bunny).\n\nTest-driven from Swift and implemented in Objective-C.\n\n## Supported iOS and macOS Versions\n\nThis library currently targets iOS 12+ and macOS 10.12+.\n\n## Dependencies\n\nThis library depends on\n\n * [CocoaAsyncSocket](https://cocoapods.org/pods/CocoaAsyncSocket)\n * [JKVValue](https://cocoapods.org/pods/JKVValue)\n\n## Installation with [Carthage](https://github.com/Carthage/Carthage)\n\n1. Create a Cartfile with the following line:\n\n ```\n github \"rabbitmq/rabbitmq-objc-client\" \"v0.13.0\"\n ```\n\nRun Carthage, for example in a new project:\n\n ```\n carthage bootstrap\n ```\n\n1. In your Xcode project, in the **Build Phases** section of your target, open up **Link\n   Binary With Libraries**. Now drag e.g. `Carthage/Build/iOS/RMQClient.framework`\n   (choose Mac for OSX) into this list.\n1. If you don't already have one, click the '+' icon under **Build Phases** to add a\n**Copy Files** phase.\n1. Under **Destination**, choose **Frameworks**.\n1. Click the '+' and add RMQClient.framework. Ensure **Code Sign On Copy** is checked.\n\n## Installation with [CocoaPods](https://cocoapods.org/)\n\n1. Add the following to your Podfile:\n\n   ```\n   pod 'RMQClient', git: 'https://github.com/rabbitmq/rabbitmq-objc-client.git'\n   ```\n   We recommend adding `use_frameworks!` to enable modular imports (Objective-C only).\n1. Run `pod install`.\n1. Open your project with `open MyProject.xcworkspace`.\n\n**Objective-C users:** importing with `@import RMQClient;` currently produces an error in Xcode (Could not build module 'RMQClient'), but this should not prevent code from compiling and running. Using crocodile imports avoids this Xcode bug: `#import \u003cRMQClient/RMQClient.h\u003e`.\n\n\n## Supported Features\n\n- [x] Publish and consume messages as strings\n- [x] Manipulate queues, exchanges, bindings and consumers.\n- [x] Asynchronous API using GCD queues under the hood (a delegate receives errors on a configurable GCD queue).\n- [x] Configurable recovery from network interruption and connection-level exceptions\n- [x] TLS support\n- [x] Client heartbeats\n- [x] Carthage support\n- [x] CocoaPods support\n- [x] iOS support\n- [x] MacOS support\n- [x] PKCS12 client certificates on iOS using the [TLS auth mechanism plugin](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl)\n- [ ] PKCS12 support for MacOS\n- [ ] [PKCS12 client certificates on iOS using chained CAs](https://github.com/rabbitmq/rabbitmq-objc-client/issues/74)\n- [x] [Publisher confirmations](https://github.com/rabbitmq/rabbitmq-objc-client/issues/68)\n- [x] [Publish and consume messages as data](https://github.com/rabbitmq/rabbitmq-objc-client/issues/46)\n- [x] [Customisable consumer hooks](https://github.com/rabbitmq/rabbitmq-objc-client/issues/71)\n- [ ] Connection closure when broker [doesn't send heartbeats on schedule](https://github.com/rabbitmq/rabbitmq-objc-client/issues/41)\n- [ ] [basic.return support](https://github.com/rabbitmq/rabbitmq-objc-client/issues/72)\n- [ ] Acknowledgement [transaction support](https://github.com/rabbitmq/rabbitmq-objc-client/issues/73)\n\n\n## Documentation\n\n * [Several RabbitMQ tutorials](http://www.rabbitmq.com/getstarted.html) are provided for\n   this client library.\n\n### (Basic) Usage Example\n\n1. Instantiate an `RMQConnection`:\n\n   ```swift\n   let delegate = RMQConnectionDelegateLogger() // implement RMQConnectionDelegate yourself to react to errors\n   let conn = RMQConnection(uri: \"amqp://guest:guest@localhost:5672\", delegate: delegate)\n   ```\n1. Connect:\n\n   ```swift\n   conn.start()\n   ```\n1. Create a channel:\n\n   ```swift\n   let ch = conn.createChannel()\n   ```\n1. Use the channel:\n\n   ```swift\n   let q = ch.queue(\"myqueue\")\n   q.subscribe({ m in\n      print(\"Received: \\(String(data: m.body, encoding: String.Encoding.utf8))\")\n   })\n   q.publish(\"foo\".data(using: String.Encoding.utf8))\n   ```\n\n1. Close the connection when done:\n\n   ```\n   conn.close()\n   ```\n\nSee [the tutorials](http://www.rabbitmq.com/getstarted.html) for more detailed instructions.\n\n\n## Running Tests\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n\n## License and Copyright\n\nCopyright (c) 2005-2024 Broadcom. All Rights Reserved. The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n\nThis package, the RabbitMQ Objective-C client library, is\ndual-licensed under the Mozilla Public License 2.0 (\"MPL\") and the\nApache License version 2 (\"ASL\").\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Frabbitmq-objc-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbitmq%2Frabbitmq-objc-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Frabbitmq-objc-client/lists"}