22 releases (5 breaking)

✓ Uses Rust 2018 edition

0.5.3 Mar 2, 2020
0.5.2 Feb 23, 2020
0.4.4 Jan 25, 2020
0.3.3 Dec 19, 2019
0.0.1 Nov 18, 2019

#39 in Date and time

Download history 143/week @ 2019-12-13 11/week @ 2019-12-20 17/week @ 2019-12-27 23/week @ 2020-01-03 165/week @ 2020-01-10 101/week @ 2020-01-17 26/week @ 2020-01-24 8/week @ 2020-01-31 23/week @ 2020-02-07 127/week @ 2020-02-14 94/week @ 2020-02-21 71/week @ 2020-02-28 46/week @ 2020-03-06 34/week @ 2020-03-13 66/week @ 2020-03-20 45/week @ 2020-03-27

310 downloads per month

MIT/Apache and MPL-2.0 licenses

5.5K SLoC


Purpose of this library is to provide over time a comprehensive toolbox for quantitative analysis of financial assets in rust. The project is licensed under Apache 2.0 or MIT license (see files LICENSE-Apache2.0 and LICENSE-MIT) at the option of the user.

The goal is to provide a toolbox for pricing various financial products, like bonds options or maybe even more complex products. In the near term, calculation of the discounted cash flow value of bonds is in the focus, based on what information is given by a standard prospect. Building blocks to achieve this target include time periods (e.g. "3M" or "10Y"), bank holiday calendars, business day adjustment rules, calculation of year fraction with respect to typical day count convention methods, roll-out of cash flows, and calculating valuation and risk figures like internal yield or duration that are useful for an investor in these products.

Functionality to calculate of figures like fair values which are primarily interesting in scenarios where one is fully hedged are not in the initial focus, since an investor is by definition not fully hedged. Nevertheless, they might be added later for comparison and estimating market prices.

The library also supports storing data, like market data, e.g. market quote information, data related to portfolio and transaction management to be able to support portfolio analysis (e.g. calculation of risk figures), and generic storage of product details (e.g. bond specification). This is done by defining data handler traits for various data categories, with concrete implementations supporting storage in memory or in a databases (supporting sqlite3 and postgreSQL).


~493K SLoC