HtmlFlow
Fiscal Host: Open Source Collective
HtmlFlow is a DSL for HTML that sets itself apart from the competition through: 1) type safety, 2) superior performance, 3) progressive rendering.
Contribute
Become a financial contributor.
Financial Contributions
HtmlFlow is all of us
Our contributors 3
Thank you for supporting HtmlFlow.
Connect
Let’s get the ball rolling!
News from HtmlFlow
Updates on our activities and progress.
Presentation at WebIst 2023 Rome
We presented the latest innovations of HtmlFlow at the 19th International Conference WebIst in Rome on October 17th. Our work, titled "Enhancing SSR in Low-Thread Web Servers" demonstrates how to achieve progressive rendering when...
Published on November 27, 2023 by Miguel Gamboa
About
The HtmlFlow API adheres to HTML5.2 standards and is generated with the support of an automated framework (xmlet) based on HTML 5.2 syntax rules. Thus, the HTML resulting from HtmlFlow respects all HTML 5.2 conventions and, whenever you type . after an element the intellisense will just suggest the set of allowed elements and attributes. For example, h1().div() gives a compilation error because it goes against the content allowed by h1 according to HTML5.2. Additionally, all attributes are also strongly typed with enumerated types which restrict the set of accepted values.
HtmlFlow stands out as the most performant engine among state-of-the-art JVM template engines like Velocity, Thymleaf, Mustache, etc and other DSL libraries for HTML such as j2Html and KotlinX Html. Check out the performance results in the most popular benchmarks at spring-comparing-template-engines and our fork of xmlet/template-benchmark.
Much of the development has been carried out by Master of Science (MsC) students funded by research fellowship programs. However, this funding is limited and insufficient to address all community requests, as evidenced by the activity on the issues.
Some of these issues demand substantial development effort and necessitate a dedicated programmer. Examples of those open issues, not limited to:
- IDE formatter and folding plugin
- Improvement of Flowifier with JavaPoet
- Integration of HTML source code fragments within HtmlFlow
- Enhancement of HtmlFlow API to align with idiomatic Kotlin conventions, such as properties and operator overloads
- Support for asynchronous and concurrent fragments via Web components.
Currently, HtmlFlow is continuously evolving with the addition of new features and ongoing community issue resolutions. A recent milestone is the introduction of release 4.0, which seamlessly supports any asynchronous API and has the ability to manage multiple asynchronous data models within a single web template.