awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
moneyphp avatar

moneyphp/money

0
View on GitHub↗
4,846 stars·444 forks·PHP·MIT·22 viewsmoneyphp.org↗

Money

This is a PHP library for handling financial calculations using value objects. It represents monetary amounts as integers to avoid floating-point precision errors and ensure mathematical accuracy during processing and storage.

The library utilizes an immutable value object pattern where calculations return new instances to prevent side effects. It employs currency-aware arithmetic to restrict mathematical operations to objects sharing the same currency and uses interface-based logic to delegate currency conversion to external exchange providers.

Capabilities include international currency formatting for localized human-readable strings and standardized JSON serialization for transmitting monetary data across network APIs.

Features

  • Monetary Value Objects - Provides immutable value objects that represent monetary amounts as integers to ensure mathematical accuracy.
  • Currency Validators - Enforces rules that restrict mathematical operations to objects sharing the same currency to prevent invalid calculations.
  • PHP Financial Libraries - Implements the money pattern in PHP using value objects to avoid floating-point precision errors.
  • Financial Numeric Precision - Performs financial calculations using integer representation to eliminate rounding errors and precision loss.
  • Integer-Based Currency - Stores monetary values as integers within value objects to prevent floating-point rounding errors.
  • Smallest Subdivision Integers - Represents monetary amounts as integers of the smallest currency unit to eliminate floating-point precision errors.
  • Immutable Data Patterns - Implements an immutable architectural pattern where calculations return new instances to prevent side effects.
  • Currency Exchange - Implements logic for converting monetary amounts between different currencies using defined exchange rates.
  • Exchange Provider Interfaces - Decouples currency conversion logic from the money object by delegating rate lookups to external exchange providers.
  • Locale-Aware Currency Formatting - Transforms raw integers into human-readable currency strings using locale-specific formatting rules and symbols.
  • Currency Conversion - Provides a utility for transforming monetary amounts from one currency to another using exchange rates.
  • E-commerce and Payments - Implements the money pattern for currency handling.

Star history

Star history chart for moneyphp/moneyStar history chart for moneyphp/money

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Money

Similar open-source projects, ranked by how many features they share with Money.
  • dinerojs/dinero.jsdinerojs avatar

    dinerojs/dinero.js

    6,758View on GitHub↗

    Dinero.js is a TypeScript-first library for creating, calculating, and formatting monetary values. It provides immutable money objects that represent amounts in the smallest currency subdivision as integers, ensuring precision and preventing floating-point errors. The library enforces same-currency rules on arithmetic operations and validates currency codes against ISO 4217 definitions at creation time. The library distinguishes itself through a calculator plugin architecture that delegates arithmetic operations to interchangeable backends, supporting number, bigint, or custom precision libra

    TypeScriptamountcurrencyimmutable
    View on GitHub↗6,758
  • tigerbeetle/tigerbeetletigerbeetle avatar

    tigerbeetle/tigerbeetle

    16,291View on GitHub↗

    TigerBeetle is a distributed financial accounting database designed for high-volume transaction processing. It functions as a specialized transaction engine that enforces strict double-entry bookkeeping invariants, ensuring that every debit and credit is balanced and accounted for with absolute consistency. By utilizing a consensus-based replication model, the system provides high availability and data durability across geographically distributed clusters, making it suitable for mission-critical financial infrastructure. The system distinguishes itself through a performance-oriented architect

    Zig
    View on GitHub↗16,291
  • flutter-team-archive/pluginsflutter-team-archive avatar

    flutter-team-archive/plugins

    17,710View on GitHub↗

    This project is a collection of official plugin packages and a native integration library designed to provide a consistent interface for accessing hardware and software functionality across different mobile and desktop platforms. It serves as a native platform bridge, enabling cross-platform applications to invoke native code and manage operating system dependencies. The project utilizes a federated plugin architecture, splitting plugins into common interfaces and separate platform implementations to allow for independent development and extension. It further supports native integration throu

    Dartandroiddartflutter
    View on GitHub↗17,710
  • fasterxml/jacksonFasterXML avatar

    FasterXML/jackson

    9,740View on GitHub↗

    Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into native language objects. It functions as a JSON data binding library and a streaming parser that reads and writes data as discrete tokens to process large datasets with minimal memory. The project distinguishes itself through a bytecode serialization accelerator that replaces standard reflection with generated bytecode to increase data binding speed. It employs a module-based extensibility model to support a wide range of formats beyond JSON, including XML, YAML, CSV, TOML, and bin

    hacktoberfestjacksonjava-json
    View on GitHub↗9,740
See all 30 alternatives to Money→

Frequently asked questions

What does moneyphp/money do?

This is a PHP library for handling financial calculations using value objects. It represents monetary amounts as integers to avoid floating-point precision errors and ensure mathematical accuracy during processing and storage.

What are the main features of moneyphp/money?

The main features of moneyphp/money are: Monetary Value Objects, Currency Validators, PHP Financial Libraries, Financial Numeric Precision, Integer-Based Currency, Smallest Subdivision Integers, Immutable Data Patterns, Currency Exchange.

What are some open-source alternatives to moneyphp/money?

Open-source alternatives to moneyphp/money include: dinerojs/dinero.js — Dinero.js is a TypeScript-first library for creating, calculating, and formatting monetary values. It provides… tigerbeetle/tigerbeetle — TigerBeetle is a distributed financial accounting database designed for high-volume transaction processing. It… flutter-team-archive/plugins — This project is a collection of official plugin packages and a native integration library designed to provide a… tristanhimmelman/objectmapper — ObjectMapper is a JSON serialization framework for Swift that maps JSON strings and dictionaries into strongly typed… fasterxml/jackson — Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into… johnezang/jsonkit — JSONKit is an Objective-C library used for parsing, serializing, and manipulating JSON data. It functions as a JSON…