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
1,318 downloads per month
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