{"id":20122883,"url":"https://github.com/freaky/esc","last_synced_at":"2025-08-01T00:02:13.406Z","repository":{"id":142942506,"uuid":"147444512","full_name":"Freaky/esc","owner":"Freaky","description":"Email Search Command, because Email Sucks Completely","archived":false,"fork":false,"pushed_at":"2018-09-16T16:04:18.000Z","size":41,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-13T07:32:12.854Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Freaky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-05T01:54:16.000Z","updated_at":"2021-05-02T18:22:03.000Z","dependencies_parsed_at":"2023-04-07T07:01:01.078Z","dependency_job_id":null,"html_url":"https://github.com/Freaky/esc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fesc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fesc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fesc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fesc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Freaky","download_url":"https://codeload.github.com/Freaky/esc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241566203,"owners_count":19983263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T19:41:38.389Z","updated_at":"2025-03-02T20:26:03.746Z","avatar_url":"https://github.com/Freaky.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESC: Email Search Command\n\n## (Or: Email Sucks Completely)\n\nESC is a simple proof-of-concept toy I'm hacking together because I want to\nplay with [Tantivy] and would quite like a fast command-line email search tool.\n\nIt can index my ~2 million-strong `~/Maildir` in under three minutes on my 12\ncore Westmere Xeon with a couple of SSDs, and answer most queries in under 40ms.\n\nIf you want a *useful* email search tool, I recommend [notmuch].  I hacked most\nof this together while waiting for `notmuch new` to catch up a few tens of\nthousands of messages, and it needs a lot of love to be more than a vague\ncuriosity.\n\nThe name is a homage to [HSC], the static website generator I used in the late\n1990's.  Because why not.  Email does suck.\n\n### Synopsis\n\nIndexing is multithreaded: one walks your maildirs, `read-threads` threads read\nand parse the emails, and `index-threads` write them to the search index.  You\nshould adjust them to taste based on available IO and CPU and how much data you\nhave to index.\n\nIf no index directory is specified, it defaults to `/tmp/email-sucks-completely`.\n\n```\n-% esc -d ~/.local/esc index --read-threads=8 --index-threads=4 ~/Maildir\n[10000 23080.88/sec] 433.259025ms\n[20000 25133.71/sec] 795.74395ms\n...\n[2020000 14512.78/sec] 139.187685983s\n[2030000 14536.14/sec] 139.651889859s\nIndexed 2032748 messages in 143.837522255s\nFinal merge finished after 166.397419871s\n-%\n-% esc -d ~/.local/esc search \"notmuch mail\"\n/home/freaky/Maildir/.archive.2016.lists.notmuch/cur/1452984894.98194_0.voi.aagh.net:2,: Mail merge with notmuch\n/home/freaky/Maildir/.archive.2012.lists.freebsd-ports-bugs/cur/1330172492.25158_0.voi.nightsdawn.sf:2,: ports/165468: New port: mail/notmuch\n/home/freaky/Maildir/.archive.2016.lists.notmuch/cur/1453365489.20630_0.voi.aagh.net:2,: Re: Mail merge with notmuch\n...\nsearched in 40.005954ms\n```\n\n[Tantivy]: https://github.com/tantivy-search/tantivy\n[notmuch]: https://notmuchmail.org\n[HSC]: https://github.com/mbethke/hsc\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fesc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreaky%2Fesc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fesc/lists"}