Gnus development mailing list
 help / color / mirror / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: ding@gnus.org
Subject: Re: Experimental new Maildir backend
Date: Sat, 16 Jan 2021 20:49:25 -0800	[thread overview]
Message-ID: <875z3w9nhm.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <86h7ngen1y.fsf@csic.es>

Juan José García-Ripoll <juanjose.garciaripoll@gmail.com> writes:

> Hi,
>
> apologies if this topic is redundant with some other proposal or effort,
> but I wanted to draw your attention to this small project of mine, and
> also request help to polish and possibly contribute it to Emacs.
>
> The project is called gnus-nnmaild and it is a new backend for Maildir
> spool directories. It can be found here
>
>    https://github.com/juanjosegarciaripoll/gnus-nnmaild

Very cool! It's great to see work on more backends. I'm also in the
process of putting together fixes for nnmaildir, so there might be a
little bit of redundancy in our work, but it looks like your approach is
a more drastic rethinking -- my changes are mostly incremental tweaks.

> I have developed it because the nnmaildir backend does not work on
> Windows, where "!" or ";" are used as flag separator in the file names
> because ":" is not an allowed character. It also solves additional
> problems with nnmaildir, namely that it creates one additional file for
> each message to store nov files, plus additional directories and links
> for other flags.

I didn't realize that nnmaildir doesn't work on Windows at all!

> Instead, I have adopted a brute-force philosophy, where all information
> is cached in a single Elisp file, which is updated when new files are
> found. That may seem a bit wasteful, but given SSD's it seems to be a
> very good compromise between space and speed.
>
> Feedback is really welcome. Also pull requests.

I saw on the github page that this is based off nnml code, and there are
several functions (moving messages, creating groups) that haven't been
implemented yet. I'm curious if you were able to use any of Gnus'
backend inheritance features -- are you having to write everything from
scratch? I haven't read the code yet...

I've been toying with the idea of using sqlite as a store for Gnus'
caches and data: it seems like that would get us the biggest speedup
possible. I don't think it's feasible for Gnus' built-in backends, since
vanilla Emacs doesn't come with anything for talking to sqlite, but if
you made this an installable package, it could require the "sqlite"
package and do it that way... Just a thought!

Eric



  reply	other threads:[~2021-01-17  4:50 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-16 18:47 Juan José García-Ripoll
2021-01-17  4:49 ` Eric Abrahamsen [this message]
2021-01-17  9:01   ` Juan José García-Ripoll
2021-01-17 21:33     ` Eric Abrahamsen
2021-01-18  9:39       ` Juan José García-Ripoll
2021-01-17 19:17   ` Eric S Fraga
2021-01-17 22:23     ` Eric Abrahamsen
2021-01-18 11:14       ` Eric S Fraga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875z3w9nhm.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).