brief

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2024 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Project Brief encompasses both a command-line non-TUI minimalistically- featured POP3/SMTP-based MUA (colloquially known as a "mail client") as well as a general-purpose library facilitating the cmd.

Project Brief is unstable as of 2024-03. No compatibility promises are made. Use at your own risk.

Install via:

$ go install pkg.jfrech.com/brief/cmd/brief@latest

Noteworthy client features:

  • Vocality about display names paired with an alias system are designed to prevent homograph attacks (often employed in phishing).
  • All mails are stored fully locally (IMAP is actively not supported).
  • All mails are pristinely stored as presented by the POP3 source. Mails are marked up with a RFC-822-compliant Brief header (via "X-Brief-*" headers) which contains a cryptographic hash to detect disk failure.
  • The entire body of mail messages (called a "sack" in Brief terminology) is present to all commands at all times and can be richly searched.
  • Explicit configurability of the usage of STARTTLS (defaults to off).
  • Password manager to allow for a single .brief/config.xml configuration which may be put into a semi-private Git repository without fully compromising mailing credentials.
  • Message composing which interoperates with the system's $EDITOR.

See also brief(1) (currently in draft stage):

$ brief install-manpage /tmp/brief.1.gz && man /tmp/brief.1.gz

Noteworthy library features: + Byte-precise RFC 822 message parsing via *mailx.Splitter + Fuzz-tested 80-column-optimised Q-encoding for header fields via mailx + POP3 client implementation

Brief is written by Jonathan Frech, 2022--2024.

Directories

Path Synopsis
bql
Package bql implements parsing and pluggable interpretation for the Brief query language (abbreviated "BQL"), a small LISP-style language to specify mail queries.
Package bql implements parsing and pluggable interpretation for the Brief query language (abbreviated "BQL"), a small LISP-style language to specify mail queries.
pl
Package pl ("parantheses language") implements semantics-free S-expressions.
Package pl ("parantheses language") implements semantics-free S-expressions.
cmd
brief
Command brief implements the Brief project's canonical command-line interaction with the Brief system.
Command brief implements the Brief project's canonical command-line interaction with the Brief system.
Package composing implements $EDITOR interfacing with a Brief sack.
Package composing implements $EDITOR interfacing with a Brief sack.
Package config defines .brief/config.xml.
Package config defines .brief/config.xml.
vault
Package vault implements Brief's password manager.
Package vault implements Brief's password manager.
Package decode provides byte stream filters to convert or assert form of mail-related data.
Package decode provides byte stream filters to convert or assert form of mail-related data.
Package escape provides percent and shell string escaping.
Package escape provides percent and shell string escaping.
Package fieldnames is a collection of standard or commonly enough used field names in RFC 822 style mail messages.
Package fieldnames is a collection of standard or commonly enough used field names in RFC 822 style mail messages.
Package homographhardened provides escape functions to thwart homograph attacks.
Package homographhardened provides escape functions to thwart homograph attacks.
Package humaninterface provides a human-writable timespan description DSL.
Package humaninterface provides a human-writable timespan description DSL.
internal
attach
Package attach handles interfacing the Brief system with a POSIX-style filesystem.
Package attach handles interfacing the Brief system with a POSIX-style filesystem.
cmd
headersemantics
Package headersemantics groups field names.
Package headersemantics groups field names.
markdownish
TODO What does utf8.DecodeRuneInString("") return? I hope utf8.RuneError, but probably just '\x00'?
TODO What does utf8.DecodeRuneInString("") return? I hope utf8.RuneError, but probably just '\x00'?
network
Deprecated: Will be replaced by the more general *World interface.
Deprecated: Will be replaced by the more general *World interface.
perf
Deprecated: Package perf provided ad-hoc performance metrics.
Deprecated: Package perf provided ad-hoc performance metrics.
phraserouters
Deprecated: Package phraserouters was a command-line flag parsing attempt.
Deprecated: Package phraserouters was a command-line flag parsing attempt.
understanding
Package understanding lists properties the developers of Brief think hold true for Go the language, Go's standard library and all packages Brief depends on.
Package understanding lists properties the developers of Brief think hold true for Go the language, Go's standard library and all packages Brief depends on.
vfs
a paranoic layer to assure internal implementation consistency
a paranoic layer to assure internal implementation consistency
Package mailx implements precise syntactic RFC 822 message manipulation.
Package mailx implements precise syntactic RFC 822 message manipulation.
Package msgs provides the Brief system's mail message abstraction including the Docket together with mail message parsing.
Package msgs provides the Brief system's mail message abstraction including the Docket together with mail message parsing.
Package pop3 implements parts of the POP3 protocol (cf.
Package pop3 implements parts of the POP3 protocol (cf.
Package sacks holds the Sack interface, the Brief project's abstraction of a collection of messages.
Package sacks holds the Sack interface, the Brief project's abstraction of a collection of messages.
fssacks
Package fssacks implements a sacks.Sack on top of a POSIX-like directory.
Package fssacks implements a sacks.Sack on top of a POSIX-like directory.
Package sem collects semantically charged strings.
Package sem collects semantically charged strings.
Package tequat implements parsing of mail messages into categories of "Text, Quotes, Attachment".
Package tequat implements parsing of mail messages into categories of "Text, Quotes, Attachment".
Package text provides a column-writer and general-purpose text filter.
Package text provides a column-writer and general-purpose text filter.
Package uuids implements RFC 4122 version 4 UUIDs.
Package uuids implements RFC 4122 version 4 UUIDs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL