70 lines
3 KiB
Zig
70 lines
3 KiB
Zig
//! zfin -- Zig Financial Data Library
|
|
//!
|
|
//! Fetches, caches, and analyzes US equity/ETF financial data from
|
|
//! multiple free-tier API providers (Twelve Data, Polygon, Finnhub,
|
|
//! Alpha Vantage). Includes Morningstar-style performance calculations.
|
|
|
|
// -- Data models --
|
|
pub const Date = @import("models/date.zig").Date;
|
|
pub const Candle = @import("models/candle.zig").Candle;
|
|
pub const Dividend = @import("models/dividend.zig").Dividend;
|
|
pub const DividendType = @import("models/dividend.zig").DividendType;
|
|
pub const Split = @import("models/split.zig").Split;
|
|
pub const OptionContract = @import("models/option.zig").OptionContract;
|
|
pub const OptionsChain = @import("models/option.zig").OptionsChain;
|
|
pub const ContractType = @import("models/option.zig").ContractType;
|
|
pub const EarningsEvent = @import("models/earnings.zig").EarningsEvent;
|
|
pub const ReportTime = @import("models/earnings.zig").ReportTime;
|
|
pub const EtfProfile = @import("models/etf_profile.zig").EtfProfile;
|
|
pub const Holding = @import("models/etf_profile.zig").Holding;
|
|
pub const SectorWeight = @import("models/etf_profile.zig").SectorWeight;
|
|
pub const TickerInfo = @import("models/ticker_info.zig").TickerInfo;
|
|
pub const SecurityType = @import("models/ticker_info.zig").SecurityType;
|
|
pub const Lot = @import("models/portfolio.zig").Lot;
|
|
pub const LotType = @import("models/portfolio.zig").LotType;
|
|
pub const Position = @import("models/portfolio.zig").Position;
|
|
pub const Portfolio = @import("models/portfolio.zig").Portfolio;
|
|
pub const Quote = @import("models/quote.zig").Quote;
|
|
|
|
// -- Infrastructure --
|
|
pub const Config = @import("config.zig").Config;
|
|
pub const RateLimiter = @import("net/rate_limiter.zig").RateLimiter;
|
|
pub const http = @import("net/http.zig");
|
|
|
|
// -- Cache --
|
|
pub const cache = @import("cache/store.zig");
|
|
|
|
// -- Analytics --
|
|
pub const performance = @import("analytics/performance.zig");
|
|
pub const risk = @import("analytics/risk.zig");
|
|
pub const indicators = @import("analytics/indicators.zig");
|
|
pub const analysis = @import("analytics/analysis.zig");
|
|
|
|
// -- Classification --
|
|
pub const classification = @import("models/classification.zig");
|
|
|
|
// -- Formatting (shared between CLI and TUI) --
|
|
pub const format = @import("format.zig");
|
|
|
|
// -- Service layer --
|
|
pub const DataService = @import("service.zig").DataService;
|
|
pub const DataError = @import("service.zig").DataError;
|
|
pub const DataSource = @import("service.zig").Source;
|
|
|
|
// -- Providers --
|
|
pub const Provider = @import("providers/provider.zig").Provider;
|
|
pub const TwelveData = @import("providers/twelvedata.zig").TwelveData;
|
|
pub const Polygon = @import("providers/polygon.zig").Polygon;
|
|
pub const Finnhub = @import("providers/finnhub.zig").Finnhub;
|
|
pub const Cboe = @import("providers/cboe.zig").Cboe;
|
|
pub const AlphaVantage = @import("providers/alphavantage.zig").AlphaVantage;
|
|
pub const OpenFigi = @import("providers/openfigi.zig");
|
|
|
|
// -- Re-export SRF for portfolio file loading --
|
|
pub const srf = @import("srf");
|
|
|
|
// -- Tests --
|
|
test {
|
|
const std = @import("std");
|
|
std.testing.refAllDecls(@This());
|
|
}
|