⚠️ 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 invoice
annual report ppt this year
q2 2023 to q3 2023 retail report xlsx
prelim findings from 2017 to 2022
cv docx from march 2 2020 to aug 15 2020 -pdf
scope study 14/02/2015 to 10/08/2015
If 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.toml
crate::drag::start_drag,
from ipc.rs
mod drag;
from main.rs
Finally, 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