Skip to content

TagStudioDev/TagStudioRusted

 
 

Repository files navigation

Contributors Forks Stargazers Issues License


TagStudioAlpha

TagStudio

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
  1. About The Project
  2. Roadmap & Featureset
  3. Installation
  4. Contributing
  5. License
  6. Social & Contact
  7. Acknowledgments

About The Project

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.

(back to top)

Built With

  • Tauri
  • Rust
  • SvelteKit
  • Typescript
  • TailwindCSS
  • DaisyUI
  • Paraglide
  • SQLite

(back to top)

Philosophy

TagStudio is not a product. It is an idea. Here are the boundaries that define it.

(back to top)

Goals

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.

(back to top)

Priorities

  1. 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.
  2. 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.
  3. 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.
  4. (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.

(back to top)

Roadmap & Featureset

Note

This list is being expanded as we move forward with the project. Not all planned features are listed.

(back to top)

Top Priority

  • Have a working window
  • Build the app i18n ready (continous)
  • Have a mostly complete frontend
  • Expanding this list
  • LATER: Replace TagStudio upstream with TagStudioRusted

(back to top)

Low Priority

  • 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

(back to top)

Request a Feature

We currently accept no feature requests. Our top priority is to match the featureset of the upstream python version first.

(back to top)

Installation

This section will guide you through the requirements and installation of TagStudio.

(back to top)

Prerequisites

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:

Windows Mac Linux
x86_64
ARM
Portable

Feel free to build the project for the architecture and OS you need.

(back to top)

Building from Source

Note

This is currently the only installation method. Thanks Tauri's documentation, the OS specific installations are documented there.

(back to top)

Step 1.

  • 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).

(back to top)

Step 2.

  • Cloning the project
git clone https://github.com/TagStudioDev/TagStudioRusted.git
cd TagStudioRusted

(back to top)

Step 3.

  • 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

(back to top)

Step 5.

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.

(back to top)

Contributing

Please feel free to contribute according to our Roadmap and Bug Reports. Thank you for helping enchancing TagStudioRusted further!

(back to top)

Top contributors

They are the ❤️ of our Project


TagStudio Top Contributors

License

Distributed under the GPL-3.0 License. See LICENSE.txt for more information.

(back to top)

Social & Contact

  • Discord
  • CyanVoxelYT

Project Link: https://github.com/TagStudioDev/TagStudioRusted

(back to top)

Acknowledgments

(back to top)

About

A file and photo management application and system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Svelte 79.0%
  • Rust 7.9%
  • Nix 6.0%
  • JavaScript 2.1%
  • TypeScript 2.0%
  • Shell 1.2%
  • Other 1.8%