Start some docs
This commit is contained in:
parent
0f068bd3f9
commit
43811a6af9
11 changed files with 82 additions and 5 deletions
|
@ -19,6 +19,7 @@ log = "0.4.14"
|
|||
panorama-imap = { path = "../imap" }
|
||||
panorama-smtp = { path = "../smtp" }
|
||||
serde = { version = "1.0.130", features = ["derive"] }
|
||||
session_types = "0.3.1"
|
||||
stderrlog = "0.5.1"
|
||||
tokio = { version = "1.13.0", features = ["full"] }
|
||||
tokio-rustls = "0.23.1"
|
||||
|
@ -26,7 +27,6 @@ toml = "0.5.8"
|
|||
xdg = "2.4.0"
|
||||
|
||||
notify = { version = "5.0.0-pre.13", optional = true }
|
||||
session_types = "0.3.1"
|
||||
|
||||
[dependencies.sqlx]
|
||||
version = "0.5.9"
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
#[derive(Debug)]
|
||||
pub enum MailEvent {}
|
|
@ -1,6 +1,6 @@
|
|||
#![allow(dead_code)]
|
||||
|
||||
mod event;
|
||||
mod sessions;
|
||||
mod store;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
|
@ -18,7 +18,9 @@ use tokio::sync::mpsc::UnboundedSender;
|
|||
|
||||
use crate::config::{MailAccountConfig, TlsMethod};
|
||||
|
||||
pub use self::event::MailEvent;
|
||||
// pub use self::event::MailEvent;
|
||||
#[derive(Debug)]
|
||||
pub struct MailEvent;
|
||||
pub use self::store::MailStore;
|
||||
|
||||
static MIGRATOR: Migrator = sqlx::migrate!();
|
||||
|
|
1
daemon/src/mail/sessions.rs
Normal file
1
daemon/src/mail/sessions.rs
Normal file
|
@ -0,0 +1 @@
|
|||
// TODO: figure out what sessions I actually want
|
1
docs/.gitignore
vendored
Normal file
1
docs/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
book
|
11
docs/SUMMARY.md
Normal file
11
docs/SUMMARY.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Summary
|
||||
|
||||
- [Front](./front.md)
|
||||
|
||||
---
|
||||
|
||||
# Daemon
|
||||
|
||||
- [Daemon](./daemon/index.md)
|
||||
- [API](./daemon/api.md)
|
||||
- [Hooks](./daemon/hooks.md)
|
6
docs/book.toml
Normal file
6
docs/book.toml
Normal file
|
@ -0,0 +1,6 @@
|
|||
[book]
|
||||
authors = ["Michael Zhang"]
|
||||
language = "en"
|
||||
multilingual = false
|
||||
src = "."
|
||||
title = "panorama"
|
33
docs/daemon/api.md
Normal file
33
docs/daemon/api.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Daemon API
|
||||
|
||||
To communicate with the daemon start by connecting to the socket it exposes.
|
||||
This opens a long-lasting connection that can be used to send RPC messages. The
|
||||
following messages are planned:
|
||||
|
||||
#### `mail::listen-receive`
|
||||
|
||||
```
|
||||
(account : Option<String>) -> Stream<MessageNotification>
|
||||
```
|
||||
|
||||
Begin subscribing to when mail is received for a particular account if provided,
|
||||
or all accounts by default.
|
||||
|
||||
#### `mail::send`
|
||||
|
||||
```
|
||||
(message : SendMessage) -> Result<()>
|
||||
```
|
||||
|
||||
Send an email. If the send fails the result is returned immediately without
|
||||
retry.
|
||||
|
||||
TODO: send with retry?
|
||||
|
||||
#### `mail::search`
|
||||
|
||||
```
|
||||
(query : StructuredQuery) -> Result<SearchResultPage>
|
||||
```
|
||||
|
||||
Search for messages, returns a summary of messages + first sentence.
|
1
docs/daemon/hooks.md
Normal file
1
docs/daemon/hooks.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Hooks
|
21
docs/daemon/index.md
Normal file
21
docs/daemon/index.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Daemon
|
||||
|
||||
The panorama daemon runs locally and serves as the primary controller of all of
|
||||
panorama's functions. Since it needs to be ready to listen for clients at any
|
||||
time, it should remain running in the background.
|
||||
|
||||
Planned functionality:
|
||||
|
||||
- Email
|
||||
- Synchronizes with mail servers, aggregating a local database of messages.
|
||||
- Build a comprehensive and full-text search index over all local messages.
|
||||
- Send email by communicating with SMTP servers.
|
||||
- Calendar
|
||||
- Import ical files.
|
||||
- Send reminders to various outputs.
|
||||
|
||||
Stretch goals:
|
||||
|
||||
- Email
|
||||
- Expose a JMAP API, allowing other clients to connect to it.
|
||||
- Massively configurable hooks.
|
3
docs/front.md
Normal file
3
docs/front.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Front
|
||||
|
||||
|
Loading…
Reference in a new issue