lib.rs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //! # Verax: A simple ledger database
  2. //!
  3. //! It is a simple Ledger database which aims to be a building block for
  4. //! financial products.
  5. //!
  6. //! Verax uses a UTXO model (unspent transaction output), heavily inspired by
  7. //! Bitcoin. Having UTXO each account balance is isolated from the rest and it's
  8. //! easy to track the history of each payment. In Verax the terminology is
  9. //! slighly different, there are unspent payments instead of UTXO.
  10. //!
  11. //! The data model is simple, any transaction spends one or many payments. Those
  12. //! payments cannot be spend again and are marked as spent. The transaction can
  13. //! be settled or not, if it's not settled it can be rolled back. Each
  14. //! transaction creates new payments that can be spend in the future by other
  15. //! transactions.
  16. //!
  17. //! Verax aims to be simple, auditable, cryptographically provable and human
  18. //! auditable friendly.
  19. #![deny(warnings)]
  20. #![deny(missing_docs)]
  21. #![deny(unused_crate_dependencies)]
  22. #![deny(clippy::arithmetic_side_effects)]
  23. #![deny(clippy::cast_possible_truncation)]
  24. mod amount;
  25. mod asset;
  26. mod broadcaster;
  27. mod config;
  28. mod error;
  29. mod filter;
  30. mod filter_expr;
  31. mod id;
  32. mod ledger;
  33. mod payment;
  34. mod serde;
  35. mod status;
  36. pub mod storage;
  37. #[cfg(test)]
  38. mod tests;
  39. pub mod token;
  40. mod transaction;
  41. mod worker;
  42. #[cfg(test)]
  43. pub use self::storage::test as storage_test;
  44. #[cfg(test)]
  45. use cucumber as _;
  46. pub use self::{
  47. amount::{Amount, AnyAmount, HumanAmount},
  48. asset::Asset,
  49. error::Error,
  50. filter::{Filter, FilterableValue, PrimaryFilter},
  51. id::*,
  52. ledger::Ledger,
  53. payment::PaymentFrom,
  54. serde::*,
  55. status::{Status, StatusManager},
  56. token::TokenPayload,
  57. transaction::*,
  58. };