Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jan 15, 2019
May 22, 2020

README.md

RabbitMQ Objective-C and Swift client

Build Status

A RabbitMQ client, largely influenced by Bunny.

Test-driven from Swift and implemented in Objective-C.

Supported iOS and macOS Versions

This library currently targets iOS 11+ and macOS 10.12+.

Dependencies

This library depends on

Installation with Carthage

  1. Create a Cartfile with the following line:
github "rabbitmq/rabbitmq-objc-client" "v0.11.0"

Run Carthage, for example in a new project:

carthage bootstrap
  1. In your Xcode project, in the Build Phases section of your target, open up Link Binary With Libraries. Now drag e.g. Carthage/Build/iOS/RMQClient.framework (choose Mac for OSX) into this list.
  2. If you don't already have one, click the '+' icon under Build Phases to add a Copy Files phase.
  3. Under Destination, choose Frameworks.
  4. Click the '+' and add RMQClient.framework. Ensure Code Sign On Copy is checked.

Installation with CocoaPods

  1. Add the following to your Podfile:

    pod 'RMQClient', '~> 0.11.0'
    

    We recommend adding use_frameworks! to enable modular imports (Objective-C only).

  2. Run pod install.

  3. Open your project with open MyProject.xcworkspace.

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 <RMQClient/RMQClient.h>.

Supported Features

Documentation

(Basic) Usage Example

  1. Instantiate an RMQConnection:

    let delegate = RMQConnectionDelegateLogger() // implement RMQConnectionDelegate yourself to react to errors
    let conn = RMQConnection(uri: "amqp://guest:guest@localhost:5672", delegate: delegate)
  2. Connect:

    conn.start()
  3. Create a channel:

    let ch = conn.createChannel()
  4. Use the channel:

    let q = ch.queue("myqueue")
    q.subscribe({ m in
       print("Received: \(String(data: m.body, encoding: String.Encoding.utf8))")
    })
    q.publish("foo".data(using: String.Encoding.utf8))
  5. Close the connection when done:

    conn.close()
    

See the tutorials for more detailed instructions.

Running Tests

See CONTRIBUTING.md.

License and Copyright

(c) 2016-2020 VMware, Inc. or its affiliates

This package, the RabbitMQ Objective-C client library, is dual-licensed under the Mozilla Public License 2.0 ("MPL") and the Apache License version 2 ("ASL").

You can’t perform that action at this time.