Skip to content

msomierick/aromatic

Repository files navigation

Aromatic

Aromatic is a desktop-focused molecular analysis workbench built with Tauri, React, TypeScript, and RDKit.js. It turns SMILES strings into rich molecular representations, descriptors, and identifiers while keeping the workflow fast and offline-friendly. The app targets keyboard-and-mouse desktop workflows exclusively.

Features

  • Single-molecule tools for SMILES validation, SVG rendering, descriptor calculation, identifier export, and SMARTS substructure highlighting
  • Batch processor that ingests newline-delimited SMILES, renders SVG grids, reports per-molecule errors, and exports JSON summaries
  • Desktop settings panel backed by the Rust command API for theme selection and batch-processing limits with guardrails from shared constants
  • Lightweight RDKit.js integration with automatic post-install asset sync (scripts/setup-rdkit.js)

Project Layout

  • src/ – React frontend (routes, RDKit hooks, shadcn/ui components, Tailwind 4 styling)
  • src-tauri/ – Rust backend exposing config commands (load_config, save_config, get_config_constants)
  • public/ – Static assets, including the RDKit WASM bundle copied during yarn install
  • scripts/ – Utility scripts such as the RDKit asset bootstrapper

Prerequisites

  • Node.js 20+
  • Yarn
  • Rust toolchain with cargo (stable) and the system dependencies listed in the Tauri setup guide

Local Setup

  1. Install dependencies:
    yarn install
    The post-install script copies the required RDKit WASM/JS files into public/.
  2. Start the desktop app:
    yarn tauri dev
  3. (Optional) Run the Vite dev server without the Tauri shell:
    yarn dev

Documentation that dives deeper into configuration, RDKit integration, and architectural decisions lives in docs/ (see docs/rdkit-setup.md, docs/config-implementation.md, and the docs/specs/ directory).

Building

  • Bundle the React frontend only:
    yarn build
  • Produce a distributable desktop build:
    yarn tauri build

Configuration

  • Runtime configuration lives in ~/.config/aromatic/config.json (Linux) and is managed through the Settings view.
  • Validation limits and defaults originate from the Rust backend (src-tauri/src/config.rs) and are surfaced to the UI through get_config_constants.
  • Batch processing defaults (max molecules, SVG dimensions) can be adjusted in-app; limits are enforced on both the frontend hooks and backend.

Contributing

See CONTRIBUTING.md for development workflow, coding style, and pull request guidelines.

License

This project is licensed under the MIT License.

About

Aromatic is a desktop-focused molecular analysis workbench built with Tauri, React, TypeScript, and RDKit.js

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors