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 科学
1,724 每月下载次数
用于 9 个晶格 (3 个直接使用)
730KB
25K SLoC
关于化学元素及其同位素的信息
门捷列夫
门捷列夫是一个库,它包含所有已知的化学元素作为枚举和列表,以及返回每个元素某些属性的方法。
示例
获取特定元素的数据
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
文件。所有数据直接在代码中 - 每个可用的属性都有自己的文件,可以通过功能标志排除构建,以减少不需要所有属性时的二进制大小和编译时间
- 数值属性都伴随提供它们可取值范围的常量
- 文档、测试和示例
数据来源
此库中的数据来自以下来源
-
密度、电子亲和力和电离能
- 国家生物技术信息中心(2023年)。元素周期表。2023年4月15日从 https://pubchem.ncbi.nlm.nih.gov/periodic-table/ 获取。
-
熔点和沸点
- PyPI软件包mendeleev,版本0.16.2。数据最初来源于W.M. Haynes。CRC化学物理学手册。CRC出版社,第97版,2016年。ISBN 9781498754293。https://pypi.ac.cn/project/mendeleev/0.16.2/。
-
其他属性
- PyPI软件包mendeleev,版本0.12.0。https://pypi.ac.cn/project/mendeleev/0.12.0/。
请注意,这个crate的维护者与PyPI软件包的作者不同。
贡献
除非您明确声明,否则您提交的任何有意包含在作品中的贡献(根据Apache-2.0许可证定义),应以下列方式双重许可,不得有任何附加条款或条件。
许可证
许可以下任一
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。