Oplog Build Status

A Rust library for iterating over a MongoDB replica set oplog.

Current version: 0.2.0
Supported Rust versions: 1.14

Install

Install Oplog by adding the following to your Cargo.toml:

toml oplog = "0.2.0"

Usage

```rust

[macro_use]

extern crate bson; extern crate mongodb; extern crate oplog;

use mongodb::{Client, ThreadedClient}; use oplog::{Operation, Oplog, OplogBuilder};

fn main() { let client = Client::connect("localhost", 27017).expect("Failed to connect to MongoDB.");

if let Ok(oplog) = Oplog::new(&client) {
    for operation in oplog {
        match operation {
            Operation::Noop { timestamp, .. } => println!("No-op at {}", timestamp),
            Operation::Insert { timestamp, .. } => println!("Insert at {}", timestamp),
            Operation::Update { timestamp, .. } => println!("Update at {}", timestamp),
            Operation::Delete { timestamp, .. } => println!("Delete at {}", timestamp),
            Operation::Command { timestamp, .. } => println!("Command at {}", timestamp),
            Operation::ApplyOps { timestamp, .. } => println!("ApplyOps at {}", timestamp),
        }
    }
}

// Or, if you want to filter out certain operations:

if let Ok(oplog) = OplogBuilder::new(&client).filter(Some(doc! { "op" => "i" })).build() {
    for insert in oplog {
        println!("{}", insert);
    }
}

} ```

Documentation

Full API documentation is available at http://mudge.name/oplog

References

And many thanks to Ryman for his help along the way.

License

Copyright © 2016-2017 Paul Mucur.

Distributed under the MIT License.