Skip to main content

xls_rs/
lib.rs

1//! xls-rs - A library for reading, writing, and converting spreadsheet files
2//!
3//! Supports CSV, Excel (xlsx/xls), ODS, Parquet, and Avro formats with formula evaluation.
4
5#![allow(dead_code)] // Library exports many public APIs not used internally
6
7pub mod anomaly;
8pub mod api;
9pub mod capabilities;
10pub mod columnar;
11pub mod common;
12pub mod config;
13pub mod converter;
14pub mod csv_handler;
15pub mod encryption;
16pub mod error;
17pub mod error_traits;
18pub mod excel;
19pub mod format_detector;
20pub mod formula;
21pub mod geospatial;
22pub mod google_sheets;
23pub mod handler_registry;
24pub mod helpers;
25pub mod lineage;
26pub mod mcp;
27#[cfg(test)]
28pub mod mocks;
29pub mod operations;
30pub mod plugins;
31pub mod profiling;
32pub mod profiling_handler;
33pub mod quality;
34pub mod regex_cache;
35pub mod streaming;
36pub mod streaming_ops;
37pub mod string_utils;
38pub mod text_analysis;
39pub mod text_analysis_handler;
40pub mod timeseries;
41pub mod traits;
42pub mod types;
43pub mod validation;
44pub mod workflow;
45pub mod capability_catalog;
46
47pub use anomaly::{Anomaly, AnomalyDetector, AnomalyMethod, AnomalyResult};
48pub use api::{ApiConfig, ApiRequest, ApiResponse, ApiServer};
49pub use columnar::{AvroHandler, ParquetHandler};
50pub use config::Config;
51pub use converter::Converter;
52pub use csv_handler::{
53    CellRange, CellRangeHelper, CsvHandler, StreamingCsvReader, StreamingCsvWriter,
54    sanitize_csv_value, sanitize_csv_row,
55};
56pub use encryption::{DataEncryptor, EncryptionAlgorithm};
57pub use error::{ErrorContext, ErrorKind, ResultExt, XlsRsError, XlsRsResult};
58pub use error_traits::{
59    ErrorCategory, ErrorCategoryType, ErrorContextProvider, ErrorSeverity, RecoverableError,
60    ToTraitBasedError, TraitBasedError, UserFriendlyError,
61};
62pub use excel::{
63    add_cell_to_row, add_cells_to_row, classify_cell, CellData, CellStyle, ChartConfig,
64    ConditionalFormat, ConditionalRule, DataChartType, ExcelHandler, FeatureDetector,
65    FeatureSeverity, RowData, Sparkline, SparklineGroup, SparklineType, StreamingXlsxWriter,
66    UnsupportedFeature, WriteMode, WriteOptions, XlsxWriter,
67};
68pub use format_detector::DefaultFormatDetector;
69pub use formula::{FormulaEvaluator, FormulaResult};
70pub use geospatial::{Coordinate, GeospatialCalculator};
71pub use google_sheets::GoogleSheetsHandler;
72pub use handler_registry::HandlerRegistry;
73pub use helpers::{
74    default_column_names, filter_by_range, matches_extension, max_column_count,
75    parse_safe_f64, parse_safe_i64, parse_safe_usize,
76    with_cell_context, with_file_context, with_full_context,
77    validate_row_index, validate_column_index,
78};
79pub use lineage::{LineageNode, LineageTracker};
80pub use mcp::XlsRsMcpServer;
81pub use operations::{
82    AggFunc, DataOperations, JoinType, NoProgress, ProgressCallback, SortOrder, StderrProgress,
83};
84pub use plugins::{FunctionMetadata, PluginFunction, PluginMetadata, PluginRegistry};
85pub use profiling::{ColumnProfile, DataProfile, DataProfiler};
86pub use quality::{IssueSeverity, QualityIssue, QualityReport, QualityReportGenerator};
87pub use streaming::{
88    DataChunk, StreamingChannel, StreamingDataReader, StreamingDataWriter, StreamingProcessor,
89};
90pub use streaming_ops::{get_info, head, infer_schema, tail, ColumnType, Schema};
91pub use string_utils::{
92    join_cell_reference, join_with_capacity, string_with_capacity, StringBuilder,
93    estimate_csv_row_capacity, estimate_json_array_capacity,
94};
95pub use text_analysis::{KeywordResult, LanguageResult, SentimentResult, TextAnalyzer, TextStats};
96pub use timeseries::{
97    ResampleInterval, RollingWindow, TimeSeriesAgg, TimeSeriesPoint, TimeSeriesProcessor,
98    TrendDirection,
99};
100pub use traits::{
101    CellRangeProvider, DataOperator, DataReader, DataWriteOptions, DataWriter, FileHandler,
102    FilterCondition, FilterOperator, FormatDetector, SchemaProvider, SortOperator, StreamingReader,
103    StreamingWriter, TransformOperation, TransformOperator,
104};
105pub use types::{CellValue, DataSet, DataType, DataRow};
106pub use validation::{DataValidator, ValidationConfig, ValidationResult, ValidationRule};
107pub use workflow::{WorkflowConfig, WorkflowExecutor, WorkflowStep};