An EXPERIMENTAL Rust Rewrite of TagStudio,
A User-Focused Photo & File Organizing System
Join The Discord
Releases
·
Report Bug
·
Visit The OG Version
Table of Contents
Caution
THIS IS AN EXPERIMENTAL, UNCOMPLETED, PRE-ALPHA VERSION
Please be aware, that this is not anywhere near to be released. Eventually we are planning to replace the upstream python version with TagStudioRusted, but that is still far away. Until an actually useable alpha release, TagStudioRusted is recommended for Contributors only.
Product Name Screenshot
Current Dashboard of TagStudioRusted running on (Arch) Linux
TagStudio is a photo & file organization application with an underlying system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure.
TagStudio is not a product. It is an idea. Here are the boundaries that define it.
Note
TLDR: Portable. Private. Open. Extensible. Feature-rich. Powerful. Fast. Reliable. Lightweight. Scalable. Cross-platform. Beautiful. Tags. Lots of em.
Neat, right?
- To achieve a portable, privacy-oriented, open, extensible, and feature-rich system of organizing and rediscovering files.
- To provide powerful methods for organization, notably the concept of tag composition, or “taggable tags”.
- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or otherwise requiring them to change their existing file structures and workflows.
- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries.
- To make the darn thing look like nice, too. It’s 2024, not 1994.
- The concept. Even if TagStudio as a project or application fails, I’d hope that the idea lives on in a superior project. The goals outlined above don’t reference TagStudio once - TagStudio is what references the goals.
- The system. Frontends and implementations can vary, as they should. The core underlying metadata management system is what should be interoperable between different frontends, programs, and operating systems. A standard implementation for this should settle as development continues. This opens up the doors for improved and varied clients, integration with third-party applications, and more.
- The application. If nothing else, TagStudio the application serves as the first (and so far only) implementation for this system of metadata management. This has the responsibility of doing the idea justice and showing just what’s possible when it comes to user file management.
- (The name.) I think it’s fine for an app or client, but it doesn’t really make sense for a system or standard. I suppose this will evolve with time.
Note
This list is being expanded as we move forward with the project. Not all planned features are listed.
- Have a working window
- Build the app i18n ready (continous)
- Have a mostly complete frontend
- Expanding this list
- LATER: Replace TagStudio upstream with TagStudioRusted
- Start working on backend (only after having a somewhat useable frontend)
- Translations
- English (native)
- German
- French
- Spanish
- Make a template for community translations
- Themes
- Additional Themes
- Easy Theme Hue Adjustion
- Fully Custom Themes
We currently accept no feature requests. Our top priority is to match the featureset of the upstream python version first.
This section will guide you through the requirements and installation of TagStudio.
Caution
There are currently no official builds for the project yet. We do, however develop TagStudioRusted with Cross-platform support in mind. You can build then project for yourself on any platform, and open a Bug Report issue in case you find something unusual. After we get to a point, where this build is somewhat usable, we will have prebuilt binaries available to download. Binaries System Support:
x86_64 | ❌ | ❌ | ❌ |
ARM | ❌ | ❌ | ❌ |
Portable | ❌ | ❌ | ❌ |
Feel free to build the project for the architecture and OS you need.
Note
This is currently the only installation method. Thanks Tauri's documentation, the OS specific installations are documented there.
- Installing Tauri and Rust according to Tauri's documentation
- We also intend to use a JavaScript frontend framework, so we need Node.js installed as well (also in the docs above).
- Cloning the project
git clone https://github.com/TagStudioDev/TagStudioRusted.git
cd TagStudioRusted
- Installing packages @@ -78,6 +220,8 @@ cd TagStudio pnpm install
<p align="right">(<a href="#readme-top">back to top</a>)</p>
### Step 4.
- You can now run a dev server, or build the project.
@@ -96,7 +240,96 @@ pnpm tauri dev
pnpm tauri build
Warning
You may need the WEBKIT_DISABLE_COMPOSITING_MODE=1
AND/OR WEBKIT_DISABLE_DMABUF_RENDERER=1
enviroment variable while running the command below if you get a blank screen.
- Locate the binary in
/src-tauri/target/release/bundle
, pray and then run it.
Please feel free to contribute according to our Roadmap and Bug Reports. Thank you for helping enchancing TagStudioRusted further!
Distributed under the GPL-3.0 License. See LICENSE.txt
for more information.
Project Link: https://github.com/TagStudioDev/TagStudioRusted