{"id":23444746,"url":"https://github.com/gsidhu/buzee-tauri","last_synced_at":"2025-10-07T13:10:58.144Z","repository":{"id":268150410,"uuid":"766989409","full_name":"gsidhu/buzee-tauri","owner":"gsidhu","description":"A superfast full-text search application","archived":false,"fork":false,"pushed_at":"2024-12-18T13:24:49.000Z","size":32293,"stargazers_count":1083,"open_issues_count":6,"forks_count":59,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-14T00:57:29.032Z","etag":null,"topics":["rust","search","svelte","tauri"],"latest_commit_sha":null,"homepage":"https://buzee.co","language":"Svelte","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/gsidhu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-03-04T14:03:03.000Z","updated_at":"2025-04-13T17:08:43.000Z","dependencies_parsed_at":"2025-01-17T03:05:51.223Z","dependency_job_id":"e53f9723-8796-42f8-ae48-15961913e5e1","html_url":"https://github.com/gsidhu/buzee-tauri","commit_stats":{"total_commits":153,"total_committers":2,"mean_commits":76.5,"dds":0.0065359477124182774,"last_synced_commit":"296e44e4ce572fbc9ed14dad66bbd256a0337113"},"previous_names":["gsidhu/buzee-tauri"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsidhu%2Fbuzee-tauri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsidhu%2Fbuzee-tauri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsidhu%2Fbuzee-tauri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsidhu%2Fbuzee-tauri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsidhu","download_url":"https://codeload.github.com/gsidhu/buzee-tauri/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259369,"owners_count":22040819,"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":["rust","search","svelte","tauri"],"created_at":"2024-12-23T19:02:01.813Z","updated_at":"2025-10-07T13:10:53.098Z","avatar_url":"https://github.com/gsidhu.png","language":"Svelte","funding_links":[],"categories":["Svelte"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg height=150 src=\"./static/Buzee Logo.png\" /\u003e\n\n\u003cp align=\"center\"\u003e\u003cspan\u003eFull-text search app for Mac and Windows\u003c/span\u003e\u003c/p\u003e\n\nDownload the latest release from the [Buzee website](https://buzee.co/).\n\n![Static Badge](https://img.shields.io/badge/Svelte%20v4-framework-orange?logo=svelte)\n![Static Badge](https://img.shields.io/badge/Tauri%20v2-framework-blue?logo=tauri)\n![Rust](https://img.shields.io/badge/Rust-lang-black.svg?style=flat\u0026logo=rust)\n\n![GitHub License](https://img.shields.io/github/license/gsidhu/buzee-tauri)\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/gsidhu/buzee-releases/total)\n\n\u003c/div\u003e\n\n\u003e ⚠️ I have _just_ open sourced Buzee. The documentation is lacking. Please open an issue and I'd be happy to help! ⚠️\n\n\u003e The OCR capabilities in Buzee are built on top of [Textra on Mac](https://github.com/freedmand/textra) and [WinOCR on Windows](https://github.com/gsidhu/winocr_cli). Do check these repos out! I feel the native OCR capabilities of Mac and Windows are really good and should be used more!\n\n## What is Buzee?\n\nBuzee (pronounced _boozey_) is a eight-year-old labrador retriever who can't play fetch but can love you like no other.\n\nBuzee is also a full-text search application for your life. It helps you find your files, effortlessly.\n\nDownload v0.2.0 from this [Releases](https://github.com/gsidhu/buzee-releases/releases) page.\n\n## Screenshots\n\n\u003cdiv style=\"display:flex\"\u003e\n  \u003cimg src=\"./static/Screenshot1.png\" width=25% /\u003e\n  \u003cimg src=\"./static/Screenshot2.png\" width=25% /\u003e\n  \u003cimg src=\"./static/Screenshot3.png\" width=25% /\u003e\n  \u003cimg src=\"./static/Screenshot4.png\" width=25% /\u003e\n\u003c/div\u003e\n\n\n## Features\n- Fast, full-text search for all your documents, images, audio, video, folders, and browser history.\n- Search all local documents and folders by keyword, time, type, or any combination of these.\n- Ignore specific files or folders from being indexed. Or ignore only their content.\n- Global shortcut. Press `⎇ / Alt + Space` anywhere to show/hide the app. Modify it in the settings.\n- In the app, press `⌘ / Ctrl + F or K` to go to the search bar from any screen.\n- In the app, press `⌘ / Ctrl + Shift + S` to go to the scratchpad from any screen.\n- View statistics about your files and get your Unique Document Profile.\n- Sub-features:\n  - Extract text from PDFs and Images using OCR.\n  - Use a Scratch Pad to quickly jot down notes.\n- Automatically syncs with changes on your filesystem.\n- Lightweight installation package and low memory usage.\n- Supports these default file types:\n```\nDocuments: csv, docx, key, md, numbers, pages, pdf, pptx, txt, xlsx, xls\nImages: jpg, jpeg, png, gif\nBooks: epub, mobi, azw3, pdf\nAudio: mp3, wav, aac, flac, ogg\nVideo: mp4, mkv, avi, mov, wmv\n```\n\n### Semantic Search (somewhat)\n#### Include/Exclude from Search\n- Use the Filetype filter or simply type it in the search (like `invoice pdf`)\n- Put quotes around keyword(s) to search for the exact phrase (like `\"annual report\"`)\n- Put a hyphen in front of the keyword to exclude it from search (like `\"annual report\" -2022 -pdf`)\n\n#### Search using Time\nUse the Date Range filter or simply mention the date/time period that you are looking for in your search. For example:\n\n- \u003ccode\u003e\u003cstrong\u003elast month\u003c/strong\u003e pdf invoice\u003c/code\u003e\n- \u003ccode\u003eannual report ppt \u003cstrong\u003ethis year\u003c/strong\u003e\u003c/code\u003e\n- \u003ccode\u003e\u003cstrong\u003eq2 2023 to q3 2023\u003c/strong\u003e retail report xlsx\u003c/code\u003e\n- \u003ccode\u003eprelim findings \u003cstrong\u003efrom 2017 to 2022\u003c/strong\u003e\u003c/code\u003e\n- \u003ccode\u003ecv docx \u003cstrong\u003efrom march 2 2020 to aug 15 2020\u003c/strong\u003e -pdf\u003c/code\u003e\n- \u003ccode\u003escope study \u003cstrong\u003e14/02/2015 to 10/08/2015\u003c/strong\u003e\u003c/code\u003e\n\nIf you want to use a phrase as a keyword for search and not time, simply wrap it in quotes like this: `invoice \"March 2022\"`\n\n## Building from Source\nBuzee works best on Mac. Windows may throw up some issues because I haven't had a change to properly test it. Linux is untested entirely, so you're on your own there.\n\n1. Clone the repository.\n2. Install Rust and NodeJS.\n3. Run `npm install` in the root directory.\n4. Run `cargo install` in the `src-tauri` directory.\n5. Run `npm run tauri dev` in the root directory to run the app in development mode.\n6. Run `npm run tauri build` in the root directory to build the app for production.\n\n### Building on Windows\nBuilding on Windows requires a few changes. Follow these steps:\n\n1. Remove `drag = { path = \"./crates/drag\", version = \"0.4.0\", features = [ \"serde\" ] }` from [`Cargo.toml`](https://github.com/gsidhu/buzee-tauri/blob/main/src-tauri/Cargo.toml#L28C1-L28C77)\n2. Comment out `crate::drag::start_drag,` from [`ipc.rs`](https://github.com/gsidhu/buzee-tauri/blob/main/src-tauri/src/ipc.rs#L506C7-L506C31)\n3. Comment out `mod drag;` from [`main.rs`](https://github.com/gsidhu/buzee-tauri/blob/main/src-tauri/src/main.rs#L30)\n\nFinally, replace `binaries/textra` with `binaries/winocr` in [`tauri.conf.json`](https://github.com/gsidhu/buzee-tauri/blob/main/src-tauri/tauri.conf.json#L38).\n\n---\n\n## TODO / Known Issues\n```\nIndex:\n(~) : partly implemented\n(+) : has to be built from scratch\n(?) : not sure if it will add great value\n```\n\n- (~) Show matching text for search results by reading from the `body` table.\n- (~) Browser history search should support complex queries the way document search does.\n- (~) Icon view should load thumbnails in an efficient, non-blocking manner. Thumbnails should show up on the page as they are loaded.\n- (~) Enable adding 'comments' to documents.\n- (~) Enable pinning documents/folders to the top of search results.\n- (~) Allow user to add or remove supported file types.\n- (~) Allow user to switch between profiles on Arc and Chrome. (Currently uses the default profile)\n- (~) Test for Linux.\n- (~) Improve the speed of parsing PDFs, Images and XLSX files. Especially OCR operations.\n- (+) Enable adding 'tags' to documents.\n- (+) Create a 'Dashboard' view that shows statistics, pinned documents, and recent searches.\n- (+) Add tests to the codebase.\n- (?) Record frecency of documents and use it to sort search results.\n\n## Tech Stack\n### Dependencies\nBack-end:\n- Rust \n- Tauri v2\n- SQLite\n- Tantivy\n\nFront-end:\n- Svelte 4 using TypeScript\n- shadcn-svelte\n- TailwindCSS\n\nSee all dependencies in the [Cargo.toml](/src-tauri/Cargo.toml) and [package.json](/package.json) files.\n\n### Architecture\n- All file metadata is stored in SQLite in the `document` table. A central `metadata` table stores the metadata from files and eventually cloud services, emails etc. \n- A full-text index is created on `metadata` and stored as the `metadata_fts` table.\n- Parsed text from documents is stored in the `body` table.\n- A full-text index is created in Tantivy at the same time.\n- The Firefox, Chrome and Arc history is searched using their respective history databases directly.\n- All front-end code is in the `src` directory. All back-end code is in the `src-tauri` directory.\n\n## Contributing / Way Forward\nRead the [Vision and Roadmap](./VISION\u0026ROADMAP).\n\nI have spent two years building this project. It started as an Electron app, then I switched to Tauri for performance gains. When I started I barely new JavaScript and Svelte. Over the course of development, I learned NodeJS, TypeScript, SQLite, Rust, Tauri, Tantivy, and many other technologies. I learned so much about managing a project of this size and complexity. I am proud of what I have built but I am more proud of what I have learned.\n\nI am now letting go of this project because I have other priorities. Please feel free to do with this project as you wish. I am happy to help you get started with the codebase.\n\nIf nothing else, this project can serve as an example of how to build a full-text search engine using Tauri and Tantivy. There are several tiny features and performance workarounds that I have implemented that you might find useful.\n\nIf you do do something with this project, please let me know. I would love to see what you build!\n\n## License\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsidhu%2Fbuzee-tauri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsidhu%2Fbuzee-tauri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsidhu%2Fbuzee-tauri/lists"}