60 lines
3.1 KiB
Text
60 lines
3.1 KiB
Text
# Grimu-R
|
|
|
|
**Grimu-R** is an open-source framework for mixed visual-textual dataflow scripting, combining interactive web-based visual editing with polyglot scripting runtime.
|
|
|
|
## Core Concepts
|
|
|
|
**Weave**: A Git-friendly project representation containing the complete dataflow graph and layout
|
|
**Braid**: Reusable modules/entry points that can be nested and serve as CLI subcommands or RPC methods
|
|
**Sigil**: Basic building blocks - programs that act as data sources, sinks, or transformers
|
|
**Scroll**: Defines runtime environment and default configuration for sigils (developed with Nix)
|
|
**Inscription**: Dynamic scripts/templates stored in weaves, editable in the visual editor
|
|
**Strand**: Connects reactive inputs/outputs with configurable cadence decorators
|
|
**Schism/Aspect**: Splits weaves into deployable program collections
|
|
**Loom**: Interactive weaving and execution tools
|
|
|
|
## Key Features
|
|
|
|
- **Visual-textual editor**: Browser-based with immediate feedback and live code changes
|
|
- **Reactive dataflow**: Granular configuration for push/pull, throttling, batching, backpressure
|
|
- **Polyglot**: Real code blocks in familiar languages leveraging their ecosystems
|
|
- **Nix-powered**: Reproducible builds and environments with minimal setup effort
|
|
- **Malleable**: End users can inspect/modify dataflows using the same editor as developers
|
|
- **Embeddable**: Builds to CLI tools, RPC servers, web apps, or containers
|
|
- **Cross-language**: Structured data (JSON lines) connections between different runtimes
|
|
|
|
## Development Workflow
|
|
|
|
1. **Project setup**: Create Nix flake with Grimu-R base, enter dev shell
|
|
2. **Interactive weaving**: Use browser-based Loom editor to create braids, add sigils, connect with strands
|
|
3. **Modular development**: Factor out reusable braids, define custom scrolls, import/export as flake inputs/outputs
|
|
4. **Testing**: Run interactively in browser, define test data as static sigils, extract/execute via Loom CLI
|
|
5. **Deployment**: Define schisms with aspects, create bindings, build executables/containers
|
|
|
|
## Use Cases
|
|
|
|
- Rapid prototyping of data processing pipelines
|
|
- Self-hosted workflow automation
|
|
- Custom dashboards with complex logic
|
|
- Internal tooling and automation scripts
|
|
- Hacker-friendly, highly customizable applications
|
|
|
|
## Positioning
|
|
|
|
Takes the best from visual programming environments, script automation, and code notebooks while remaining developer-first. Avoids limitations of proprietary tools, brittleness of script bundles, and opacity of notebooks.
|
|
|
|
## Licensing
|
|
|
|
- **Platform components** (Loom tools, weave executors): AGPL v3
|
|
- **Base scrolls and non-platform code**: MIT
|
|
- AGPL applies to forks/extensions of platform code and SaaS deployments
|
|
- Your weaves and applications using Grimu-R are not affected by AGPL terms
|
|
|
|
## Technical Notes
|
|
|
|
- Development environment provisioned via Nix shell
|
|
- Visual editor communicates over WebSocket
|
|
- Changes stored in browser, exportable as files
|
|
- Cross-language via structured data pipes (like Unix pipes with JSON)
|
|
- Shared runtime dependencies managed by Nix
|
|
- Malleability limited to client-side parts in client-server applications
|