Skip to content

πŸŽ‰ Flow-RS v0.1.0-beta.1 - First Beta Release

Latest

Choose a tag to compare

@petehanssens petehanssens released this 13 Sep 07:00
· 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-core v0.1.0-beta.1 - Core graph data structures and algorithms
  • flow-rs-renderer v0.1.0-beta.1 - Rendering implementations and visual styling
  • flow-rs-leptos v0.1.0-beta.1 - Leptos integration and reactive components
  • flow-rs-wasm v0.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-core
  • leptos-flow-renderer β†’ flow-rs-renderer
  • leptos-flow-leptos β†’ flow-rs-leptos
  • leptos-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

🀝 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

πŸ”— Links