#chemistry #atomic #atom #periodic-table #no-alloc #isotope

no-std mendeleev

化学元素列表,它们的同位素及其属性

9 个版本 (破坏性)

0.8.1 2024年6月5日
0.8.0 2023年4月21日
0.7.0 2023年2月6日
0.6.0 2022年12月18日
0.5.0 2022年11月27日

#12 in 科学

Download history 4/week @ 2024-04-26 63/week @ 2024-05-10 52/week @ 2024-05-17 341/week @ 2024-05-24 927/week @ 2024-05-31 276/week @ 2024-06-07 108/week @ 2024-06-14 344/week @ 2024-06-21 382/week @ 2024-06-28 76/week @ 2024-07-05 148/week @ 2024-07-12 329/week @ 2024-07-19 370/week @ 2024-07-26 403/week @ 2024-08-02 613/week @ 2024-08-09

1,724 每月下载次数
用于 9 个晶格 (3 个直接使用)

MIT/Apache

730KB
25K SLoC

关于化学元素及其同位素的信息

Latest version pipeline status Documentation unsafe forbidden License

门捷列夫

门捷列夫是一个库,它包含所有已知的化学元素作为枚举和列表,以及返回每个元素某些属性的方法。

示例

获取特定元素的数据

use mendeleev::Element;

let element = Element::Si;
assert_eq!(element.atomic_number(), 14);
assert_eq!(element.name(), "Silicon");
assert_eq!(format!("{}", element.electronic_configuration()), "[Ne] 3s² 3p²");

示例

搜索元素列表

use mendeleev::{Element, Kelvin};

// Find the element with the highest value for a given property
let highest_melting_point = Element::iter().reduce(|acc, e| {
    core::cmp::max_by(acc, e, |e1, e2| {
        e1.melting_point()
            .unwrap_or(Kelvin(0.0))
            .total_cmp(&e2.melting_point().unwrap_or(Kelvin(0.0)))
    })
});
assert_eq!(highest_melting_point, Some(Element::C));

// Iterate through the elements with no known year of discovery
let mut ancient_elements = Element::iter()
    .filter(|e| matches!(e.year_discovered(), mendeleev::YearDiscovered::Ancient));
assert_eq!(ancient_elements.next(), Some(Element::C));
assert_eq!(ancient_elements.next(), Some(Element::Al));

// Find an element by name
let iron = Element::iter().find(|e| e.name().eq_ignore_ascii_case("iron"));
assert_eq!(iron, Some(Element::Fe));

它还包含每个元素的大部分已知同位素(天然存在的、合成的或理论上的),可以通过与元素本身相似的API访问。

可用的数据

元素

  • 符号
  • 名称(美国英语)
  • 原子序数
  • 原子半径
  • 原子量
  • CPK 和 Jmol 规范中的 RGB 颜色
  • 周期表中的位置(周期和族)
  • 熔点和沸点
  • 熔解热和蒸发热
  • 电子排布
  • 发现数据(年份、地点、发现者)

同位素

  • 对应元素
  • 地球上的相对自然丰度
  • 质量数
  • 中子数

特性

  • 无不安全代码
  • 无依赖项
  • 可选支持 serde
  • 所有属性都是 const'static
  • 与无 std 兼容
  • 大多数类型实现 Display
  • build.rs 文件。所有数据直接在代码中
  • 每个可用的属性都有自己的文件,可以通过功能标志排除构建,以减少不需要所有属性时的二进制大小和编译时间
  • 数值属性都伴随提供它们可取值范围的常量
  • 文档、测试和示例

数据来源

此库中的数据来自以下来源

请注意,这个crate的维护者与PyPI软件包的作者不同。

贡献

除非您明确声明,否则您提交的任何有意包含在作品中的贡献(根据Apache-2.0许可证定义),应以下列方式双重许可,不得有任何附加条款或条件。

许可证

许可以下任一

由您选择。

依赖关系