Skip to content

Latest commit

 

History

History
26 lines (23 loc) · 1.82 KB

File metadata and controls

26 lines (23 loc) · 1.82 KB

Packages

The reusable logic — ten workspace libraries the services compose into deployed workers. Each row links to that package's own README; click through for its API and design notes. For why it's split this way, see docs/architecture/; for the wire standards, the table in the top-level README.

package role
@bullmoose/jmap-core JMAP wire types, batched dispatch with back-references, errors, capabilities (RFC 8620)
@bullmoose/account-do the per-account Durable Object: monotonic state, collection-agnostic changelog, push, alarms
@bullmoose/mailstore D1 schemas + data access, the R2 blob keyspace
@bullmoose/auth-core tokens, scopes, cross-account grants (token ∩ grant), vault envelope crypto
@bullmoose/contacts-core vCard ⇄ JSContact translation (RFC 9555)
@bullmoose/calendar-core recurrence/timezone engine + iCalendar ⇄ JSCalendar (RFC 8984)
@bullmoose/mime RFC 5322 MIME builder (inline images, big-file links)
@bullmoose/outbound SES relay for outbound send
@bullmoose/cli the bullmoose command — login, sync, send, watch, import, admin
@bullmoose/popcorn POP3S/SMTPS → JMAP shim (Go) for legacy clients

Layering, roughly top-down: jmap-core (protocol) → account-do (state) → mailstore / auth-core (storage + identity) → contacts-core / calendar-core / mime (codecs) → outbound (egress). cli and popcorn are the client edges. Nothing here imports a service; services import these.