Crabmail Mirror repository

Yurii Sokolovskyi e8f951b2f5 fixed a bug with result and maildir creation on the first run il y a 1 jour
.github 487f39a531 Add issue template discouraging github use il y a 2 ans
async-imap-wasi 54ed443a8a async-imap-wasi lib added il y a 3 mois
sonic-channel-wasi 0e9c2fe348 sonic search added il y a 3 mois
src e8f951b2f5 fixed a bug with result and maildir creation on the first run il y a 1 jour
.gitignore 8c02427b33 updated .gitignore il y a 4 mois
Cargo.toml 895dc32fbc fixed bug in search buckets, added search_attachments endpoint, search -> search_emails, ingesting attachments into sonic search il y a 1 jour
LICENSE 896925d675 Re license to AGPLv3 il y a 2 ans
README.md 9158e3deac updated README.md il y a 2 mois
crabmail.conf 5f078e6b44 Indexes fixed a little bit + removed unused properties in config file il y a 1 semaine

README.md

🦀Crabmail🦀

Installation and usage

Clone the project:

git clone https://git.42d.io/reda/crabmail

Install dependencies:

cd crabmail && cargo install --path .

For Linux environment build and run:

cargo run --release

For WASI environment install Wasmedge

curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash

Add WASM target for cargo toolchain:

rustup target add wasm32-wasi

For WASI environment build:

cargo build --target wasm32-wasi --release

For WASI environment run:

wasmedge --dir {path with config} --dir {path to store results} --dir {path with maildir} {path to .wasm file} -h -c {path to the config file} -d {path to the result dir} -m {path to maildir}

Note: To give WASI access to a directory, you need to use the --dir flag and specify the path in the {actual_path}:{virtual_path} format, where {actual_path} should be replaced with the actual path in the local file system, and {virtual_path} should represent the virtual path that WASI will use in the code.

For WASI environment run example:

wasmedge --dir /home/yura/crabmailConfig/:/home/yura/crabmailConfig/ --dir /home/yura/crabmailResult/:/home/yura/crabmailResult/ --dir /home/yura/lists/:/home/yura/lists/ ./target/wasm32-wasi/release/crabmail.wasm -h -c /home/yura/crabmailConfig/crabmail.conf -d /home/yura/crabmailResult -m /home/yura/lists/

Copy crabmail.conf and set the variables as needed.

Sonic search

For Sonic Search to work, a Sonic server must be running in the background. Additionally, ensure that IPv6 is not used with WASI, as it is not yet supported.

Iroh sync

This is a separate module

NOTES

The program works on Linux and WASI. You need to use Wasmedge to run WASM code because the project uses libraries from Wasmedge for networking and asynchronous tasks

Etc

Crabmail is AGPLv3 licenses, but some files are licensed under 0BSD or other more permissive licenses. I call this out when I can.