| Crates.io | sber-invest-report |
| lib.rs | sber-invest-report |
| version | 0.1.1 |
| created_at | 2025-12-01 20:44:15.582584+00 |
| updated_at | 2026-01-22 14:44:14.030512+00 |
| description | Парсер инвестиционных отчётов Сбербанка |
| homepage | https://github.com/hexqnt/sber-invest-report |
| repository | https://github.com/hexqnt/sber-invest-report |
| max_upload_size | |
| id | 1960611 |
| size | 152,217 |
Парсер HTML-отчётов брокера Сбербанка и утилиты для агрегации данных отчётов.
| Версия | Статус | Дата актуальности отчётов |
|---|---|---|
0.1.0 |
- | отчёты по состоянию на 2025-12-01 |
0.1.1 |
актуальная | отчёты по состоянию на 2026-01-22 |
cargo add sber-invest-report
use sber_invest_report::{RawReport, ReportBuilder};
use std::fs::File;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let raw = RawReport::from_reader(File::open("report.html")?)?;
let report = ReportBuilder::new(&raw).parse()?;
println!("Счёт: {}", report.meta.account_id.0);
Ok(())
}
use sber_invest_report::ReportSet;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let set = ReportSet::from_dir("reports")?;
let merged_cash = set.merge_cash_flows();
let merged_positions = set.merge_positions();
println!("Всего отчётов: {}", set.reports.len());
println!("Движение ДС строк: {}", merged_cash.rows.len());
println!("Позиции ISIN: {}", merged_positions.len());
Ok(())
}
use sber_invest_report::{RawReport, ReportBuilder};
use std::fs::File;
let raw = RawReport::from_reader(File::open("report.html")?)?;
let report = ReportBuilder::new(&raw)
.portfolio(true)
.asset_valuation(false)
.cash_flow(true)
.iis_contributions(false)
.parse()?;
tests/fixtures/ и используются в интеграционных тестах.REAL_REPORT_DIR=/path/to/reports cargo test.MIT или Apache-2.0