Skip to main content

Crate vexy_vsvg

Crate vexy_vsvg 

Source
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 files
  • wasm: WebAssembly compatibility
  • python: 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