Write SOTA/Alternative #15

Closed
opened 2023-07-23 18:40:10 +00:00 by quentin · 2 comments
Owner

here are the rust libraries:

stalwartlabs/mail-parser,
jothan/rustyknife,
staktrace/mailparse,
niax/rust-email + deltachat/rust-email

here are some other lib in other lang:

mirage/mrmime (ocaml)
https://docs.python.org/3/library/email.html (python)
emersion/go-message (go)
kisli/vmime (c++)
jstedfast/gmime (C)
ronomon/mime (javascript)
jstedfast/MailKit (C#)
Enough-Software/enough_mail (Dart)
eclipse-ee4j/angus-mail (Java, prev JavaMail, prev Jakarte Email)
here are the rust libraries: stalwartlabs/mail-parser, jothan/rustyknife, staktrace/mailparse, niax/rust-email + deltachat/rust-email here are some other lib in other lang: mirage/mrmime (ocaml) https://docs.python.org/3/library/email.html (python) emersion/go-message (go) kisli/vmime (c++) jstedfast/gmime (C) ronomon/mime (javascript) jstedfast/MailKit (C#) Enough-Software/enough_mail (Dart) eclipse-ee4j/angus-mail (Java, prev JavaMail, prev Jakarte Email)
quentin added the
cat
dx
label 2023-07-23 18:40:10 +00:00
Author
Owner

maintainability

ran with: cargo clippy -- --allow clippy::all --deny clippy::cognitive_complexity

stalwartlabs/mail-parser fx with probs:

  • 34 src/parsers/fields/address.rs::parse_address(&mut self) -> HeaderValue<'x>
  • 41 src/parsers/fields/content_type.rs::parse_content_type(&mut self) -> HeaderValue<'x>
  • 26 src/parsers/fields/thread.rs::thread_name(text: &str) -> &str
  • 60 src/parsers/message.rs::parse_(raw_message: &'x [u8], depth: usize) -> Option<Message<'x>>

jothan/rustyknife -> no issue

staktrace/mailparse:

  • 37 src/addrparse.rs::addrparse_inner

deltachat/rust-email -> no complexity issue

## maintainability ran with: `cargo clippy -- --allow clippy::all --deny clippy::cognitive_complexity` `stalwartlabs/mail-parser` fx with probs: - 34 `src/parsers/fields/address.rs::parse_address(&mut self) -> HeaderValue<'x>` - 41 `src/parsers/fields/content_type.rs::parse_content_type(&mut self) -> HeaderValue<'x>` - 26 `src/parsers/fields/thread.rs::thread_name(text: &str) -> &str` - 60 `src/parsers/message.rs::parse_(raw_message: &'x [u8], depth: usize) -> Option<Message<'x>>` `jothan/rustyknife` -> no issue `staktrace/mailparse`: - 37 `src/addrparse.rs::addrparse_inner` `deltachat/rust-email` -> no complexity issue
Author
Owner

Idea:

  • Parser type
  • Maintainability (complexity)
  • IMF (RFC822/5322)
  • MIME (RFC204{5-9})
  • Extensions (UTF-7, special headers, etc.)
  • Zero copy
  • License
  • Used in
Idea: - Parser type - Maintainability (complexity) - IMF (RFC822/5322) - MIME (RFC204{5-9}) - Extensions (UTF-7, special headers, etc.) - Zero copy - License - Used in
quentin added the
prio
high
label 2023-07-24 09:51:28 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/eml-codec#15
No description provided.