Updated README

This commit is contained in:
mdecimus
2025-10-16 17:22:49 +02:00
parent 81b266797d
commit 496d866052
11 changed files with 38 additions and 27 deletions

2
Cargo.lock generated
View File

@@ -964,6 +964,8 @@ dependencies = [
[[package]]
name = "calcard"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388f40e77acf8ad26d4ac7120bd24fb08e671f38858f401887714cdc102ec9f4"
dependencies = [
"ahash",
"chrono",

View File

@@ -53,10 +53,18 @@ Key features:
* Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support.
* Envelope rewriting and message modification.
- **Collaboration** server:
- Calendaring with [CalDAV](https://datatracker.ietf.org/doc/html/rfc4791), [CalDAV Scheduling](https://datatracker.ietf.org/doc/html/rfc6638) and e-mail alarms support.
- Contact management with [CardDAV](https://datatracker.ietf.org/doc/html/rfc6352) support.
- File storage with [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) support.
- Sharing with [WebDAV ACL](https://datatracker.ietf.org/doc/html/rfc3744) support for fine-grained access control.
- Calendaring and scheduling:
- [CalDAV](https://datatracker.ietf.org/doc/html/rfc4791) and [CalDAV Scheduling](https://datatracker.ietf.org/doc/html/rfc6638) support.
- [JMAP for Calendars](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-calendars-24) support.
- Contact management:
- [CardDAV](https://datatracker.ietf.org/doc/html/rfc6352) support.
- [JMAP for Contacts](https://datatracker.ietf.org/doc/html/rfc9610) support.
- File storage:
- [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) support.
- [JMAP for File Storage](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-filenode-02) support.
- Sharing with fine-grained access controls:
- [WebDAV ACL](https://datatracker.ietf.org/doc/html/rfc3744) support.
- [JMAP Sharing](https://datatracker.ietf.org/doc/html/rfc9670) support.
- **Spam** and **Phishing** built-in filter:
- Comprehensive set of filtering **rules** on par with popular solutions.
- LLM-driven spam filtering and message analysis.
@@ -135,22 +143,13 @@ All documentation is available at [stalw.art/docs](https://stalw.art/docs/instal
If you are having problems running Stalwart, you found a bug or just have a question, do not hesitate to reach us on [GitHub Discussions](https://github.com/stalwartlabs/stalwart/discussions), [Reddit](https://www.reddit.com/r/stalwartlabs) or [Discord](https://discord.com/servers/stalwart-923615863037390889).
Additionally you may purchase an [Enterprise License](https://stalw.art/enterprise) to obtain priority support from Stalwart Labs LLC.
## Sponsorship
Your support is crucial in helping us continue to improve the project, add new features, and maintain the highest level of quality. By [becoming a sponsor](https://opencollective.com/stalwart), you help fund the development and future of Stalwart. As a thank-you, sponsors who contribute $5 per month or more will automatically receive a [Enterprise edition](https://stalw.art/enterprise/) license. And, sponsors who contribute $30 per month or more, also have access to [Premium Support](https://stalw.art/support) from Stalwart Labs.
These are some of our open-source sponsors:
<!-- sponsors --><a href="https://github.com/kbjr"><img src="https:&#x2F;&#x2F;github.com&#x2F;kbjr.png" width="60px" alt="User avatar: James Brumond" /></a><a href="https://github.com/MailRoute"><img src="https:&#x2F;&#x2F;github.com&#x2F;MailRoute.png" width="60px" alt="User avatar: MailRoute, Inc." /></a><a href="https://github.com/starsong-consulting"><img src="https:&#x2F;&#x2F;github.com&#x2F;starsong-consulting.png" width="60px" alt="User avatar: Starsong GmbH" /></a><a href="https://github.com/mingfu-design"><img src="https:&#x2F;&#x2F;github.com&#x2F;mingfu-design.png" width="60px" alt="User avatar: Ming Fu Design Ltd. 明孚設計有限公司" /></a><a href="https://github.com/tamwuff"><img src="https:&#x2F;&#x2F;github.com&#x2F;tamwuff.png" width="60px" alt="User avatar: Tamino" /></a><a href="https://github.com/panascais"><img src="https:&#x2F;&#x2F;github.com&#x2F;panascais.png" width="60px" alt="User avatar: panascais" /></a><!-- sponsors -->
<br/>If you would like to support our work, please consider [becoming a sponsor](https://opencollective.com/stalwart).
## Roadmap
- [ ] JMAP for Calendars, Contacts and File Storage support
- [ ] Webmail client
Stalwart has reached an exciting point in its journey, its now **feature complete**. All the core functionality and open standard email and collaboration protocols that we set out to support are in place. In other words, Stalwart already does everything youd expect from a modern, standards-compliant mail and collaboration platform.
See the [enhancement requests](https://github.com/stalwartlabs/stalwart/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement) page for a full list of proposed features by the community.
The next major milestone is all about refinement: finalizing the database schema and focusing on performance optimizations to ensure everything runs as efficiently and reliably as possible. Once thats done, well be ready to roll out version **1.0**.
Of course, development doesnt stop there. The community has contributed hundreds of great ideas for improvements and new features, everything from subtle usability tweaks to entirely new integrations. You can see the full list of proposals over on our [GitHub issues](https://github.com/stalwartlabs/stalwart/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement). If theres something youd like to see prioritized, just give it a thumbs up as we plan to implement enhancements based on the communitys votes.
## Funding
@@ -161,6 +160,16 @@ Part of the development of this project was funded through:
If you find the project useful you can help by [becoming a sponsor](https://opencollective.com/stalwart). Thank you!
## Sponsorship
Your support is crucial in helping us continue to improve the project, add new features, and maintain the highest level of quality. By [becoming a sponsor](https://opencollective.com/stalwart), you help fund the development and future of Stalwart. As a thank-you, sponsors who contribute $5 per month or more will automatically receive a [Enterprise edition](https://stalw.art/enterprise/) license. And, sponsors who contribute $30 per month or more, also have access to [Premium Support](https://stalw.art/support) from Stalwart Labs.
These are some of our open-source sponsors:
<!-- sponsors --><a href="https://github.com/kbjr"><img src="https:&#x2F;&#x2F;github.com&#x2F;kbjr.png" width="60px" alt="User avatar: James Brumond" /></a><a href="https://github.com/MailRoute"><img src="https:&#x2F;&#x2F;github.com&#x2F;MailRoute.png" width="60px" alt="User avatar: MailRoute, Inc." /></a><a href="https://github.com/JAMflow-Cloud"><img src="https:&#x2F;&#x2F;github.com&#x2F;JAMflow-Cloud.png" width="60px" alt="User avatar: JAMflow Cloud" /></a><a href="https://github.com/starsong-consulting"><img src="https:&#x2F;&#x2F;github.com&#x2F;starsong-consulting.png" width="60px" alt="User avatar: Starsong GmbH" /></a><a href="https://github.com/mingfu-design"><img src="https:&#x2F;&#x2F;github.com&#x2F;mingfu-design.png" width="60px" alt="User avatar: Ming Fu Design Ltd. 明孚設計有限公司" /></a><a href="https://github.com/tamwuff"><img src="https:&#x2F;&#x2F;github.com&#x2F;tamwuff.png" width="60px" alt="User avatar: Tamino" /></a><a href="https://github.com/panascais"><img src="https:&#x2F;&#x2F;github.com&#x2F;panascais.png" width="60px" alt="User avatar: panascais" /></a><!-- sponsors -->
<br/>If you would like to support our work, please consider [becoming a sponsor](https://opencollective.com/stalwart).
## License
This project is dual-licensed under the **GNU Affero General Public License v3.0** (AGPL-3.0; as published by the Free Software Foundation) and the **Stalwart Enterprise License v1 (SELv1)**:

View File

@@ -21,7 +21,7 @@ mail-auth = { version = "0.7.1" }
mail-send = { version = "0.5", default-features = false, features = ["cram-md5", "ring", "tls12"] }
smtp-proto = { version = "0.2", features = ["rkyv"] }
dns-update = { version = "0.1.5" }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
ahash = { version = "0.8.2", features = ["serde"] }
parking_lot = "0.12.1"
regex = "1.7.0"

View File

@@ -8,7 +8,7 @@ trc = { path = "../trc" }
types = { path = "../types" }
hashify = "0.2.6"
quick-xml = { version = "0.38" }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
hyper = "1.6.0"
rkyv = { version = "0.8.10", features = ["little_endian"] }
@@ -16,7 +16,7 @@ chrono = { version = "0.4.40", features = ["serde"], optional = true }
compact_str = "0.9.0"
[dev-dependencies]
calcard = { path = "/Users/me/code/calcard", features = ["serde", "rkyv"] }
calcard = { version = "0.3.0", features = ["serde", "rkyv"] }
types = { path = "../types", features = ["test_mode"] }
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.138"

View File

@@ -14,7 +14,7 @@ directory = { path = "../directory" }
http_proto = { path = "../http-proto" }
types = { path = "../types" }
trc = { path = "../trc" }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
hashify = { version = "0.2" }
hyper = { version = "1.0.1", features = ["server", "http1", "http2"] }
percent-encoding = "2.3.1"

View File

@@ -12,7 +12,7 @@ types = { path = "../types" }
trc = { path = "../trc" }
nlp = { path = "../nlp" }
directory = { path = "../directory" }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
hashify = "0.2"
tokio = { version = "1.47", features = ["net", "macros"] }
rkyv = { version = "0.8.10", features = ["little_endian"] }

View File

@@ -10,7 +10,7 @@ utils = { path = "../utils" }
types = { path = "../types" }
trc = { path = "../trc" }
jmap-tools = { version = "0.1" }
calcard = { path = "/Users/me/code/calcard" }
calcard = { version = "0.3.0" }
mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
serde = { version = "1.0", features = ["derive"]}
ahash = { version = "0.8.2", features = ["serde"] }

View File

@@ -19,7 +19,7 @@ trc = { path = "../trc" }
spam-filter = { path = "../spam-filter" }
email = { path = "../email" }
groupware = { path = "../groupware" }
calcard = { path = "/Users/me/code/calcard" }
calcard = { version = "0.3.0" }
smtp-proto = { version = "0.2" }
mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
mail-builder = { version = "0.4" }

View File

@@ -19,7 +19,7 @@ dav-proto = { path = "../dav-proto" }
mail-parser = { version = "0.11", features = ["full_encoding"] }
mail-auth = { version = "0.7.1", features = ["rkyv"] }
sieve-rs = { version = "0.7", features = ["rkyv"] }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
tokio = { version = "1.47", features = ["net", "macros"] }
serde = { version = "1.0", features = ["derive"]}
serde_json = "1.0"

View File

@@ -19,7 +19,7 @@ smtp-proto = { version = "0.2", features = ["rkyv", "serde"] }
tokio = { version = "1.47", features = ["rt"] }
mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
mail-builder = { version = "0.4" }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
chrono = { version = "0.4", features = ["unstable-locales"] }
serde = { version = "1.0", features = ["derive"]}
serde_json = "1.0"

View File

@@ -30,7 +30,7 @@ imap_proto = { path = "../crates/imap-proto" }
types = { path = "../crates/types" }
dav = { path = "../crates/dav", features = ["test_mode"] }
dav-proto = { path = "../crates/dav-proto", features = ["test_mode"] }
calcard = { path = "/Users/me/code/calcard", features = ["rkyv"] }
calcard = { version = "0.3.0", features = ["rkyv"] }
groupware = { path = "../crates/groupware", features = ["test_mode"] }
http = { path = "../crates/http", features = ["test_mode", "enterprise"] }
http_proto = { path = "../crates/http-proto" }