distrib_common/runtime.rs
1// This is free and unencumbered software released into the public domain.
2
3use alloc::string::String;
4use derive_more::{Display, FromStr};
5
6#[derive(Clone, Debug, Display, Default, Eq, FromStr, Hash, Ord, PartialEq, PartialOrd)]
7#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
8#[non_exhaustive]
9pub enum Runtime {
10 /// The BEAM (aka Erlang/OTP) runtime.
11 ///
12 /// See: <https://www.erlang.org/blog/a-brief-beam-primer/>
13 Beam,
14
15 /// The Deno runtime.
16 ///
17 /// See: <https://deno.com/>
18 #[cfg(feature = "unstable")]
19 Deno,
20
21 /// The .NET runtime.
22 ///
23 /// See: <https://dotnet.microsoft.com/>
24 #[cfg(feature = "unstable")]
25 Dotnet,
26
27 /// The JVM (Java Virtual Machine) runtime.
28 ///
29 /// See: <https://java.com/>
30 #[cfg(feature = "unstable")]
31 Jvm,
32
33 /// The Node.js runtime.
34 ///
35 /// See: <https://nodejs.org/>
36 Node,
37
38 /// The WebAssembly (aka Wasm) runtime.
39 ///
40 /// See: <https://webassembly.org/>
41 #[default]
42 WebAssembly,
43}