Browse Source

Readme update: edit description and add features list

flashmob 8 years ago
parent
commit
e82cf8046e
1 changed files with 24 additions and 9 deletions
  1. 24 9
      README.md

+ 24 - 9
README.md

@@ -14,20 +14,35 @@ It's a small SMTP server written in Go, for the purpose of receiving large volum
 Written for GuerrillaMail.com which processes hundreds of thousands of emails
 Written for GuerrillaMail.com which processes hundreds of thousands of emails
 every hour.
 every hour.
 
 
-The purpose of this daemon is to grab the email, save it to the database
-and disconnect as quickly as possible.
+The purpose of this daemon is to grab the email, save it,
+and disconnect as quickly as possible, essentially performing the services of a
+Mail Transfer Agent (MTA).
 
 
-A typical user of this software would probably want to look into 
-`backends/guerrilla_db_redis.go` source file to use as an example to 
-customize for their own systems.
+A typical user of this software would probably use it as a package in their own
+Go project in order to receive and deliver email.
+
+Go-Guerrilla allows you to customize how the email is delivered. 
+
+Out of the box, Go-Guerrilla does not attempt to filter HTML, check for spam or do any 
+sender verification. However, it comes with a modular middleware-like backend system which 
+support a range of different features and ways of delivering email. 
+See the list of available _Processors_ below.
 
 
-This server does not attempt to filter HTML, check for spam or do any 
-sender verification. These steps should be performed by other programs,
- (or perhaps your own custom backend?).
-The server does not send any email including bounces.
 
 
 The software is using MIT License (MIT) - contributors welcome.
 The software is using MIT License (MIT) - contributors welcome.
 
 
+### Features
+
+- Multi-server. The daemon can spawn multiple servers at once, all sharing the same backend
+for saving email.
+- Config hot-reloading. Add/Remove/Enable/Disable servers without restarting. Reload TLS configuration, and most other settings on the fly.
+- Graceful shutdown: Minimise loss of email if you need to shutdown/restart.
+- Pooling: The daemon uses pooling where possible. It's friendly to the garbage collector.
+- Modular, component based, backend system for processing email that's easy to extend.  
+- Backend system arranged in a producer/consumer type structure, making use of Go's channels.
+- Fuzz tested.
+- Can be used as a package in your Go project.
+
 ### Roadmap / Contributing & Bounties
 ### Roadmap / Contributing & Bounties