HVML——The world-first programmable markup language

  • Community Activities

    Community Activities

    The latest community activities. For more information, please check the "Community Activities" on the "Community" page.

  • Descriptive  Grammar

    Descriptive Grammar

    HVML makes every line of code have clear semantics through verb tags, preposition attributes and adverb attributes that conform to the natural language expression habits, which can help developers write program code with better readability.

  • Flexible Expressions

    Flexible Expressions

    On top of the widely used JSON representation method, HVML enables it to have the ability of dynamic processing and parameterized data representation. This can not only help us to take advantage of the existing system capabilities, but also help developers quickly expand the functionality of HVML programs.

  • Data-driven


    HVML provides a method to realize functions by manipulating data. Moreover, HVML is committed to connecting different modules in the system in series through a unified data expression, rather than realizing interoperability between modules through complex interface calls. This can effectively avoid the interface explosion problem existing in traditional programming languages.

  • Asynchronous and Concurrent

    Asynchronous and Concurrent

    HVML uses a unique way to support coroutines, threads, closures, and other essential features of modern programming languages.

Stacked Virtual Machine

The HVML interpreter uses a simple and efficient stack based virtual machine. It does not use any garbage collector, which greatly improves its running speed.


Developers can easily implement asynchronous or concurrent programming that is difficult to manage in other programming languages without caring about the underlying implementation details.

Template and Document Operation

HVML completely decouples the interface, interaction and data by using parameterized extended JSON expressions to define document fragment templates or data templates.

Flexible Dynamics

Developers can not only obtain data, templates and program fragments from remote data sources, but also delete existing variables.

Community News