Documentation

Implementation Status

This page provides a transparent overview of what's currently implemented in Droelang and what's planned for future development.

🎯 Current Status (January 2025)

Droelang is actively developed with a focus on WebAssembly compilation and emerging native bytecode execution.

βœ… Fully Implemented Features

Core Language

  • βœ… Variables and Assignment - Strong typing with set variable which is type to value
  • βœ… Data Types - int, decimal, text, flag, date, list of T
  • βœ… Display Output - display and show statements
  • βœ… String Operations - Concatenation with + and interpolation with [variable]
  • βœ… Conditionals - when condition then ... end when with otherwise
  • βœ… Loops - for each item in collection ... end for
  • βœ… Comments - Single-line // and multi-line /* */

Modules and Actions

  • βœ… Module System - module name ... end module with namespacing
  • βœ… Actions - Parameterized functions with action name with params gives type
  • βœ… Return Values - give result and set variable from run module.action

Database DSL

  • βœ… Data Definitions - data Entity with field annotations (key, auto, required, etc.)
  • βœ… HTTP Endpoints - serve get /path ... end serve syntax
  • ⚠️ Database Operations - Basic parsing implemented, runtime execution in progress

Compilation Targets

  • βœ… WebAssembly - Primary target, fully functional (.droe β†’ .wat β†’ .wasm)
  • βœ… Native Bytecode - @target droe compiles to .droebc format
  • ⚠️ Rust Code Generation - @target rust with Axum framework (experimental)

CLI Tools

  • βœ… Project Initialization - droe init creates project structure
  • βœ… Compilation - droe compile file.droe to WebAssembly/bytecode
  • ⚠️ Runtime Execution - droe run works for basic programs

🚧 Partially Implemented Features

Database and HTTP Features

  • ⚠️ Database Runtime - Parsing works, runtime execution in development
  • ⚠️ HTTP Server - serve endpoints parse, DroeVM runtime needed
  • ⚠️ Multi-Database Support - Architecture exists, drivers in progress

Advanced Language Features

  • ⚠️ Complex Collections - Basic list operations work, advanced manipulation pending
  • ⚠️ Include System - File imports designed but needs testing
  • ⚠️ Error Handling - Basic type checking, advanced error handling planned

Build System

  • ⚠️ DroeVM Runtime - Native bytecode interpreter under development
  • ⚠️ Release Builds - droe build --release planned for single-binary output

❌ Not Yet Implemented

Multi-Target Compilation

  • ❌ Python Target - Not implemented (was documented but removed)
  • ❌ Java/Spring Boot - Not implemented (was documented but removed)
  • ❌ JavaScript/Node.js - Not implemented (was documented but removed)
  • ❌ Go/Fiber - Not implemented (was documented but removed)

UI and Mobile Features

  • ❌ UI Components - layout, form, input, button etc. (parsing exists, no compilation)
  • ❌ Mobile Development - No Android or iOS support
  • ❌ Cross-Platform UI - Not implemented

Advanced Features

  • ❌ Format Expressions - format date as "MM/dd/yyyy" not implemented
  • ❌ Advanced HTTP Client - call "url" method GET not implemented
  • ❌ Complex Database Queries - Advanced query syntax not implemented
  • ❌ Package Management - No module sharing system yet

πŸ—ΊοΈ Development Roadmap

Priority 1: Core Stability (Q1 2025)

  • Complete DroeVM bytecode runtime
  • Stable database operations
  • HTTP endpoint handling
  • Production-ready WebAssembly compilation

Priority 2: Developer Experience (Q2 2025)

  • Enhanced CLI tooling
  • Better error messages
  • Debugging support
  • Performance optimization

Priority 3: Language Expansion (Q3+ 2025)

  • Format expressions
  • HTTP client operations
  • Advanced database features
  • Package management system

πŸ’­ Future Considerations

The following features were documented but are not currently in active development:

  • Multi-Target Compilation - May be reconsidered based on community demand
  • UI Framework - Significant effort required, priority unclear
  • Mobile Development - Would require substantial mobile expertise

πŸš€ How You Can Help

Community Contributions

  • Testing - Try Droelang with your use cases and report issues
  • Documentation - Help improve examples and guides
  • Features - Contribute implementations for partially completed features

Feedback Priorities

We're particularly interested in feedback on:

  1. WebAssembly compilation experience
  2. Database DSL usability
  3. Developer tool ergonomics
  4. Performance characteristics

πŸ“‹ Feature Status Legend

  • βœ… Fully Implemented - Feature works as documented with tests
  • ⚠️ Partially Implemented - Core functionality exists, edge cases or polish needed
  • 🚧 In Progress - Active development, basic functionality may work
  • ❌ Not Implemented - Feature not started or removed from scope
  • πŸ’­ Planned - Design phase, implementation timeline unclear

πŸ“ˆ Version History

Version 3.0 (Current)

  • Native DroeVM bytecode target
  • Database DSL with HTTP endpoints
  • Rust code generation (experimental)
  • Cleaned up language specification

Version 2.0 (Previous)

  • WebAssembly compilation
  • Module system
  • Basic database parsing

Version 1.0 (Original)

  • Core language features
  • WebAssembly compilation
  • CLI tools

Last Updated: January 8, 2025
Next Review: February 2025

This status page is updated regularly. For the most current information, check the project repository and recent commits.

Droe Droe

A unified programming system that compiles high-level app definitions to native, web, mobile, and server runtimes.

Documentation

© 2025 Droe. Open source under Apache 2.0 License.