Skip to main content

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}