All Projects → rabbitmq → Rabbitmq Objc Client

rabbitmq / Rabbitmq Objc Client

Licence: other
RabbitMQ client for Objective-C and Swift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Rabbitmq Objc Client

Php Amqplib
The most widely used PHP client for RabbitMQ
Stars: ✭ 3,950 (+1808.21%)
Mutual labels:  rabbitmq, messaging
Rabbitmq Server
Open source RabbitMQ: core server and tier 1 (built-in) plugins
Stars: ✭ 9,064 (+4278.74%)
Mutual labels:  rabbitmq, messaging
Servicebus
Simple service bus for sending events between processes using amqp.
Stars: ✭ 415 (+100.48%)
Mutual labels:  rabbitmq, messaging
Langohr
A small, feature complete Clojure client for RabbitMQ that embraces AMQP 0.9.1 model
Stars: ✭ 309 (+49.28%)
Mutual labels:  rabbitmq, messaging
March hare
Idiomatic, fast and well-maintained JRuby client for RabbitMQ
Stars: ✭ 97 (-53.14%)
Mutual labels:  rabbitmq, messaging
Stompjs
Javascript and Typescript Stomp client for Web browsers and node.js apps
Stars: ✭ 324 (+56.52%)
Mutual labels:  rabbitmq, messaging
Rabbitmqbundle
RabbitMQ Bundle for the Symfony2 web framework
Stars: ✭ 1,125 (+443.48%)
Mutual labels:  rabbitmq, messaging
bunnybus
Enterprise bus facade for creating a data transit system.
Stars: ✭ 45 (-78.26%)
Mutual labels:  rabbitmq, messaging
Rabbitmq Amqp1.0
AMQP 1.0 support for RabbitMQ
Stars: ✭ 88 (-57.49%)
Mutual labels:  rabbitmq, messaging
Bunny
Bunny is a popular, easy to use, mature Ruby client for RabbitMQ
Stars: ✭ 1,224 (+491.3%)
Mutual labels:  rabbitmq, messaging
rabbitmq-stomp
RabbitMQ STOMP plugin
Stars: ✭ 49 (-76.33%)
Mutual labels:  rabbitmq, messaging
Rabbitmq Mqtt
RabbitMQ MQTT plugin
Stars: ✭ 169 (-18.36%)
Mutual labels:  rabbitmq, messaging
rabbit
Build Elixir applications with RabbitMQ
Stars: ✭ 36 (-82.61%)
Mutual labels:  rabbitmq, messaging
Masstransit
Distributed Application Framework for .NET
Stars: ✭ 4,103 (+1882.13%)
Mutual labels:  rabbitmq, messaging
rabbitmq-jms-client
RabbitMQ JMS client
Stars: ✭ 51 (-75.36%)
Mutual labels:  rabbitmq, messaging
Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-88.41%)
Mutual labels:  rabbitmq, messaging
sample-spring-cloud-stream
sample microservices communicating asynchronously using spring cloud stream, rabbitmq
Stars: ✭ 22 (-89.37%)
Mutual labels:  rabbitmq, messaging
Humusamqp
PHP 7 AMQP library
Stars: ✭ 70 (-66.18%)
Mutual labels:  rabbitmq, messaging
Garagemq
AMQP message broker implemented with golang
Stars: ✭ 153 (-26.09%)
Mutual labels:  rabbitmq, messaging
Kombu
Kombu is a messaging library for Python.
Stars: ✭ 2,263 (+993.24%)
Mutual labels:  rabbitmq, messaging

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:[email protected]: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").

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].