Hasty Briefsbeta

Bilingual

Supporting Exchange and beyond

3 days ago
  • #Thunderbird
  • #Microsoft Exchange
  • #Rust
  • Thunderbird's project to support Microsoft Exchange involved building a protocol client in Rust and integrating it with existing C++ code.
  • The project required creating infrastructure for asynchronous network operations using Mozilla's XPCOM and Necko networking component.
  • An HTTP client abstraction (moz_http::Client) was developed to simplify making web requests, reducing boilerplate compared to raw XPCOM usage.
  • Custom XML serialization was implemented via the xml_struct crate to handle EWS SOAP requests efficiently, avoiding high boilerplate.
  • The team faced challenges in integrating Rust code with Thunderbird's decades-old codebase, requiring extensive research into existing protocols.
  • Email support for EWS was released in Thunderbird 145, marking the first new native protocol in over 20 years.
  • Future work includes adding calendar and address book support, and migrating to the Microsoft Graph API due to EWS deprecation.
  • Reusability efforts from the EWS project have accelerated Graph API implementation, reducing development time significantly.