⚠️ I have just open sourced Buzee. The documentation is lacking. Please open an issue and I'd be happy to help! ⚠️
The OCR capabilities in Buzee are built on top of Textra on Mac and WinOCR on Windows. Do check these repos out! I feel the native OCR capabilities of Mac and Windows are really good and should be used more!
Buzee (pronounced boozey) is a eight-year-old labrador retriever who can't play fetch but can love you like no other.
Buzee is also a full-text search application for your life. It helps you find your files, effortlessly.
Download v0.2.0 from this Releases page.
⎇ / Alt + Space anywhere to show/hide the app. Modify it in the settings.⌘ / Ctrl + F or K to go to the search bar from any screen.⌘ / Ctrl + Shift + S to go to the scratchpad from any screen.Documents: csv, docx, key, md, numbers, pages, pdf, pptx, txt, xlsx, xls
Images: jpg, jpeg, png, gif
Books: epub, mobi, azw3, pdf
Audio: mp3, wav, aac, flac, ogg
Video: mp4, mkv, avi, mov, wmv
invoice pdf)"annual report")"annual report" -2022 -pdf)Use the Date Range filter or simply mention the date/time period that you are looking for in your search. For example:
last month pdf invoiceannual report ppt this yearq2 2023 to q3 2023 retail report xlsxprelim findings from 2017 to 2022cv docx from march 2 2020 to aug 15 2020 -pdfscope study 14/02/2015 to 10/08/2015If you want to use a phrase as a keyword for search and not time, simply wrap it in quotes like this: invoice "March 2022"
Buzee 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.
npm install in the root directory.cargo install in the src-tauri directory.npm run tauri dev in the root directory to run the app in development mode.npm run tauri build in the root directory to build the app for production.Building on Windows requires a few changes. Follow these steps:
drag = { path = "./crates/drag", version = "0.4.0", features = [ "serde" ] } from Cargo.tomlcrate::drag::start_drag, from ipc.rsmod drag; from main.rsFinally, replace binaries/textra with binaries/winocr in tauri.conf.json.
Index:
(~) : partly implemented
(+) : has to be built from scratch
(?) : not sure if it will add great value
body table.Back-end:
Front-end:
See all dependencies in the Cargo.toml and package.json files.
document table. A central metadata table stores the metadata from files and eventually cloud services, emails etc. metadata and stored as the metadata_fts table.body table.src directory. All back-end code is in the src-tauri directory.Read the Vision and Roadmap.
I 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.
I 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.
If 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.
If you do do something with this project, please let me know. I would love to see what you build!
MIT