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.
- 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
- 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
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Tauri │ │ Julia │
│ (Vue 3) │◄──►│ Backend │◄──►│ Process │
│ + Monaco │ │ (Rust) │ │ │
│ + Naive UI │ │ │ | │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Actor │
│ System │
│ (Actix) │
└─────────────────┘
- 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
- 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 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
- Rust (latest stable)
- Node.js 18+ and npm
-
Clone the repository:
git clone <repository-url> cd open-source
-
Install frontend dependencies:
cd app npm install -
Run in development mode:
npm run tauri dev
Windows:
cd app
npm run tauri buildLinux/macOS:
cd app
npm run tauri buildopen-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
- Open Compute42
- Select "New Project" or open an existing Julia project directory
- The IDE will automatically detect Julia projects (directories containing
Project.toml) - Start coding!
- Open the Package Management view
- Enter the exact package name (e.g.,
Plots,DataFrames) - Click "Add" to install the package
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Tauri, Vue 3, and Rust
- Monaco Editor for code editing
- Naive UI for component library