# README
Feedx
Feed-based data exchange between services.
Usage (Ruby)
require 'bfs/s3'
require 'feedx'
# Init a new producer with an S3 destination
relation = Post.includes(:author)
producer = Feedx::Producer.new relation, 's3://my-bucket/feeds/users.json.gz'
# Push a new feed every hour
loop do
producer.perform
sleep(3600)
end
# Functions
DetectCompression detects the compression type from a URL path or file name.
DetectFormat detects the data format from a URL path or file name.
NewConsumer starts a new feed consumer.
NewConsumerForRemote starts a new feed consumer with a remote.
NewProducer inits a new feed producer.
NewProducerForRemote starts a new feed producer with a remote.
NewReader inits a new reader.
NewWriter inits a new feed writer.
# Variables
ErrNotModified is used to signal that something has not been modified.
FlateCompression supports flate compression format.
GZipCompression supports gzip compression format.
JSONFormat provides a Format implemention for JSON.
NoCompression is just a pass-through without compression.
ProtobufFormat provides a Format implemention for Protobuf.
# Structs
ConsumerOptions configure the consumer instance.
ConsumerSync contains the state of the last sync.
Producer (continously) produces a feed.
ProducerOptions configure the producer instance.
ProducerPush contains the state of the last push.
Reader reads data from a remote feed.
ReaderOptions configure the reader instance.
Writer encodes feeds to remote locations.
WriterOptions configure the producer instance.
# Interfaces
Compression represents the data compression.
Consumer manages data retrieval from a remote feed.
Format represents the data format.
FormatDecoder methods.
FormatEncoder methods.
# Type aliases
ConsumeFunc is a parsing callback which is run by the consumer every sync interval.
ProduceFunc is a callback which is run by the producer on every iteration.