Skip to content

elan8/compute42

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compute42

Compute42 Icon

Compute42 is a modern, fast, and focused IDE tailored for Julia developers, built with Tauri 2 (Rust backend) and Vue 3 (frontend) with Naive UI and Monaco Editor.

Features

Core Functionality

  • Julia File Execution: Execute Julia files directly from the editor
  • Notebook Support: Full Jupyter notebook support with interactive execution
  • Plot Viewer: Visualize plots and graphics generated by Julia code
  • Variable Viewer: Inspect and explore variables in your Julia workspace
  • Project Management: Automatic Julia project detection and environment management
  • Package Management: Manage Julia packages
  • Language Server: Integrated Julia Language Server
  • Terminal Integration: Native terminal with Julia REPL support
  • File Explorer: Project file management with Julia project detection
  • CSV Viewer: Built-in CSV file viewer
  • Image Viewer: Image file viewing capability

User Interface

  • Dark Theme: Professional dark mode interface with Julia green accents (#389826)
  • Split Panes: Resizable layout with file explorer and editor
  • Navigation Rail: Compact sidebar with navigation icons
  • Responsive Design: Adaptive layout for different screen sizes
  • Monaco Editor: Full-featured code editor with Julia syntax highlighting

Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Frontend      │    │   Tauri         │    │    Julia        │
│   (Vue 3)       │◄──►│   Backend       │◄──►│   Process       │
│   + Monaco      │    │   (Rust)        │    │                 │
│   + Naive UI    │    │                 │    |                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌─────────────────┐
                       │   Actor         │
                       │   System        │
                       │   (Actix)       │
                       └─────────────────┘

Technology Stack

Frontend

  • Vue 3: Modern reactive framework with Composition API
  • Naive UI: Professional component library
  • Monaco Editor: Full-featured code editor
  • xterm.js: Terminal emulation
  • Pinia: State management
  • Vue Router: Client-side routing
  • TypeScript: Type-safe development

Backend

  • Rust: High-performance system programming
  • Tauri: Cross-platform desktop framework
  • Tokio: Async runtime for concurrent operations
  • Actix: Actor system for service coordination
  • tree-sitter: Syntax parsing with tree-sitter-julia

Julia Integration

  • Julia Process Management: Direct Julia process spawning and management
  • LanguageServer.jl: Integrated language server via LSP protocol
  • Stream Communication: Real-time communication with Julia processes
  • Project Management: Automatic Julia project detection and environment activation

Quick Start

Prerequisites

  • Rust (latest stable)
  • Node.js 18+ and npm

Development Setup

  1. Clone the repository:

    git clone <repository-url>
    cd open-source
  2. Install frontend dependencies:

    cd app
    npm install
  3. Run in development mode:

    npm run tauri dev

Building

Windows:

cd app
npm run tauri build

Linux/macOS:

cd app
npm run tauri build

Project Structure

open-source/
├── app/                 # Tauri application with Vue 3 frontend
│   ├── src/            # Frontend source code
│   └── src-tauri/      # Rust backend
├── internals/          # Core backend services and actor system
├── languageserver/     # Embedded Julia language server
├── shared/             # Shared types and utilities
└── demo/               # Demo notebooks and examples

Usage

Creating a Julia Project

  1. Open Compute42
  2. Select "New Project" or open an existing Julia project directory
  3. The IDE will automatically detect Julia projects (directories containing Project.toml)
  4. Start coding!

Installing Packages

  1. Open the Package Management view
  2. Enter the exact package name (e.g., Plots, DataFrames)
  3. Click "Add" to install the package

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

  • Built with Tauri, Vue 3, and Rust
  • Monaco Editor for code editing
  • Naive UI for component library