awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
scriban avatar

scriban/scriban

0
View on GitHub↗
3,905 stars·405 forks·C#·BSD-2-Clause·4 vuesscriban.github.io↗

Scriban

Scriban est une bibliothèque de templating de texte et un moteur de scripting .NET utilisé pour la génération de texte dynamique. Il fonctionne comme un processeur de template et un bac à sable de scripting sécurisé, fournissant un environnement d'exécution sécurisé qui restreint l'exposition des objets pour empêcher l'exécution de code non autorisé. Le projet inclut également un analyseur de template d'arbre syntaxique abstrait qui permet l'analyse et la modification programmatique des templates.

Le moteur dispose d'un moteur de template Liquid dédié et d'un mode de compatibilité, lui permettant d'analyser, d'exécuter et de convertir des templates écrits en syntaxe Liquid. Il se distingue par un système de filtrage d'exposition des membres qui permet aux développeurs de renommer, masquer ou filtrer les propriétés d'objets pour contrôler la manière dont les données sont accédées au sein des templates.

La bibliothèque couvre un large éventail de capacités incluant le rendu de template asynchrone, la logique conditionnelle et l'itération de collection. Elle fournit des utilitaires intégrés pour la manipulation de données, tels que des opérations mathématiques, la conversion JSON, l'arithmétique de date et d'heure, et un traitement de texte étendu utilisant des expressions régulières. Les développeurs peuvent en outre étendre le moteur en définissant des fonctions personnalisées et en intégrant des classes externes.

Le projet fournit une surface API sécurisée pour prendre en charge la publication en tant que binaire natif via Native AOT.

Features

  • Dynamic Text Generation - Uses a .NET scripting engine to produce flexible text output based on data and custom logic.
  • .NET Scripting Engines - Implements a lightweight scripting engine for executing custom logic and dynamic expressions within .NET applications.
  • Template Rendering Engines - Evaluates compiled templates against data contexts to produce final dynamic text output.
  • Template - Converts source text into a visitable abstract syntax tree for programmatic template analysis and modification.
  • Runtime Member Visibility Filtering - Uses boolean rules to determine which public instance fields and properties are visible to the template engine.
  • Template AST Analysis - Converts text templates into abstract syntax trees for programmatic analysis and modification.
  • AST-Based Template Parsing - Converts template source text into a visitable abstract syntax tree for programmatic analysis and round-trip text generation.
  • Embedded Scripting Logic - Runs scripts containing variables and blocks to manipulate data and control text flow.
  • Function Definitions - Enables the creation of anonymous or parametric functions to encapsulate reusable logic and computations within templates.
  • Text Templating Engines - Renders text templates using conditional logic, loops, and data-binding expressions.
  • Execution Sandboxes - Provides a secure execution environment that restricts object exposure to prevent unauthorized code execution.
  • Object Exposure Controls - Limits access to host objects using sanitized data structures to prevent unauthorized code execution within the sandbox.
  • Scripting Sandboxes - Provides a secure execution environment that restricts host system access via whitelists to prevent unauthorized code execution.
  • Runtime Access Controls - Controls which properties and methods are accessible within the sandbox for safe evaluation.
  • Liquid - Evaluates templates written in legacy Liquid syntax to support migration without requiring manual rewriting.
  • Text Template Rendering - Processes templates with logic and expressions to produce dynamic text output.
  • Template Logic Customization - Extends the engine with proprietary functions and filtered object exposure to control rendering.
  • Data Manipulation - Transforms strings, arrays, and dates using built-in functions for data processing.
  • Collection Iteration - Loops through arrays or numeric ranges using for and while statements within templates.
  • Structured Data Manipulation - Creates and modifies objects and arrays using dot notation and zero-based indexing.
  • JSON Serializers - Serializes objects to JSON format and transforms JSON strings back into objects.
  • AST to Source Conversion - Generates a textual representation from a syntax tree while preserving or removing whitespace.
  • External Class Bindings - Integrates external classes and delegates to extend the functional capabilities of the template engine.
  • AOT-Compatible Libraries - Provides a restricted API surface that avoids dynamic reflection to enable publishing as a native binary via Native AOT.
  • AOT-Compatible Rendering - Provides a safe API surface that avoids runtime reflection to support native ahead-of-time compilation.
  • Template Extensions - Expands available template capabilities by adding custom logic and functions to the execution context.
  • Conditional Logic - Controls execution flow using boolean comparisons, if-else statements, and switch blocks.
  • Data Type Manipulators - Processes strings, arrays, dates, and numbers using built-in functions for calculations.
  • Runtime Template Expressions - Executes custom logic within templates using code blocks and expression statements.
  • Expression Piping - Implements a pipe operator that passes the output of one expression directly into another for sequential data transformations.
  • Multi-Syntax Parsing Support - Parses scripts using different language specifications to enable migration and compatibility between formats.
  • Object Reflection Utilities - Retrieves keys, values, and types from data objects to determine their structure.
  • Script Variable Management - Stores and retrieves data using global and local variables to pass information through scripts.
  • Scripting Environment Extensions - Binds external functions and objects into the execution environment to add specialized capabilities.
  • Scoped Execution Contexts - Resolves variables against a specific object using scoped blocks to change the current execution context.
  • General Array Operations - Provides functions for sorting, reversing, and joining array elements within templates.
  • Arithmetic Operations - Performs basic arithmetic, rounding, and random number generation.
  • Abstract Syntax Tree Parsing - Converts source text into a visitable abstract syntax tree for programmatic analysis and modification.
  • Asynchronous Execution Models - Implements non-blocking operations during template processing to maintain responsiveness during high-latency data fetches.
  • Dynamic Expression Evaluators - Evaluates runtime expressions by resolving variables and components to produce dynamic output.
  • Template Control Flow - Executes loops and conditional logic to dynamically determine which content to render.
  • Template Value Piping - Manipulates template values using built-in operations chained through a pipe operator.
  • Compatibility Mode Parsing - Supports interchangeable parsing modes to maintain compatibility with legacy scripts and different language specifications.
  • Asynchronous Template Rendering - Processes templates using non-blocking operations to maintain stability during heavy concurrent traffic.
  • Script Conversions - Provides a dedicated conversion tool to transform scripts from Liquid format to Scriban syntax.

Historique des stars

Graphique de l'historique des stars pour scriban/scribanGraphique de l'historique des stars pour scriban/scriban

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Scriban

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Scriban.
  • lunet-io/scribanAvatar de lunet-io

    lunet-io/scriban

    3,905Voir sur GitHub↗

    Scriban is a .NET text templating engine and embedded scripting language used for dynamic text generation. It functions as an abstract syntax tree manipulation tool and a template parser, allowing for the conversion of scripts into visitable trees for analysis, modification, and rendering. The engine is specifically designed for Native AOT compatibility, utilizing a reflection-free API to execute templates in trimmed environments. It also provides a dedicated parser and conversion system for Liquid templates, enabling the migration and execution of Liquid scripts within .NET. The project cov

    C#
    Voir sur GitHub↗3,905
  • mouredev/hello-javaAvatar de mouredev

    mouredev/hello-java

    4,304Voir sur GitHub↗

    This project is a collection of instructional resources and curriculum materials designed to teach the Java language. It provides a structured programming course, a fundamentals guide, and an object-oriented programming tutorial, supported by a series of practical coding exercises and implementation challenges. The curriculum focuses on implementing object-oriented patterns, including inheritance, polymorphism, and abstraction. It covers the creation of classes, the use of interfaces to define behavioral contracts, and the application of access modifiers to control data visibility. The educa

    Javacursojavapoo
    Voir sur GitHub↗4,304
  • gopl-zh/gopl-zh.github.comAvatar de gopl-zh

    gopl-zh/gopl-zh.github.com

    4,958Voir sur GitHub↗

    This project is a Chinese translation of a comprehensive guide to the Go programming language. It serves as a localized educational resource and technical manual designed to provide guidance on language syntax, design, and software development. The resource covers a broad range of Go language education, including the implementation of programming patterns and system design. It includes translated lessons and examples that focus on core language features such as concurrency and the use of interfaces. The content spans various capability areas, including language fundamentals, data modeling, r

    Goprogramming-language
    Voir sur GitHub↗4,958
  • rhaiscript/rhaiAvatar de rhaiscript

    rhaiscript/rhai

    5,453Voir sur GitHub↗

    Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications. It functions as an abstract syntax tree compiler and native interop layer, allowing developers to map Rust types and functions into a scripting environment for bidirectional communication. The project serves as a framework for creating customizable domain-specific languages. It allows for the definition of custom operators, syntax, and restricted execution environments, enabling the creation of specialized languages with tailored functional sets. The engine covers a broad rang

    Rustembeddedembedded-scripting-languageno-std
    Voir sur GitHub↗5,453
Voir les 30 alternatives à Scriban→

Questions fréquentes

Que fait scriban/scriban ?

Scriban est une bibliothèque de templating de texte et un moteur de scripting .NET utilisé pour la génération de texte dynamique. Il fonctionne comme un processeur de template et un bac à sable de scripting sécurisé, fournissant un environnement d'exécution sécurisé qui restreint l'exposition des objets pour empêcher l'exécution de code non autorisé. Le projet inclut également un analyseur de template d'arbre syntaxique abstrait qui permet l'analyse et la modification…

Quelles sont les fonctionnalités principales de scriban/scriban ?

Les fonctionnalités principales de scriban/scriban sont : Dynamic Text Generation, .NET Scripting Engines, Template Rendering Engines, Template, Runtime Member Visibility Filtering, Template AST Analysis, AST-Based Template Parsing, Embedded Scripting Logic.

Quelles sont les alternatives open-source à scriban/scriban ?

Les alternatives open-source à scriban/scriban incluent : lunet-io/scriban — Scriban is a .NET text templating engine and embedded scripting language used for dynamic text generation. It… mouredev/hello-java — This project is a collection of instructional resources and curriculum materials designed to teach the Java language.… gopl-zh/gopl-zh.github.com — This project is a Chinese translation of a comprehensive guide to the Go programming language. It serves as a… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… inkle/ink — Ink is an interactive narrative scripting language, a JSON narrative compiler, and a narrative engine runtime. It… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an…