blob: 9b3ea2b2bd6c64b3254e324f9da53ace8cb3960b (
plain)
[[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
# Notmuch Language Bindings [DRAFT]
The Notmuch library, `libnotmuch`, can be used from many programming
languages using the Notmuch language bindings. The [command line
interface](https://notmuchmail.org/doc/latest/man1/notmuch.html) and
the [[email clients and frontends|frontends]] are based on the
language bindings.
[[!toc levels=2]]
## C and C++
`libnotmuch` is a shared C library. [The API](https://git.notmuchmail.org/git/notmuch/tree/lib/notmuch.h)
The Notmuch command-line interface is based on the C library.
## Python
Notmuch includes Python bindings to the Notmuch shared library. Please refer to
the nice and extensive [Notmuch Python API
documentation](https://notmuchmail.org/doc/latest/python-bindings.html).
The bindings are very simple to use. As an example, given you have the Python
bindings installed (or simply set your PYTHONPATH environment variable to point
to the .../bindings/python directory), this snippet will produce a list of mails
matching the given expression:
>>> from notmuch2 import Database
>>> db = Database()
>>> messages = list(db.messages('tag:inbox AND NOT tag:killed'))
[...]
[The source](https://git.notmuchmail.org/git/notmuch/tree/bindings/python-cffi/)
## Ruby
[The source](https://git.notmuchmail.org/git/notmuch/tree/bindings/ruby/)
The [client for
vim](https://git.notmuchmail.org/git/notmuch/tree/vim/README) is in Ruby,
so worth a look.
## Go
[The source](https://git.notmuchmail.org/git/notmuch/tree/contrib/go/)
|