π€ What is RESL? β
RESL = Runtime Evaluated Serialization Language
RESL is a modern configuration and serialization language with variables, expressions, and dynamic runtime evaluation designed to solve the limitations of traditional static configuration formats like JSON.
PRONUNCIATION
RESL is pronounced like "wrestle"
π― Core Purpose β
RESL is designed to bring programming capabilities to config files, eliminating the common problems of repetitive, verbose, and hard-to-maintain configuration files.
π Key Features β
- π Dynamic Configuration: Variables, functions, and computed values
- π Familiar Syntax: Combines the best of JSON, JavaScript, and functional programming
- ποΈ Flexible Structure: Any expression can be top-level
- π Rich Data Types: Strings, numbers, booleans, lists, and maps
- β‘ Powerful Operations: Binary operations, conditionals, transformations, and more
π― Use Cases β
RESL is ideal for:
- Application Configuration: Server settings, database connections, feature flags
- Infrastructure as Code: Kubernetes manifests, Docker configurations, CI/CD pipelines
- Dynamic Configurations: Environment-specific settings, computed values, conditional logic
- Data Generation: Test data, mock configurations, templated content
- API Responses: Dynamic JSON generation with computed fields
π How is RESL Different from a Programming Language? β
- Programming languages offer extensive capabilities, often beyond what is needed for configuration.
- RESL is intentionally restrictive, focusing solely on configuration and serialization tasks.
- RESL files store data in a structured yet flexible format, designed for clarity and simplicity.
- During runtime evaluation, RESL processes and computes the data to produce the desired output.
- This design minimizes the risk of arbitrary code execution, ensuring safer and more predictable behavior.
π‘ Philosophy β
RESL follows the principle that configuration should be:
- Expressive without being complex
- DRY (Don't Repeat Yourself) through variables and functions
- Maintainable with clear structure and computed values
- Familiar using syntax patterns developers already know
- Efficient producing smaller, more readable files
Ready to learn more? Check out Why RESL to see how it compares to other formats, or dive into the Syntax Guide to start writing RESL expressions.