Hologram
Roadmap
✅ == DONE
🚧 == IN PROGRESS (partially done, some features work)
❌ == TODO
Runtime
Core
| Feature | Status | Comments |
|---|
| Actions | ✅ | |
| Commands | ✅ | |
| Routing | 🚧 | done: paths without params, todo: params |
| Session | ❌ | |
Template Engine
| Feature | Status | Comments |
|---|
| Components | 🚧 | done: stateless/stateful components, todo: props DSL |
| If Directive | 🚧 | done: element nodes, todo: component nodes |
| Interpolation | ✅ | |
| Layouts | ✅ | |
| Navigation | ✅ | |
| Pages | ✅ | |
| Templates | 🚧 | done: template in module, todo: template in separate file |
| Two-Way Binding | ❌ | |
Events
| Event | Status | Comments |
|---|
| Blur | ✅ | |
| Change | 🚧 | done: form tags, todo: input, select, textarea tags |
| Click | 🚧 | done: event handling, todo: event metadata |
| Focus | ❌ | |
| Key Down | ❌ | |
| Key Press | ❌ | |
| Key Up | ❌ | |
| Mouse Move | ❌ | |
| Params | ❌ | |
| Pointer Down | 🚧 | done: event handling, todo: event metadata |
| Pointer Up | 🚧 | done: event handling, todo: event metadata |
| Resize | ❌ | |
| Scroll | ❌ | |
| Select | ❌ | |
| Submit | ✅ | |
| Tap | ❌ | |
| Target | ❌ | |
| Touch Cancel | ❌ | |
| Touch End | ❌ | |
| Touch Move | ❌ | |
| Touch Start | ❌ | |
| Transition End | ✅ | |
Tools
| Tool | Status |
|---|
| Authentication | ❌ |
| Authorization | ❌ |
| Caching | ❌ |
| Code Reload | ❌ |
| Localization | ❌ |
| Time Travel | ❌ |
Elixir Syntax
Types
| Type | Status |
|---|
| Anonymous Function | ❌ |
| Atom | ✅ |
| Binary | ❌ |
| Bitstring | ❌ |
| Boolean | ✅ |
| Exception | ❌ |
| Float | ✅ |
| Integer | ✅ |
| IO Data | ❌ |
| List | ✅ |
| Map | ✅ |
| Nil | ✅ |
| Range | ❌ |
| Regex | ❌ |
| String | ✅ |
| Struct | ✅ |
| Tuple | ✅ |
Operators
Overridable General Operators
| Operator | Status |
|---|
| unary + | ❌ |
| unary - | ❌ |
| + | ✅ |
| - | ❌ |
| * | ❌ |
| / | ❌ |
| ++ | ❌ |
| -- | ❌ |
| and | ❌ |
| && | ✅ |
| or | ❌ |
| || | ❌ |
| not | ❌ |
| ! | ❌ |
| in | ❌ |
| not in | ❌ |
| @ | ✅ |
| .. | ❌ |
| <> | ❌ |
| |> | ❌ |
| =~ | ❌ |
Non-Overridable General Operators
| Operator | Status |
|---|
| ^ | ❌ |
| . | ✅ |
| = | ✅ |
| & | ❌ |
| :: | ❌ |
Comparison Operators
| Operator | Status |
|---|
| == | ✅ |
| === | ❌ |
| != | ❌ |
| !== | ❌ |
| < | ❌ |
| > | ❌ |
| <= | ❌ |
| => | ❌ |
Bitwise Module Operators
| Operator | Status |
|---|
| &&& | ❌ |
| ^^^ | ❌ |
| <<< | ❌ |
| >>> | ❌ |
| ||| | ❌ |
| ~~~ | ❌ |
Pattern Matching
| Type | Status |
|---|
| Binary | ❌ |
| Bitstring | ❌ |
| Case | ❌ |
| Comprehension | ❌ |
| List | ❌ |
| Map | ✅ |
| Range | ❌ |
| Struct | ❌ |
| Tuple | ❌ |
Control Flow
| Structure | Status |
|---|
| After | ❌ |
| Case | ❌ |
| Catch | ❌ |
| Comprehension | ❌ |
| Cond | ❌ |
| Else (If) | ✅ |
| Else (Rescue) | ❌ |
| Guards | ❌ |
| If | ✅ |
| Raise | ❌ |
| Rescue | ❌ |
| Throw | ❌ |
| Unless | ❌ |
| With | ❌ |
Definitions
| Structure | Status |
|---|
| Exception | ❌ |
| Function Head | ✅ |
| Macro | ❌ |
| Module | ✅ |
| Module Attribute | ✅ |
| Private Function | ✅ |
| Public Function | ✅ |
Directives
| Directive | Status |
|---|
| Alias | ✅ |
| Import | ✅ |
| Multi-Alias | ❌ |
| Require | ✅ |
| Use | ✅ |
Sigils
| Sigil | Status |
|---|
| ~c | ❌ |
| ~C | ❌ |
| ~D | ❌ |
| ~N | ❌ |
| ~r | ❌ |
| ~R | ❌ |
| ~s | ❌ |
| ~S | ❌ |
| ~T | ❌ |
| ~U | ❌ |
| ~w | ❌ |
| ~W | ❌ |
Other
| Feature | Status |
|---|
| Behaviours | ❌ |
| Codepoints | ❌ |
| Custom Sigils | ❌ |
| Default Arguments | ❌ |
| Function Capturing | ❌ |
| Map Update Syntax | ❌ |
| Module Attribute Accumulation | ❌ |
| Module __info__/1 callback | ✅ |
| Module Nesting | ❌ |
| Protocols | ❌ |
| Variable rebinding | ❌ |
Not on Roadmap
- Types: PID, Port, Reference
- Control Flow: Exit, Receive
- Operators: Custom, Overriding
- Other: Erlang Libraries
Work in progress
Runtime / Core / Commands
Done: commands trigerred by action
Todo: commands trigerred by event