Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork24
Rust implementation of Facebook's DataLoader using async-await.
License
Apache-2.0, MIT licenses found
Licenses found
Apache-2.0
LICENSE-APACHEMIT
LICENSE-MITNotificationsYou must be signed in to change notification settings
cksac/dataloader-rs
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Rust implementation ofFacebook's DataLoader using async-await.
- Batching load requests with caching
- Batching load requests without caching
runtime-async-std(default), to use theasync-std runtime- dataloader = "0.18"
runtime-tokioto use theTokio runtime- dataloader = { version = "0.18", default-features = false, features = ["runtime-tokio"]}
[dependencies]dataloader ="0.18"futures ="0.3"
use dataloader::cached::Loader;use dataloader::BatchFn;use futures::executor::block_on;use futures::future::ready;use std::collections::HashMap;use std::thread;structMyLoadFn;implBatchFn<usize,usize>forMyLoadFn{asyncfnload(&mutself,keys:&[usize]) ->HashMap<usize,usize>{println!("BatchFn load keys {:?}", keys);let ret = keys.iter().map(|v|(v.clone(), v.clone())).collect::<HashMap<_,_>>();ready(ret).await}}fnmain(){letmut i =0;while i <2{let a =MyLoadFn;let loader =Loader::new(a).with_max_batch_size(4);let l1 = loader.clone();let h1 = thread::spawn(move ||{let r1 = l1.load(1);let r2 = l1.load(2);let r3 = l1.load(3);let r4 = l1.load_many(vec![2,3,4,5,6,7,8]);let f = futures::future::join4(r1, r2, r3, r4);println!("{:?}", block_on(f));});let l2 = loader.clone();let h2 = thread::spawn(move ||{let r1 = l2.load(1);let r2 = l2.load(2);let r3 = l2.load(3);let r4 = l2.load(4);let f = futures::future::join4(r1, r2, r3, r4);println!("{:?}", block_on(f));}); h1.join().unwrap(); h2.join().unwrap(); i +=1;}}
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT orhttp://opensource.org/licenses/MIT)
at your option.
About
Rust implementation of Facebook's DataLoader using async-await.
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Apache-2.0
LICENSE-APACHEMIT
LICENSE-MITUh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors13
Uh oh!
There was an error while loading.Please reload this page.