The JuliaOS framework follows a client-server architecture with a modular design. The Julia backend (julia/julia_server.jl) runs as an HTTP server (default port 8052), handling core computations with a restructured architecture that provides clear separation of concerns. TypeScript/JavaScript clients, primarily the interactive CLI (scripts/interactive.cjs), connect to this server. The CLI utilizes framework packages (packages/framework, etc.) which in turn use the packages/julia-bridge to communicate with the backend server.
Computation (swarms, blockchain logic, AI calls) happens in the Julia modules (julia/src/*), which interact with external services (RPC nodes, Arweave, Wormhole, OpenAI). The system also provides a Python wrapper (packages/python-wrapper) that offers a comprehensive interface to JuliaOS with support for LangChain, multiple LLM providers, and Google ADK. The modular architecture allows for easy extension and integration with existing components.
Architecture
JuliaOS follows a client-server architecture with a modular design and clear separation of concerns:
Root Directory
├── julia/ # Core Julia backend server
│ ├── src/ # Julia source code with modular architecture
│ │ ├── core/ # Core modules (Types, Errors, Utils, Config)
│ │ ├── agents/ # Agent management and specialization
│ │ ├── swarms/ # Swarm algorithms and optimization
│ │ ├── blockchain/ # Multi-chain blockchain interactions
│ │ ├── dex/ # DEX operations and price quotes
│ │ ├── bridge/ # Communication bridge with Wormhole integration
│ │ ├── storage/ # Local and decentralized storage (Arweave)
│ │ ├── python/ # Python bridge for wrapper integration
│ │ └── api/ # HTTP API server and endpoints
│ ├── julia_server.jl # Main HTTP server (port 8052) with full functionality
│ ├── config.jl # Configuration with environment variable support
│ └── Project.toml # Julia dependencies
│
├── packages/ # TypeScript/JavaScript packages (monorepo)
│ ├── framework/ # Framework modules mirroring Julia backend
│ │ ├── swarms/ # Swarm algorithms and optimization
│ │ └── ... # Other framework modules
│ ├── julia-bridge/ # Communication bridge to Julia backend
│ ├── wallets/ # Wallet integrations (MetaMask, Phantom, Rabby)
│ ├── bridges/ # Cross-chain bridge implementations (Wormhole)
│ ├── storage/ # Storage implementations (Arweave)
│ └── python-wrapper/ # Python interface with LangChain, LLM, ADK integrations
│
├── scripts/ # Utility scripts
│ └── interactive.cjs # Main interactive CLI entry point (Node.js)
│
├── .env # Local environment variables (API Keys, RPC URLs) - *Not committed*
├── README.md # This file
└── ... # Config, Docker files, Gitignore etc.
Key Architecture Points
Modular Design: Clear separation of concerns with modular architecture for easy extension and maintenance.
Client-Server Model: Julia backend server (port 8052), TS/JS frontend/CLI client, Python wrapper.
Julia Backend (/julia): Computational engine with real implementations of agents, swarms, blockchain, DEX, storage, and bridges.