diff options
author | Eric Wong <e@80x24.org> | 2017-06-08 21:54:43 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2017-06-08 21:54:43 +0000 |
commit | 18c001fec61daa1413cdc35af4a14266979cc4b5 (patch) | |
tree | 3696a08701c61fd04c583c3c71dad77445b2d129 | |
parent | 60d44c494c90c2e2afb3087d70d5cf6a1384e4d2 (diff) | |
download | msgthr-18c001fec61daa1413cdc35af4a14266979cc4b5.tar.gz |
Mainly, we want to emphasize the container-agnosticism over the non-recursive nature of our algorithm; as the former will likely be more appealing to those not familiar with message threading at all.
-rw-r--r-- | README | 69 | ||||
-rw-r--r-- | msgthr.gemspec | 2 |
2 files changed, 46 insertions, 25 deletions
@@ -1,36 +1,53 @@ -msgthr - non-recursive, container-agnostic message threading +msgthr - container-agnostic, non-recursive message threading ------------------------------------------------------------ -Message threading based on the algorithm described by JWZ in -<https://www.jwz.org/doc/threading.html> and used in -countless mail and news readers; but with some features -removed and improved flexibility: +Pure Ruby message threading based on the algorithm described by +JWZ in <https://www.jwz.org/doc/threading.html> and used in +countless mail and news readers; but with some features removed +and improved flexibility: + +* Message format-agnostic, not limited to email or NNTP; + but even appropriate for forums, blog comments, IM, etc. + For mail and NNTP messages, that means you must extract + the Message-ID and parse the References and In-Reply-To + headers into an array yourself. + +* No recursion; all algorithms are non-recursive to avoid + SystemStackError exceptions in deep message threads. + Memory usage is bound by the number of lightweight containers + needed to represent a thread. * No pruning of non-leaf ghosts. Readers are not shielded from deleted or lost messages. Equivalent to setting "hide_missing" to "no" in mutt. -* No grouping by subject. This makes things ideal for short +* No grouping by subject[1]. This makes things ideal for short messages such as chat and status updates. For email, this encourages the use of proper client which set In-Reply-To - or References headers. Equivalent to setting - "strict_threads" to "yes" in mutt. - -* No recursion; all algorithms are non-recursive to avoid - SystemStackError exceptions in deep threads. - Memory usage is bound by the number of lightweight containers - needed to represent a thread. + or References headers. Equivalent to setting "strict_threads" + to "yes" in mutt. -* Message format-agnostic, not limited to email or NNTP; - but even appropriate for forums, blog comments, IM, etc. - For mail and NNTP messages, that means you must extract - the Message-ID and parse the References and In-Reply-To - headers into an array yourself. + [1] - Instead, messages with the same Subject can be grouped + by a search engine. For email, this would be done using + a mail search engine like notmuch or mairix. Source code ----------- +Our Ruby 1.9.3+ compatible code is available via git, +no C compiler or other dependencies are required: + git clone git://80x24.org/msgthr + git clone https://80x24.org/msgthr.git + +Releases may be downloaded via RubyGems: + + gem fetch [-v VERSION] msgthr + +The code used in this Ruby library was originally derived from +the Mail::Thread module for Perl 5.x: + + https://metacpan.org/release/Mail-Thread Contact ------- @@ -42,10 +59,12 @@ and pull requests to the open-to-all mailing list at: msgthr-public@80x24.org No subscription will ever be required to post. Please Cc: all -recipients as subscription is not necessary. +recipients as subscription will never be necessary. + +Mailing list archives are available via HTTPS and NNTP: -Mailing list archives via HTTPS: https://80x24.org/msgthr-public/ -Or NNTP: nntp://news.public-inbox.org/inbox.comp.lang.ruby.msgthr + https://80x24.org/msgthr-public/ + nntp://news.public-inbox.org/inbox.comp.lang.ruby.msgthr You may optionally subscribe, but will never be required to: @@ -53,14 +72,16 @@ You may optionally subscribe, but will never be required to: This README is our homepage, we would rather be working on cool stuff day than worrying about the next browser vulnerability -because HTML/CSS/JS/images are too complicated for us. +because CSS/JS/images are all too complicated for us. + +RDoc API documentation in simple HTML is available at: -* https://80x24.org/msgthr/README + https://80x24.org/msgthr/rdoc/ Copyright --------- -Copyright 2016, all contributors (see git repo). +Copyright 2016-2017, all contributors (see git repo). License: GPL-2.0+ <https://www.gnu.org/licenses/gpl-2.0.txt> msgthr is copyrighted Free Software by all contributors, see logs in diff --git a/msgthr.gemspec b/msgthr.gemspec index 0bb591e..ab0cd74 100644 --- a/msgthr.gemspec +++ b/msgthr.gemspec @@ -6,7 +6,7 @@ Gem::Specification.new do |s| s.name = %q{msgthr} s.version = ENV['VERSION'] || '0.0.0' s.authors = ['msgthr hackers'] - s.summary = 'non-recursive, container-agnostic message threading' + s.summary = 'container-agnostic, non-recursive message threading' s.description = File.read('README').split(/\n\n/)[1].strip s.email = %q{msgthr-public@80x24.org} s.homepage = 'https://80x24.org/msgthr/' |