Travailler avec Kafka en Swift (iOS/macOS) : bibliothèques, clients et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Kafka en Swift (iOS/macOS) : bibliothèques, clients et exemples

\n\n

Apache Kafka est une plateforme distribuée de streaming de données, largement utilisée pour construire des architectures événementielles, collecter des logs, traiter des analyses et travailler avec des microservices. Dans l'écosystème Swift (iOS/macOS), Kafka n'est pas une technologie native, mais il existe plusieurs bibliothèques matures qui permettent d'intégrer des applications Swift avec des courtiers Kafka. Dans cet article, nous allons passer en revue les principaux outils, leur installation et écrire un simple producteur et consommateur en Swift.

\n\n

Pourquoi Kafka dans une application Swift ?

\n

Bien que Kafka soit le plus souvent associé au backend serveur, les applications mobiles et de bureau en Swift peuvent utiliser Kafka pour :

\n
    \n
  • Recevoir des notifications push en temps réel via WebSocket + Kafka ;
  • \n
  • Envoyer des événements de comportement utilisateur à un serveur d'analyse ;
  • \n
  • Synchroniser des données entre plusieurs appareils en temps réel ;
  • \n
  • Journalisation côté client avec envoi ultérieur vers un système centralisé.
  • \n
\n\n

Principales bibliothèques pour travailler avec Kafka en Swift

\n

Actuellement, il existe trois approches principales pour intégrer Kafka dans des projets Swift :

\n\n

1. Confluent Swift Client (recommandé)

\n

Confluent Swift Client est un wrapper officiel autour de librdkafka de la société Confluent. La bibliothèque prend en charge un ensemble complet de fonctionnalités : producteurs, consommateurs, administration de sujets, SSL, authentification SASL. Fonctionne sur iOS et macOS.

\n

Installation via Swift Package Manager :

\n
// Package.swift\ndependencies: [\n    .package(url: "https://github.com/confluentinc/confluent-kafka-swift.git", from: "0.1.0")\n]
\n\n

Exemple de producteur (Producer) en Swift

\n

Créons un producteur simple qui envoie une chaîne de caractères vers le sujet test-topic :

\n
import ConfluentKafka\n\nlet config = KafkaConfig()\nconfig["bootstrap.servers"] = "localhost:9092"\nconfig["client.id"] = "swift-producer"\n\nlet producer = try KafkaProducer(config: config)\n\nlet message = "Bonjour depuis Swift !"\nlet record = KafkaProducerRecord(topic: "test-topic", value: message.data(using: .utf8)!)\n\ntry producer.send(record: record) { error, deliveryReport in\n    if let error = error {\n        print("Erreur d'envoi : \\(error)")\n    } else {\n        print("Message envoyé à la partition \\(deliveryReport?.partition ?? -1)")\n    }\n}\n\nproducer.flush()
\n\n

Exemple de consommateur (Consumer) en Swift

\n
import ConfluentKafka\n\nlet config = KafkaConfig()\nconfig["bootstrap.servers"] = "localhost:9092"\nconfig["group.id"] = "swift-consumer-group"\nconfig["auto.offset.reset"] = "earliest"\n\nlet consumer = try KafkaConsumer(config: config)\ntry consumer.subscribe(topics: ["test-topic"])\n\nwhile true {\n    let records = try consumer.poll(timeout: 1.0)\n    for record in records {\n        if let value = record.value {\n            let message = String(data: value, encoding: .utf8) ?? "impossible de décoder"\n            print("Reçu : \\(message)")\n        }\n    }\n}
\n\n

2. KafkaSwift (alternative légère)

\n

KafkaSwift est une bibliothèque minimaliste écrite en Swift pur sans dépendances aux bibliothèques C. Elle convient pour des scénarios simples, mais ne prend pas en charge les fonctionnalités avancées (SSL, SASL, partitionnement).

\n

Installation : via CocoaPods : pod 'KafkaSwift'.

\n

Exemple d'envoi :

\n
import KafkaSwift\n\nlet kafka = try Kafka(host: "localhost", port: 9092)\ntry kafka.send(message: "Message de test", topic: "test-topic")
\n\n

3. Perfect-Kafka (pour Swift côté serveur)

\n

Perfect-Kafka fait partie du framework Perfect, orienté vers les applications serveur en Swift (macOS, Linux). Is

Recommendations