# microsoft/power-fx

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-power-fx).**

3,338 stars · 357 forks · C# · mit

## Links

- GitHub: https://github.com/microsoft/Power-Fx
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-power-fx.md

## Topics

`power-fx` `powerfx`

## Description

Power-Fx is a declarative logic framework and low-code formula language based on Excel formulas. It functions as an expression parser and evaluator that transforms formula strings into an abstract syntax tree to execute logical operations and resolve values.

The project provides a standardized integration layer to connect formula-based logic to external data sources for querying and pushing records. This allows for the definition of business rules and calculations that can be shared as consistent logic across different applications and platforms.

## Tags

### Programming Languages & Runtimes

- [Low-Code Formula Languages](https://awesome-repositories.com/f/programming-languages-runtimes/low-code-formula-languages.md) — Provides a declarative low-code formula language based on Excel syntax for standardizing business logic across applications.
- [Abstract Syntax Tree Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/abstract-syntax-tree-parsers.md) — Implements components that transform formula strings into structured tree representations for logical analysis and execution.
- [Context-Aware Variable Resolution](https://awesome-repositories.com/f/programming-languages-runtimes/context-aware-variable-resolution.md) — Provides mechanisms for retrieving values from data objects based on hierarchical scope and current execution context.
- [Cross-Application Logic Standards](https://awesome-repositories.com/f/programming-languages-runtimes/cross-application-logic-standards.md) — Enables the sharing of consistent functional rules and calculation logic across multiple different platforms and user interfaces.
- [Cross-Language Logic Standardization](https://awesome-repositories.com/f/programming-languages-runtimes/cross-language-logic-standardization.md) — Standardizes the semantics and execution of business logic expressions across different software applications.
- [Declarative Logic Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/declarative-logic-frameworks.md) — Provides a framework for expressing functional rules and data transformations using a high-level spreadsheet-like syntax.
- [Environment Variable Resolution](https://awesome-repositories.com/f/programming-languages-runtimes/environment-variable-resolution.md) — Resolves variable names and references by retrieving values from the runtime environment context.
- [Expression Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/expression-evaluators.md) — Provides an engine for processing mathematical and logical expressions based on declarative language rules.
- [Lazy Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/deferred-execution/lazy-evaluation.md) — Employs computational techniques to delay the evaluation of formula expressions until the final value is explicitly requested.

### Scientific & Mathematical Computing

- [Formula Evaluators](https://awesome-repositories.com/f/scientific-mathematical-computing/formula-evaluators.md) — Functions as a formula evaluator that computes results from variable inputs based on a defined set of language rules. ([source](https://cdn.jsdelivr.net/gh/microsoft/power-fx@main/README.md))
- [Expression Tree Evaluators](https://awesome-repositories.com/f/scientific-mathematical-computing/recursive-tree-traversal-algorithms/expression-tree-evaluators.md) — Executes logical operations by recursively traversing the formula's abstract syntax tree.

### Data & Databases

- [Data Provider Abstractions](https://awesome-repositories.com/f/data-databases/external-data-integrations/data-provider-abstractions.md) — Provides a standardized abstraction layer to connect formula-based logic to external data sources for querying and pushing records.
- [Data Abstraction Layers](https://awesome-repositories.com/f/data-databases/data-abstraction-layers.md) — Implements an abstraction layer that decouples the formula engine logic from specific external data storage backends.
- [External Data Integrations](https://awesome-repositories.com/f/data-databases/external-data-integrations.md) — Provides mechanisms to connect to external data sources to enrich formulas with additional real-time context. ([source](https://cdn.jsdelivr.net/gh/microsoft/power-fx@main/README.md))
- [Query Abstraction Layers](https://awesome-repositories.com/f/data-databases/query-abstraction-layers.md) — Implements a query abstraction layer that provides a unified interface for executing data queries across different storage engines.
- [Unified Data Provider Interfaces](https://awesome-repositories.com/f/data-databases/unified-data-provider-interfaces.md) — Ships a standardized communication layer that translates formula queries into specific API requests for external backend services.

### Software Engineering & Architecture

- [Core Business Logic](https://awesome-repositories.com/f/software-engineering-architecture/core-business-logic.md) — Implements a processing engine for defining the primary business rules and calculations of an application via formulas. ([source](https://cdn.jsdelivr.net/gh/microsoft/power-fx@main/README.md))
- [Expression Type Resolution](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/expression-type-resolution.md) — Determines the expected data types of dynamic formula expressions by analyzing inputs and operators.
- [AST Visitor Patterns](https://awesome-repositories.com/f/software-engineering-architecture/ast-visitor-patterns.md) — Uses the visitor design pattern to walk the expression tree for compilation and evaluation purposes.

### User Interface & Experience

- [Formula Expression Parsers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/control-flow-directives/expression-evaluators/parsing-optimizations/constant-expression-parsing/static-expression-evaluation/formula-expression-parsers.md) — Evaluates complex formula expressions by parsing them according to defined language rules to produce consistent results.
