Skip to content

trueLoving/Pixuli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

329 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

English

Pixuli - Intelligent Image Management Application

Name Origin: Pixuli is a combination of Picture + uli, representing our vision of intelligent and user-friendly image management.

License: MIT Required Node.JS >= 22.0.0 pnpm Live Demo Documentation

๐Ÿ“– Project Origin

The Pixuli project originated from two reasons:

  1. Practical Need: Image management issues encountered while operating a blog website, requiring unified storage, intelligent compression, and batch processing capabilities.
  2. Project Experience: Based on previous experience developing an image management application with Vue3, decided to reimplement using the React technology stack to experience different framework design philosophies, and expand and optimize functionality on this basis.

๐Ÿ–ผ๏ธ Project Overview

Pixuli is an image management solution based on a Monorepo architecture, supporting multi-platform deployment:

  • ๐Ÿ–ฅ๏ธ Desktop: Cross-platform desktop application built with Electron + React + TypeScript + Rust (WASM)
  • ๐ŸŒ Web: Web application built with Vite + React + TypeScript, supporting PWA
  • ๐Ÿ“ฑ Mobile: Mobile application built with React Native + Expo

Core Technology Stack:

  • Frontend: React 19.1.0 + TypeScript + Vite
  • Desktop: Electron
  • Mobile: React Native + Expo
  • Image Processing: Rust (WASM) + NAPI-RS
  • State Management: Zustand
  • UI Components: Shared component library
  • Cloud Storage: GitHub / Gitee

โœจ Key Features

Feature Module Description
๐Ÿ“ธ Image Management Smart browsing, drag-and-drop upload, batch operations, tagging system, search functionality, metadata editing, fullscreen preview, slideshow playback
๐Ÿ”ง Image Processing WebP compression, format conversion, size adjustment, batch processing, pre-upload compression
โ˜๏ธ Cloud Storage GitHub integration, Gitee integration, storage source switching, configuration management, version control, metadata storage
๐ŸŽจ User Experience Theme switching, multi-language support, keyboard shortcuts, responsive design, PWA support

๐Ÿ—๏ธ Project Structure

Pixuli/
โ”œโ”€โ”€ apps/                     # Applications
โ”‚   โ”œโ”€โ”€ desktop/               # Desktop application (Electron + React)
โ”‚   โ”œโ”€โ”€ web/                   # Web application (Vite + React)
โ”‚   โ””โ”€โ”€ mobile/                # Mobile application (React Native + Expo)
โ”œโ”€โ”€ packages/                 # Shared packages
โ”‚   โ”œโ”€โ”€ ui/                    # UI component library
โ”‚   โ””โ”€โ”€ wasm/                  # WASM module (Rust)
โ”œโ”€โ”€ benchmark/                # Performance testing
โ””โ”€โ”€ pnpm-workspace.yaml       # Workspace configuration

๐Ÿš€ Quick Start

Requirements

  • Node.js >= 22.0.0
  • pnpm >= 8.0.0 (Required, project only supports pnpm)
  • Git >= 2.0.0
  • Rust >= 1.70.0 (For building WASM modules, desktop only)
  • Android Studio (For Android development, mobile only)
  • XCode (For iOS development, mobile only)

Installation and Running

# Clone the project
git clone https://github.com/trueLoving/Pixuli.git
cd Pixuli

# Install dependencies
pnpm install

# Build WASM module (desktop only)
pnpm build:wasm

# Start development mode
pnpm dev:web      # Web (http://localhost:5500)
pnpm dev:desktop  # Desktop
pnpm dev:mobile --android   # Mobile Android
pnpm dev:mobile --ios   # Mobile iOS

Detailed Development Guide

Want to learn more about development details? Check out our contributing guide:

  • Contributing Guide - Complete development guide covering all platforms (Desktop, Web, Mobile)

๐Ÿ“ฆ Downloads

๐Ÿ–ฅ๏ธ Desktop

Desktop application supports Windows and macOS platforms, available through:

Platform Download Method Description
Windows GitHub Releases Download .exe installer
macOS Intel GitHub Releases Download mac-x64 version .dmg
macOS Apple Silicon GitHub Releases Download mac-arm64 version .dmg

System Requirements:

  • Windows: Windows 10/11 (64-bit), 4GB RAM, 2GB available disk space
  • macOS: macOS 10.15+, 4GB RAM, 2GB available disk space

๐ŸŒ Web

Web application supports online access and Docker deployment:

Method Link/Description Description
Online Access Live Demo Direct access, no installation required
Docker Docker Hub Deploy using Docker

Docker Deployment

# Pull and run the latest version
docker run -d -p 8080:80 --name pixuli-web trueloving/pixuli-web:latest

# Or use a specific version
docker run -d -p 8080:80 --name pixuli-web trueloving/pixuli-web:1.0.0

๐Ÿ“ฑ Mobile

Mobile application supports iOS and Android platforms, available through:

Platform Download Method Description
Android GitHub Releases Download .apk installer

System Requirements:

  • Android: Android 8.0 (API 26) or higher

๐Ÿ“š Documentation

Documentation Type Documentation Link Description
User Guides GitHub Wiki Complete user documentation and tutorials
Feature Docs App Documentation App features and usage (Web & Desktop)
Mobile Documentation Mobile features and usage
Development Docs Contributing Guide Complete development guide
Changelog Changelog Complete version history

๐Ÿ™ Acknowledgments

  • Electron - Cross-platform desktop application framework
  • React - User interface library
  • React Native - Mobile application framework
  • Vite - Fast build tool
  • Rust - High-performance systems programming language
  • NAPI-RS - Node.js native module bindings
  • image-rs - Rust image processing library
  • Zustand - Lightweight state management
  • pnpm - Fast, disk space efficient package manager

โญ If this project is helpful to you, please give us a star!

About

๐Ÿ–ผ๏ธ Pixuli - AI-based image analysis, automatic tag generation, and batch processing.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors