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
janino-compiler avatar

janino-compiler/janino

0
View on GitHub↗
1,322 stars·212 forks·Java·36 viewsjanino-compiler.github.io/janino↗

Janino

Janino is a lightweight Java compiler and scripting engine designed to transform source code into executable bytecode directly within the application heap. It functions as a runtime compiler and class loading library, enabling the dynamic definition and execution of Java classes, methods, and expressions without requiring a full application restart.

The project distinguishes itself through its ability to perform in-memory compilation and recursive descent parsing, which allows for the resolution of complex dependencies and circular references during the translation process. It provides a framework for sandboxed execution, ensuring that dynamically generated logic operates within defined security constraints to restrict access to system resources.

Beyond its core compilation capabilities, the library supports static analysis and programmatic code manipulation by parsing source files into structured trees. It maintains metadata links between generated bytecode and original source lines, facilitating the use of standard debuggers for interactive inspection of dynamic logic. The software is distributed as a library intended for integration into existing Java applications.

Features

  • Source-to-Bytecode Compilers - Compiles Java source code into executable bytecode at runtime.
  • In-Memory Compilation - Compiles Java source code directly into bytecode within the application heap at runtime.
  • Dynamic Script Execution - Executes Java code blocks and scripts on the fly without requiring application restarts.
  • Dynamic Logic Evaluators - Computes standalone Java expressions and logic at runtime for flexible configuration.
  • Runtime Generators - Enables the dynamic definition and execution of Java classes and methods without requiring application restarts.
  • Runtime Bytecode Compilation - Compiles Java source code and expressions into bytecode directly in memory for immediate execution.
  • Dynamic Expression Evaluators - Evaluates Java expressions dynamically at runtime to process logic and formulas.
  • Method Body Generators - Constructs class definitions and method bodies at runtime to execute custom behaviors.
  • Recursive Descent Parsers - Implements recursive descent parsing to resolve complex dependencies and circular references during compilation.
  • Abstract Syntax Tree Parsing - Parses Java source code into hierarchical tree structures for programmatic analysis and manipulation.
  • Class Loading Mechanisms - Enables dynamic loading of compiled Java classes into the application runtime.
  • Source-Based Loaders - Extends standard class loading to define and execute new Java classes dynamically from source strings.
  • Programmatic Code Refactoring - Reads compilation units into memory as structured trees to enable programmatic code updates.
  • Java Parsers - Provides a framework for parsing Java source files into structured trees for analysis and modification.
  • Java Source Code Analyzers - Parses Java source files into structured abstract syntax trees to enable static analysis and programmatic code manipulation.
  • Execution Sandboxes - Provides sandboxed execution environments to restrict system resource access for dynamically generated logic.

Star history

Star history chart for janino-compiler/janinoStar history chart for janino-compiler/janino

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. 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

Projects sharing features with Janino

These projects share indexed features with Janino. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • knetic/govaluateKnetic avatar

    Knetic/govaluate

    3,940View on GitHub↗

    govaluate is a Go expression evaluator and runtime logic parser. It functions as a dynamic rule engine that converts string-based expressions into executable operations, allowing for the calculation of mathematical and logical expressions at runtime. The library enables the execution of business rules and custom formulas without recompiling source code. It supports extending evaluation behavior through the injection of external parameters and the execution of user-defined custom functions. The system provides capabilities for dynamic data validation, including regular expression matching and

    Goevaluationexpressiongo
    View on GitHub↗3,940
  • rhaiscript/rhairhaiscript avatar

    rhaiscript/rhai

    5,453View on 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
    View on GitHub↗5,453
  • javaparser/javaparserjavaparser avatar

    javaparser/javaparser

    6,053View on GitHub↗

    JavaParser is a library that parses Java source code up to version 12 into an Abstract Syntax Tree (AST), enabling programmatic analysis, transformation, and generation of Java code. It serves as a parser, code analyzer, code generator, comment parser, and symbol resolver, providing a unified toolkit for working with Java source at the AST level. The library distinguishes itself through several integrated capabilities that go beyond basic parsing. It includes a symbol resolution engine that resolves type and symbol references across files for accurate semantic analysis, and an error-recovery

    Javaabstract-syntax-treeastcode-analysis
    View on GitHub↗6,053
  • scriban/scribanscriban avatar

    scriban/scriban

    3,905View on GitHub↗

    Scriban is a text templating library and .NET scripting engine used for dynamic text generation. It functions as a template processor and a safe scripting sandbox, providing a secure execution environment that restricts object exposure to prevent unauthorized code execution. The project also includes an abstract syntax tree template parser that allows for programmatic template analysis and modification. The engine features a dedicated Liquid template engine and compatibility mode, allowing it to parse, execute, and convert templates written in Liquid syntax. It distinguishes itself through a

    C#handlebarsliquidmustache
    View on GitHub↗3,905
Compare all 30 related projects→

Frequently asked questions

What does janino-compiler/janino do?

Janino is a lightweight Java compiler and scripting engine designed to transform source code into executable bytecode directly within the application heap. It functions as a runtime compiler and class loading library, enabling the dynamic definition and execution of Java classes, methods, and expressions without requiring a full application restart.

What are the main features of janino-compiler/janino?

The main features of janino-compiler/janino are: Source-to-Bytecode Compilers, In-Memory Compilation, Dynamic Script Execution, Dynamic Logic Evaluators, Runtime Generators, Runtime Bytecode Compilation, Dynamic Expression Evaluators, Method Body Generators.

Which projects share features with janino-compiler/janino?

Projects with overlapping indexed features include: knetic/govaluate — govaluate is a Go expression evaluator and runtime logic parser. It functions as a dynamic rule engine that converts… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… scriban/scriban — Scriban is a text templating library and .NET scripting engine used for dynamic text generation. It functions as a… javaparser/javaparser — JavaParser is a library that parses Java source code up to version 12 into an Abstract Syntax Tree (AST), enabling… chromedevtools/devtools-frontend — This project is a specialized browser debugging interface designed to monitor DOM elements, network traffic, and… frege/frege — Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for…

Curated searches featuring Janino

Hand-picked collections where Janino appears.
  • Compiler directives