Files
EMLy/README.md

2.4 KiB

EMLy

EMLy is a lightweight, cross-platform EML (Email Message) viewer built with Wails, Go, and Svelte. It allows users to open and view .eml files, including support for viewing attachments like images and PDFs.

Requirements

Before developing or building EMLy, ensure you have the following installed:

  • Go: Version 1.24 or later (Project uses 1.24.4) - Download
  • Wails CLI: Version v2 - Installation Guide
  • Node.js: Required for the frontend build tools.
  • Bun: The project uses bun as the frontend package manager. - Install Bun
    • Install via: powershell -c "irm bun.sh/install.ps1 | iex" (Windows) or curl -fsSL https://bun.sh/install | bash (macOS/Linux).

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/EMLy.git
    cd EMLy
    
  2. Install frontend dependencies:

    cd frontend
    bun install
    cd ..
    

    Note: The Wails build process is configured to handle bun install automatically if you run wails build, but running it manually ensures your IDE is happy.

Live Development

To run the application in development mode with hot-reload:

wails dev
  • This starts the Go backend and a Vite development server for the frontend.
  • The application window will open automatically.
  • You can also access the frontend in a browser at http://localhost:34115 to debug with standard browser devtools (though backend calls will still route to the running Go process).

Building

To build a redistributable, production-ready binary:

wails build

The output binary will be located in the build/bin directory.

Cross-Compilation & Installers

The project contains configuration for building installers:

  • Windows: NSIS script located in build/windows/installer/project.nsi.
  • MacOS: Bundle configuration in build/darwin/.

To build with specific platform targets (if your environment supports it):

wails build -platform windows/amd64

Testing

Frontend Tests

Run the Svelte check to ensure type safety and valid Svelte code:

cd frontend
bun run check

Backend Tests

To run Go unit tests (if any are added to backend/) or standard Go tests:

go test ./...