Expand description
§vexy-vsvg
Core SVG processing engine for vexy-vsvg, providing parsing, AST manipulation, optimization, and stringification capabilities.
§Overview
This crate provides the fundamental building blocks for SVG optimization:
- Parsing: Convert SVG strings into an Abstract Syntax Tree (AST)
- Optimization: Apply various optimization plugins to reduce file size
- Stringification: Convert the optimized AST back to an SVG string
§Quick Start
use vexy_vsvg::{optimize_default, parse_svg, stringify};
// Simple optimization with default settings
let svg = r#"<svg><rect width="100" height="100"/></svg>"#;
let result = optimize_default(svg).unwrap();
println!("Optimized: {}", result.data);
// Manual parsing and stringification
let doc = parse_svg(svg).unwrap();
let output = stringify(&doc).unwrap();§Features
parallel: Enable parallel processing for large SVG fileswasm: WebAssembly compatibilitypython: Python bindings support
Re-exports§
pub use ast::Document;pub use ast::DocumentMetadata;pub use ast::Element;pub use ast::Node;pub use css::variables::CssScope;pub use css::variables::CssVariableResolver;pub use error::VexyError;pub use optimizer::memory::MemoryBudget;pub use optimizer::memory::MemoryError;pub use optimizer::parallel;pub use optimizer::optimize;pub use optimizer::optimize_default;pub use optimizer::optimize_with_config;pub use optimizer::OptimizationInfo;pub use optimizer::OptimizationResult;pub use optimizer::OptimizeOptions;pub use parser::config::Config;pub use parser::config::DataUriFormat;pub use parser::config::LineEnding;pub use parser::config::PluginConfig;pub use parser::config::StreamingConfig;pub use parser::error::ParseError;pub use parser::load_config_from_directory;pub use parser::parse_svg;pub use parser::parse_svg_file;pub use parser::parse_svg_streaming;pub use parser::Parser;pub use plugin_registry::create_default_registry;pub use plugin_registry::Plugin;pub use plugin_registry::PluginRegistry;pub use stringifier::stringify;pub use stringifier::stringify_with_config;pub use stringifier::StreamingStringifier;pub use stringifier::StringifyConfig;
Modules§
- ast
- Abstract Syntax Tree (AST) for SVG documents
- collections
- Collections of SVG-related constants and mappings
- css
- CSS handling utilities for SVG optimization
- error
- features
- Feature flag management for Vexy SVGO
- optimizer
- Core optimization engine
- parser
- plugin_
registry - Plugin registry for managing and executing plugins
- stringifier
- Convert AST back to SVG string with performance optimizations
- utils
- Shared utilities for SVG processing
- visitor
- Visitor pattern implementation for SVG AST traversal
Macros§
- debug_
log - Macro for debug logging that’s compiled out in release
- if_
feature - Macro for conditional compilation based on features
Constants§
- VERSION
- Version string for vexy-vsvg