Repository navigation
·
7 commits
to main
since this release
π Flow-RS v0.1.0-beta.1 - First Beta Release
π *Major Milestone: Published to crates.io--version
Flow-RS is now available on crates.io with a complete modular architecture. This beta release represents a significant milestone in the project's development.
π¦ Published Crates
All crates are now available on crates.io:
flow-rs-corev0.1.0-beta.1 - Core graph data structures and algorithmsflow-rs-rendererv0.1.0-beta.1 - Rendering implementations and visual stylingflow-rs-leptosv0.1.0-beta.1 - Leptos integration and reactive componentsflow-rs-wasmv0.1.0-beta.1 - WebAssembly bindings and browser integration
β¨ What's New
ποΈ Modular Architecture
- Complete separation of concerns across 4 independent crates
- Framework-agnostic core with optional integrations
- Clean API boundaries and dependency management
π§ͺ Quality Assurance
- 496/496 tests passing (100% pass rate)
- Comprehensive test coverage across all components
- Performance validation with 1000+ node graphs
- Cross-browser compatibility testing
π Performance Optimizations
- O(V+E) graph traversal algorithms (improved from O(V*E))
- Optimized spatial indexing with grid-based queries
- Efficient Canvas2D rendering with performance monitoring
- Memory-efficient data structures
π Documentation & Developer Experience
- Complete API documentation with examples
- Updated installation instructions for crates.io
- Comprehensive architecture guides
- Migration guide from old naming conventions
π οΈ Installation
Add to your Cargo.toml:
[dependencies]
flow-rs-core = "0.1.0-beta.1"
flow-rs-renderer = "0.1.0-beta.1"
flow-rs-leptos = "0.1.0-beta.1" # For Leptos integration
flow-rs-wasm = "0.1.0-beta.1" # For WASM bindingsπ― Quick Start
use flow_rs_core::{Graph, Node, Edge};
use flow_rs_renderer::{Canvas2DRenderer, Renderer};
// Create a graph
let mut graph = Graph::new();
// Add nodes
let node1 = Node::builder("input")
.position(100.0, 100.0)
.size(80.0, 40.0)
.build();
let node2 = Node::builder("process")
.position(300.0, 100.0)
.size(80.0, 40.0)
.build();
graph.add_node(node1);
graph.add_node(node2);
// Add edge
let edge = Edge::builder()
.connect("input", "process")
.build();
graph.add_edge(edge);π§ Breaking Changes
This release includes the migration from leptos-flow-* to flow-rs-* naming:
leptos-flow-coreβflow-rs-coreleptos-flow-rendererβflow-rs-rendererleptos-flow-leptosβflow-rs-leptosleptos-flow-wasmβflow-rs-wasm
See the Migration Guide for detailed upgrade instructions.
π§ͺ Testing
- Unit Tests: 496/496 passing (100% pass rate)
- Integration Tests: All component interactions validated
- Performance Tests: Validated with 1000+ node graphs
- Cross-Browser Tests: 100% compatibility across major browsers
- Property-Based Tests: Comprehensive edge case validation
π Performance Metrics
- Spatial Queries: O(1) average case with grid-based indexing
- Rendering: 60 FPS with 1000+ nodes
- Memory Usage: Efficient with zero-copy operations where possible
- Bundle Size: Optimized WASM bundles for fast loading
π¨ Examples
- Basic Flow Editor - Simple node editor with drag-and-drop
- Advanced Flow Editor - Full-featured editor with all capabilities
π€ Contributing
We welcome contributions! Please see our Contributing Guide for details.
π License
This project is licensed under the MIT License.
Built with β€οΈ using Rust and Leptos