1
+ <div align =" center " >
2
+
1
3
# Forceps
4
+ [ ![ docs.rs] [ docs-rs-badge ]] [ docs-rs-url ]
5
+ [ ![ crates.io] [ crates-badge ]] [ crates-url ]
6
+ [ ![ CI] [ ci-badge ]] [ ci-url ]
7
+
8
+ ** The easy-to-use and asynchronous solution for your tokio project**
9
+
10
+ [ docs-rs-badge ] : https://docs.rs/forceps/badge.svg
11
+ [ docs-rs-url ] : https://docs.rs/forceps/*/forceps
12
+ [ crates-badge ] : https://img.shields.io/crates/v/forceps.svg
13
+ [ crates-url ] : https://crates.io/crates/forceps
14
+ [ ci-badge ] : https://github.com/blockba5her/forceps/actions/workflows/ci.yml/badge.svg
15
+ [ ci-url ] : https://github.com/blockba5her/forceps/actions/workflows/ci.yml
16
+
17
+ <div >
18
+
19
+ ---
2
20
3
- Forceps is a fast, asynchronous, and simple cache/database built for large-file storage for HTTP
4
- servers and other network applications. This crate is intended to be used with the ` tokio `
5
- runtime .
21
+ ` forceps ` is made to be an easy-to-use, thread-safe, performant, and asynchronous disk cache
22
+ that has easy reading and manipulation of data. It levereges tokio's async ` fs ` APIs
23
+ and fast task schedulers to perform IO operations, and ` sled ` as a fast metadata database .
6
24
7
- The motive behind this project is that there wasn't any good caching solutions for rust crates
8
- that were publically available. The best I found was zkat/cacache-rs, however it lacked in speed
9
- and wasn't what I was looking for exactly. This cache was specifically designed for
10
- [ scalpel] ( https://github.com/blockba5her/scalpel ) , which is an image cache server for MangaDex.
25
+ It was originally designed to be used in [ ` scalpel ` ] ( https://github.com/blockba5her/scalpel ) ,
26
+ the MD@Home implementation for the Rust language.
11
27
12
28
## Instability Warning
13
29
@@ -23,12 +39,14 @@ It is advisable to use another solution if you have the option!
23
39
- Optimized for cache ` HIT ` s
24
40
- Easy error handling
25
41
26
- ### Features-to-come
42
+ ### Planned Features
27
43
28
44
- Toggleable in-memory LRU cache
29
- - Optional last-access timestamps
30
- - Removing database entries
31
- - Easy cache eviction
45
+ - ` bytes ` crate support (planned non-optional)
46
+ - Optional tracking of last-access timestamps
47
+ - Removal of entries
48
+ - Included cache eviction (LRU/FIFO)
49
+ - Built-in cache integrity checks
32
50
33
51
## Documentation
34
52
0 commit comments