Hasty Briefsbeta

Bilingual

Many Hells of WebDAV: Writing a Client/Server in Go

4 months ago
  • #WebDAV
  • #Go
  • #Interoperability
  • Implementing WebDAV/CalDAV is challenging due to legacy cruft and incomplete RFCs.
  • Existing Go implementations like go-webdav lacked necessary features, prompting a custom solution.
  • Reverse engineering clients (Apple Calendar, DavX, Thunderbird) and servers (iCloud, Google, Radicale) was more efficient than full RFC compliance.
  • Go's default XML library was inadequate, leading to the creation of a custom wrapper for handling WebDAV's unstructured schema.
  • Major providers like Apple and Google often deviate from RFCs, complicating interoperability.
  • Clients vary widely in their support for WebDAV features, with Apple Calendar notably avoiding sync-collection.
  • Small developers face challenges enforcing standards compliance against larger providers' quirks.