Skip to content

Subscribe to real time events on your ArangoDB database in Rust

License

Notifications You must be signed in to change notification settings

ForetagInc/arangodb-events-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ArangoDB Events

A library to add triggers to your ArangoDB database, when events occur (insert, update, delete etc.) on your collections.

crates.io Downloads Build Documentation

Documentation

Features

  • async Enables asynchronous Handler::call method

Installation

Add the crate to your Cargo.toml:

arangodb_events_rs = "0.1.6"

Usage

use arangodb_events_rs::api::DocumentOperation; use arangodb_events_rs::{Handler, Trigger, HandlerContextFactory}; pub struct GlobalHandler; pub struct GlobalHandlerContext { pub data: u8, } impl Handler for GlobalHandler { type Context = GlobalHandlerContext; fn call(ctx: &GlobalHandlerContext, doc: &DocumentOperation) { println!("{}", ctx.data); // 10 } } #[tokio::main] async fn main() { let mut trigger = Trigger::new_auth( "http://localhost:8529/", "database", TriggerAuthentication::new("user", "password"), ); trigger.subscribe::<GlobalHandler>( HandlerEvent::InsertOrReplace, HandlerContextFactory::from(GlobalHandlerContext { data: 10, }) ); // This subscribes for all Insert or Replace operations on the database trigger.subscribe_to::<AccountHandler>( HandlerEvent::Remove, "accounts", HandlerContextFactory::from(AccountHandlerContext { data: 50, }) ); // This is gonna listen only for Remove operations over accounts table trigger .init() .await .expect("Error initializing ArangoDB Trigger"); loop { trigger .listen() .await .expect("Error on Trigger listener loop"); } }

About

Subscribe to real time events on your ArangoDB database in Rust

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors 2

  •  
  •  

Languages