Module: Kafka::FFI
- Extended by:
 - FFI::Library
 
- Defined in:
 - lib/kafka/ffi.rb,
lib/kafka/ffi/admin.rb,
lib/kafka/ffi/error.rb,
lib/kafka/ffi/event.rb,
lib/kafka/ffi/queue.rb,
lib/kafka/ffi/topic.rb,
lib/kafka/ffi/client.rb,
lib/kafka/ffi/config.rb,
lib/kafka/ffi/opaque.rb,
lib/kafka/ffi/message.rb,
lib/kafka/ffi/consumer.rb,
lib/kafka/ffi/metadata.rb,
lib/kafka/ffi/producer.rb,
lib/kafka/ffi/group_info.rb,
lib/kafka/ffi/group_list.rb,
lib/kafka/ffi/topic_config.rb,
lib/kafka/ffi/message/header.rb,
lib/kafka/ffi/opaque_pointer.rb,
lib/kafka/ffi/topic_metadata.rb,
lib/kafka/ffi/broker_metadata.rb,
lib/kafka/ffi/topic_partition.rb,
lib/kafka/ffi/group_member_info.rb,
lib/kafka/ffi/partition_metadata.rb,
lib/kafka/ffi/topic_partition_list.rb 
Overview
Module FFI provides both a (mostly) complete set of low level function calls into librdkafka as well as a set of slightly higher level abstractions and objects that make working with the API easier. It is still required to know enough about using librdkafka to use the abstractions safely (see the introduction below).
All exposed functions on Kafka::FFI are named to match the functions exposed by librdkafka (see rdkafka.h).
See: https://github.com/edenhill/librdkafka/blob/master/INTRODUCTION.md See: https://github.com/edenhill/librdkafka/blob/master/src/rdkafka.h
Defined Under Namespace
Modules: Admin Classes: BrokerMetadata, Client, Config, ConfigError, Consumer, Error, Event, GroupInfo, GroupList, GroupMemberInfo, InvalidConfigValue, Message, Metadata, Opaque, OpaquePointer, PartitionMetadata, Producer, Queue, Topic, TopicAlreadyConfiguredError, TopicConfig, TopicMetadata, TopicPartition, TopicPartitionList, UnknownConfigKey
Constant Summary collapse
- RD_KAFKA_RESP_ERR__TIMED_OUT =
          
Response Errors
 -185- RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS =
 -175- RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS =
 -174- RD_KAFKA_RESP_ERR__NO_OFFSET =
 -168- RD_KAFKA_RESP_ERR__NOENT =
 -156- RD_KAFKA_RESP_ERR__FATAL =
 -150- RD_KAFKA_OFFSET_BEGINNING =
 -2- RD_KAFKA_OFFSET_END =
 -1- RD_KAFKA_OFFSET_STORED =
 -1000- RD_KAFKA_OFFSET_INVALID =
 -1001- RD_KAFKA_EVENT_NONE =
 0x00- RD_KAFKA_EVENT_DR =
 0x01- RD_KAFKA_EVENT_FETCH =
 0x02- RD_KAFKA_EVENT_LOG =
 0x04- RD_KAFKA_EVENT_ERROR =
 0x08- RD_KAFKA_EVENT_REBALANCE =
 0x10- RD_KAFKA_EVENT_OFFSET_COMMIT =
 0x20- RD_KAFKA_EVENT_STATS =
 0x40- RD_KAFKA_EVENT_CREATETOPICS_RESULT =
 100- RD_KAFKA_EVENT_DELETETOPICS_RESULT =
 101- RD_KAFKA_EVENT_CREATEPARTITIONS_RESULT =
 102- RD_KAFKA_EVENT_ALTERCONFIGS_RESULT =
 103- RD_KAFKA_EVENT_DESCRIBECONFIGS_RESULT =
 104- RD_KAFKA_EVENT_OAUTHBEARER_TOKEN_REFRESH =
 0x100- RD_KAFKA_MSG_STATUS_NOT_PERSISTED =
 0- RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED =
 1- RD_KAFKA_MSG_STATUS_PERSISTED =
 2- RD_KAFKA_MSG_F_FREE =
          
Flags for rd_kafka_produce, rd_kafka_producev, and rd_kafka_produce_batch.
 0x01- RD_KAFKA_MSG_F_COPY =
 0x02- RD_KAFKA_MSG_F_BLOCK =
 0x04- RD_KAFKA_MSG_F_PARTITION =
 0x04- RD_KAFKA_PURGE_F_QUEUE =
          
Flags for rd_kafka_purge
 0x01- RD_KAFKA_PURGE_F_INFLIGHT =
 0x02- RD_KAFKA_PURGE_F_NON_BLOCKING =
 0x04- RD_KAFKA_VTYPE_END =
          
rd_kafka_producev va-arg vtype constants.
 0- RD_KAFKA_VTYPE_TOPIC =
 1- RD_KAFKA_VTYPE_RKT =
 2- RD_KAFKA_VTYPE_PARTITION =
 3- RD_KAFKA_VTYPE_VALUE =
 4- RD_KAFKA_VTYPE_KEY =
 5- RD_KAFKA_VTYPE_OPAQUE =
 6- RD_KAFKA_VTYPE_MSGFLAGS =
 7- RD_KAFKA_VTYPE_TIMESTAMP =
 8- RD_KAFKA_VTYPE_HEADER =
 9- RD_KAFKA_VTYPE_HEADERS =
 10- RD_KAFKA_PARTITION_UA =
          
Use for partition when it should be assigned by the configured partitioner.
 -1- RD_KAFKA_ADMIN_OP_ANY =
 0- RD_KAFKA_ADMIN_OP_CREATETOPICS =
 1- RD_KAFKA_ADMIN_OP_DELETETOPICS =
 2- RD_KAFKA_ADMIN_OP_CREATEPARTITIONS =
 3- RD_KAFKA_ADMIN_OP_ALTERCONFIGS =
 4- RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS =
 5- RD_KAFKA_RESOURCE_UNKNOWN =
 0- RD_KAFKA_RESOURCE_ANY =
 1- RD_KAFKA_RESOURCE_TOPIC =
 2- RD_KAFKA_RESOURCE_GROUP =
 3- RD_KAFKA_RESOURCE_BROKER =
 4- RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG =
 0- RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG =
 1- RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG =
 2- RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG =
 3- RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG =
 4- RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG =
 5
Class Method Summary collapse
- 
  
    
      .features  ⇒ Array<String> 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the set of features available from librdkafka.
 - 
  
    
      .version  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the loaded version of librdkafka.
 
Instance Method Summary collapse
- 
  
    
      #rd_kafka_AdminOptions_new  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
AdminOptions.
 - 
  
    
      #rd_kafka_AlterConfigs  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
AlterConfigs.
 - 
  
    
      #rd_kafka_ConfigEntry_name  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
ConfigEntry.
 - 
  
    
      #rd_kafka_ConfigResource_new  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
ConfigResource.
 - 
  
    
      #rd_kafka_ConfigSource_name  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
ConfigSource.
 - 
  
    
      #rd_kafka_consume_start  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Legacy Simple Consumer API.
 - 
  
    
      #rd_kafka_CreateTopics  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Create Topics / NewTopic.
 - 
  
    
      #rd_kafka_DescribeConfigs  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
DescribeConfigs.
 - 
  
    
      #rd_kafka_ResourceType_name  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Resource Type (enum).
 - 
  
    
      #rd_kafka_subscribe  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
High Level Consumer API.
 
Class Method Details
.features ⇒ Array<String>
Returns the set of features available from librdkafka
      36 37 38 39 40 41  | 
    
      # File 'lib/kafka/ffi.rb', line 36 def self.features conf = Config.new conf.get("builtin.features").split(",") ensure conf.destroy end  | 
  
.version ⇒ String
Returns the loaded version of librdkafka
      29 30 31  | 
    
      # File 'lib/kafka/ffi.rb', line 29 def self.version rd_kafka_version_str end  | 
  
Instance Method Details
#rd_kafka_AdminOptions_new ⇒ Object
AdminOptions
      549  | 
    
      # File 'lib/kafka/ffi.rb', line 549 attach_function :rd_kafka_AdminOptions_new, [Client, :admin_operation], Admin::AdminOptions  | 
  
#rd_kafka_AlterConfigs ⇒ Object
AlterConfigs
      562  | 
    
      # File 'lib/kafka/ffi.rb', line 562 attach_function :rd_kafka_AlterConfigs, [Client, :pointer, :size_t, Admin::AdminOptions, Queue], :void  | 
  
#rd_kafka_ConfigEntry_name ⇒ Object
ConfigEntry
      580  | 
    
      # File 'lib/kafka/ffi.rb', line 580 attach_function :rd_kafka_ConfigEntry_name, [Admin::ConfigEntry], :string  | 
  
#rd_kafka_ConfigResource_new ⇒ Object
ConfigResource
      569  | 
    
      # File 'lib/kafka/ffi.rb', line 569 attach_function :rd_kafka_ConfigResource_new, [:resource_type, :string], Admin::ConfigResource  | 
  
#rd_kafka_ConfigSource_name ⇒ Object
ConfigSource
      590  | 
    
      # File 'lib/kafka/ffi.rb', line 590 attach_function :rd_kafka_ConfigSource_name, [:config_source], :string  | 
  
#rd_kafka_consume_start ⇒ Object
Legacy Simple Consumer API
      440  | 
    
      # File 'lib/kafka/ffi.rb', line 440 attach_function :rd_kafka_consume_start, [Topic, :partition, :offset], :int  | 
  
#rd_kafka_CreateTopics ⇒ Object
Create Topics / NewTopic
      593  | 
    
      # File 'lib/kafka/ffi.rb', line 593 attach_function :rd_kafka_CreateTopics, [Client, :pointer, :size_t, Admin::AdminOptions, Queue], :void, blocking: true  | 
  
#rd_kafka_DescribeConfigs ⇒ Object
DescribeConfigs
      558  | 
    
      # File 'lib/kafka/ffi.rb', line 558 attach_function :rd_kafka_DescribeConfigs, [Client, :pointer, :size_t, Admin::AdminOptions, Queue], :void  | 
  
#rd_kafka_ResourceType_name ⇒ Object
Resource Type (enum)
      566  | 
    
      # File 'lib/kafka/ffi.rb', line 566 attach_function :rd_kafka_ResourceType_name, [:resource_type], :string  | 
  
#rd_kafka_subscribe ⇒ Object
High Level Consumer API
      418  | 
    
      # File 'lib/kafka/ffi.rb', line 418 attach_function :rd_kafka_subscribe, [Consumer, TopicPartitionList.by_ref], :error_code  |