mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
notmuch clon
70962fabf9
Xapian provides an interator-based interface to all search results. So it was natural to make notmuch_messages_t be iterator-based as well. Which we did originally. But we ran into a problem when we added two APIs, (_get_replies and _get_toplevel_messages), that want to return a messages iterator that's *not* based on a Xapian search result. My original compromise was to use notmuch_message_list_t as the basis for all returned messages iterators in the public interface. This had the problem of introducing extra latency at the beginning of a search for messages, (the call would block while iterating over all results from Xapian, converting to a message list). In this commit, we remove that initial conversion and instead provide two alternate implementations of notmuch_messages_t (one on top of a Xapian iterator and one on top of a message list). With this change, I tested a "notmuch search" returning *many* results as previously taking about 7 seconds before results started appearing, and now taking only 2 seconds. |
||
---|---|---|
contrib | ||
lib | ||
packaging/fedora | ||
.gitignore | ||
AUTHORS | ||
configure | ||
COPYING | ||
COPYING-GPL-3 | ||
debugger.c | ||
gmime-filter-reply.c | ||
gmime-filter-reply.h | ||
INSTALL | ||
Makefile | ||
Makefile.config | ||
Makefile.local | ||
notmuch-client.h | ||
notmuch-config.c | ||
notmuch-count.c | ||
notmuch-dump.c | ||
notmuch-new.c | ||
notmuch-reply.c | ||
notmuch-restore.c | ||
notmuch-search.c | ||
notmuch-setup.c | ||
notmuch-show.c | ||
notmuch-tag.c | ||
notmuch-time.c | ||
notmuch.1 | ||
notmuch.c | ||
notmuch.desktop | ||
notmuch.el | ||
query-string.c | ||
README | ||
show-message.c | ||
TODO |
Notmuch - thread-based email index, search and tagging. Notmuch is a system for indexing, searching, reading, and tagging large collections of email messages. It uses the Xapian library to provide fast, full-text search of very large collection of email with a very convenient search syntax. Notmuch is free software, released under the GNU General Public License version 3 (or later). Building notmuch ---------------- See the INSTALL file for notes on compiling and installing notmuch. Contacting users and developers ------------------------------- The website for Notmuch is: http://notmuchmail.org The mailing list address for the notmuch community is: notmuch@notmuchmail.org We welcome any sort of questions, comments, kudos, or code there. Subscription is not required, (but if you do subscribe you'll avoid any delay due to moderation). See the website for subscription information. There is also an IRC channel dedicated to talk about using and developing notmuch: IRC server: irc.freenode.net Channel: #notmuch Interface options ----------------- Notmuch includes a "notmuch" command-line interface to the system. This is not a very convenient interface and it is not expected that users will find it satisfying. Instead, there are two option for obtaining a more sophisticated interface: 1. Build on top of the "notmuch" command-line interface. This might be a reasonable option for a very text-oriented client environment. For example, an emacs-based interface for notmuch is already under development and is available in the notmuch.el file in this distribution. If someone were to write a curses-based interface, or similar, it might also be reasonable to build on the "notmuch" command-line interface. 2. Build on top of the notmuch library interface. This is a better choice for developing an interface that has full control of the presentation of email threads and messages. It is expected that anyone integrating Notmuch into an existing, graphical email program use the notmuch library interface. The public interface to the notmuch library is contained in the notmuch.h header file. The "notmuch" command-line program in notmuch.c can be used as good example code, since it is a simple program that is written on top of the library interface. As can be seen, alternate interfaces to the Notmuch mail system are still in development. We would appreciate any contributions to these efforts.