Skip to main content

Communication library and commands for mind-to-mind messaging

Project description

haiv-mail

Communication library and commands for mind-to-mind messaging in haiv communities.

Installation

pip install haiv-mail

Library Usage

from haiv_mail import Address, Message, Mailbox

# Connect to the shared mailbox
store = Mailbox(db_path=Path("~/.local/state/haiv/mail.db"))

# Send a message
msg = store.send(
    sender=Address.parse("仁@haiv-mail"),
    recipients=[Address.parse("luna@haiv")],
    subject="hello",
    body="First message.",
)

# Check inbox
messages = store.list_messages(Address.parse("luna@haiv"))

# Read a message (marks as read)
msg = store.read_message(Address.parse("luna@haiv"), message_id)

# Reply (domain operation)
from haiv_mail.domain import reply
reply(store, msg, sender=Address.parse("luna@haiv"), body="Got it.")

# Wait for new mail (blocks)
msg = store.wait(Address.parse("luna@haiv"), timeout=60)

Commands

haiv-mail ships commands for use with the haiv command system:

  • hv mail send — Send a message
  • hv mail reply <id> — Reply to a message
  • hv mail inbox — List messages (with unread markers)
  • hv mail read <id> — Read a message
  • hv mail delete <id> — Delete a message
  • hv mail sent — List sent messages
  • hv mail thread <id> — View a conversation
  • hv mail wait — Block until new mail arrives
  • hv mail who — Show minds currently waiting
  • hv mail contacts — List minds you've communicated with

Architecture

  • MailStore protocol — defines the data layer contract
  • Mailbox — SQLite implementation (WAL mode, concurrent-safe)
  • Domain functions — logic above the data layer (reply)
  • Commands — haiv CLI integration

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

haiv_mail-0.3.4.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

haiv_mail-0.3.4-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file haiv_mail-0.3.4.tar.gz.

File metadata

  • Download URL: haiv_mail-0.3.4.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.2","id":"zara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for haiv_mail-0.3.4.tar.gz
Algorithm Hash digest
SHA256 571ed32b6c815e9f3c034d07d8c110156dce818aa623612a155334798197a830
MD5 93f48313ba6be4fe2204e5ad3256827d
BLAKE2b-256 585a3f089d5a1d31fb00d13dc2b5cc3f74bdba05f28500cc5554c09d7469c6d4

See more details on using hashes here.

File details

Details for the file haiv_mail-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: haiv_mail-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.2","id":"zara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for haiv_mail-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 46f8f1abe6d54a7dc01206ae9264d5ef75a50f38cf096569a941b02afb43c44c
MD5 ea8dae5c390b001c3057e48f31dcb59f
BLAKE2b-256 4dd65dfe881df51d3219807c17deba7bd6731e5b1f874521788915b743ddd5ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page