Skip to content
This repository was archived by the owner on Nov 30, 2025. It is now read-only.

Latest commit

 

History

History
87 lines (63 loc) · 2.88 KB

File metadata and controls

87 lines (63 loc) · 2.88 KB

Placy

⚠️ Deprecated: This project has been deprecated in favor of PlacyAPI, which is fully rewritten in Rust. The Java version of Placy will no longer receive updates or support.

Java Spring Boot License

A high-performance file transformation service that replaces placeholders in files and archives. Built for speed and efficiency with support for large files (100MB+) and extensive file format compatibility.

Features

  • Wide Format Support: Archives (JAR, ZIP, TAR), documents (Word, Excel, PDF), images, text files, and Java bytecode
  • High Performance: Streaming architecture with parallel processing for large files
  • Smart Caching: Near-instant processing of repeated operations
  • Memory Efficient: Processes large files without loading entirely into memory
  • Enterprise Security: API key authentication and HTTPS support

Supported File Types

Archives: JAR, WAR, EAR, ZIP, TAR, 7Z, GZIP and more
Documents: Word (.docx), Excel (.xlsx), PowerPoint (.pptx), PDF
Images: JPEG, PNG, TIFF, GIF with metadata editing
Text Files: All programming languages, config files, markup
Java: Class file transformation using ASM

Quick Start

  1. Download and run

    wget https://github.com/Harfull/placy/releases/latest/download/Placy.jar
    java -jar Placy.jar
  2. Transform a file

    curl -X POST http://localhost:8080/api/v1/transform \
      -H "Content-Type: multipart/form-data" \
      -F "file=@your-file.jar" \
      -F 'placeholders={"${VERSION}":"1.2.3","${ENV}":"production"}'

Configuration

Set optional environment variables:

export SERVER_PORT=8080          # Default port
export SECRET_KEY=your-key       # Optional API key protection  
export HTTPS_ENABLED=false       # Enable HTTPS
export ASYNC_PROCESSING=false    # Enable async processing

API Reference

Endpoint: POST /api/v1/transform

Headers:

  • Content-Type: multipart/form-data
  • X-Secret-Key: your-key (if SECRET_KEY is set)

Parameters:

  • file: The file to transform
  • placeholders: JSON object with placeholder mappings

Response: Transformed file as binary data or JSON error

Performance Features

  • Streaming I/O: Handles large files without memory issues
  • Parallel Processing: Automatic for files >10MB
  • Smart Caching: File type detection and processing results
  • Asynchronous Mode: Optional concurrent processing for maximum throughput

Development

git clone https://github.com/Harfull/placy.git
cd placy
./gradlew build
./gradlew bootRun    # Development server
./gradlew test       # Run tests

License

MIT License - see LICENSE file for details.