#version #container #wild-fly

wildfly_container_versions

A library for WildFly container versions

17 releases

new 0.2.0 Apr 10, 2025
0.1.5 Apr 3, 2025
0.1.1 Mar 31, 2025
0.0.10 Mar 27, 2025
0.0.5 Feb 28, 2025

#1089 in Data structures

Download history 34/week @ 2025-02-12 285/week @ 2025-02-19 152/week @ 2025-02-26 133/week @ 2025-03-05 16/week @ 2025-03-12 277/week @ 2025-03-19 396/week @ 2025-03-26 620/week @ 2025-04-02

1,318 downloads per month

Apache-2.0

34KB
442 lines

WildFly Container Versions

A library for managing WildFly container versions deployed at https://hub.docker.com/r/jboss/wildfly and https://quay.io/repository/wildfly/wildfly.

The library contains a struct describing WildFly container versions and functions to parse expressions that are either short versions, multipliers, ranges, enumerations, or a combination of them.

use semver::Version;

#[derive(Debug, Eq, PartialEq, Hash, Clone)]
pub struct WildFlyContainer {
    pub identifier: u16,
    pub version: Version,
    pub short_version: String,
    pub core_version: Version,
    pub suffix: String,
    pub repository: String,
    pub platforms: Vec<String>,
}
use anyhow::Result;
use wildfly_container_versions::WildFlyContainer;

fn main() -> Result<()> {
    let enumeration: Vec<WildFlyContainer> = WildFlyContainer::enumeration("3x10,23..26,5x28,34")?;
    let range: Vec<WildFlyContainer> = WildFlyContainer::range("26.1..29")?;
    let versions: Vec<WildFlyContainer> = WildFlyContainer::versions("2x33")?;
    let version: WildFlyContainer = WildFlyContainer::version("35")?;
    let lookup: WildFlyContainer = WildFlyContainer::lookup(340)?;
    Ok(())
}

Version Expressions

Version expressions are either short versions, multipliers, ranges, enumerations, or a combination of them. They follow this BNF:

<expression> ::= <expression> "," <element> | <element>
<element> ::= <multiplier> "x" <range> | <multiplier> "x" <short_version> | <range> | <short_version>
<range> ::= <short_version> ".." <short_version> | ".." <short_version> | <short_version> ".." | ".."
<multiplier> ::= <nonzero_number> | <two_digit_number>
<short_version> ::= <major> | <major> "." <minor>
<major> ::= <two_digit_number> | <three_digit_number>
<minor> ::= <nonzero_number> | <two_digit_number>
<three_digit_number> ::= <nonzero_number> <number> <number>
<two_digit_number> ::= <nonzero_number> <number>
<number> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<nonzero_number> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

Examples

  • 10
  • 26.1
  • 3x35
  • 23..33
  • 25..
  • ..26.1
  • ..
  • 5x33..35
  • 20,25..29,2x31,3x32,4x33..35

Supported Versions

Short Version WildFly Version Image / Tag Platforms
10 10.0.0.Final docker.io/jboss/wildfly:10.0.0.Final
10.1 10.1.0.Final docker.io/jboss/wildfly:10.1.0.Final
11 11.0.0.Final docker.io/jboss/wildfly:11.0.0.Final
12 12.0.0.Final docker.io/jboss/wildfly:12.0.0.Final
13 13.0.0.Final docker.io/jboss/wildfly:13.0.0.Final
14 14.0.1.Final docker.io/jboss/wildfly:14.0.1.Final
15 15.0.1.Final docker.io/jboss/wildfly:15.0.1.Final
16 16.0.0.Final docker.io/jboss/wildfly:16.0.0.Final
17 17.0.1.Final docker.io/jboss/wildfly:17.0.1.Final
18 18.0.1.Final docker.io/jboss/wildfly:18.0.1.Final
19 19.0.0.Final docker.io/jboss/wildfly:19.0.0.Final
19.1 19.1.0.Final docker.io/jboss/wildfly:19.1.0.Final
20 20.0.1.Final docker.io/jboss/wildfly:20.0.1.Final
21 21.0.2.Final docker.io/jboss/wildfly:21.0.2.Final
22 22.0.1.Final docker.io/jboss/wildfly:22.0.1.Final
23 23.0.2.Final quay.io/wildfly/wildfly:23.0.2.Final
24 24.0.1.Final quay.io/wildfly/wildfly:24.0.1.Final
25 25.0.1.Final quay.io/wildfly/wildfly:25.0.1.Final
26 26.0.1.Final quay.io/wildfly/wildfly:26.0.1.Final
26.1 26.1.3.Final quay.io/wildfly/wildfly:26.1.3.Final-jdk17 linux/amd64, linux/arm64
27 27.0.1.Final quay.io/wildfly/wildfly:27.0.1.Final-jdk19 linux/amd64, linux/arm64
28 28.0.1.Final quay.io/wildfly/wildfly:28.0.1.Final-jdk20 linux/amd64, linux/arm64
29 29.0.1.Final quay.io/wildfly/wildfly:29.0.1.Final-jdk20 linux/amd64, linux/arm64
30 30.0.1.Final quay.io/wildfly/wildfly:30.0.1.Final-jdk20 linux/amd64, linux/arm64
31 31.0.1.Final quay.io/wildfly/wildfly:31.0.1.Final-jdk20 linux/amd64, linux/arm64
32 32.0.1.Final quay.io/wildfly/wildfly:32.0.1.Final-jdk21 linux/amd64, linux/arm64, linux/s390x
33 33.0.2.Final quay.io/wildfly/wildfly:33.0.2.Final-jdk21 linux/amd64, linux/arm64, linux/s390x, linux/ppc64le
34 34.0.1.Final quay.io/wildfly/wildfly:34.0.1.Final-jdk21 linux/amd64, linux/arm64, linux/s390x, linux/ppc64le
35 35.0.1.Final quay.io/wildfly/wildfly:35.0.1.Final-jdk21 linux/amd64, linux/arm64, linux/s390x, linux/ppc64le

Dependencies

~2.2–3.5MB
~56K SLoC