介绍

把出生时间算成一张完整的紫微斗数命盘,并一键转成大模型读得懂的文字。Rust 核心,供 Rust、Python、Go 调用,结果与 JS iztro 逐字段一致。

适合:开发者 · 命理爱好者 · 产品与决策者

把出生时间算成一张完整的紫微斗数命盘,并能一键转成大模型读得懂的文字 —— 排盘交给它算准,解读交给 AI。

一行调用得到的就是这段 Markdown,直接贴进任何大模型就能开始问:

# 命盘 2000-8-16 寅时 女

## 基本信息
- 阳历: 2000-8-16 · 农历: 二〇〇〇年七月十七 · 时辰: 寅时 (03:00~05:00)
- 四柱: 庚辰 甲申 丙午 庚寅 · 生肖: 龙 · 星座: 狮子座
- 五行局: 木三局 · 命主: 破军 · 身主: 文昌
- 命宫: 午 · 身宫: 戌 (官禄) · 来因宫: 辰 (夫妻)
- 生年四化: 太阳化禄→子女, 武曲化权→财帛, 太阴化科→仆役, 天同化忌→疾厄

## 十二宫总览
| 宫位 | 主星 | 辅星 | 大限 |
|---|---|---|---|
| **命宫** 午 | 紫微(庙) | 文曲(陷) | 3-12 |
| 兄弟 巳 | 天机(平) | — | 13-22 |
| 夫妻 辰 [来因宫] | 七杀(庙) | 右弼, 火星(陷) | 23-32 |
(其余九行略)

## 格局
- **府相朝垣** (命宫): 天府(庙), 天相(庙)

## 十二宫

### 命宫 (壬午) · 大限 3-12
- 主星: 紫微(庙)
- 辅星: 文曲(陷)
- 杂耀: 凤阁, 天福, 截路, 蜚廉, 年解
- 三方四正: 对宫 迁移 · 三合 财帛, 官禄
- 宫干壬飞化: 天梁化禄→子女, 紫微化权→命宫, 左辅化科→官禄, 武曲化忌→财帛
- 十二神: 长生·衰, 博士·青龙, 岁前·丧门, 将前·灾煞
- 小限虚岁: 5, 17, 29, 41, 53, 65, 77, 89, 101, 113

(其余十一宫略)

排出来的盘准不准,有一条硬标准:与 JS iztro v2.6.1 逐字段零差异, 由 716,314 例金标测试守着。

核心用 Rust 实现,通过三套绑定暴露给上层编程语言:

它解决什么问题

紫微斗数排盘看似只是查表,实际上牵扯一连串容易出错的历法与流派细节:农历闰月的处理、 晚子时算今天还是明天、年干支按正月初一还是立春换年、虚岁怎么进位、不同流派的四化表差异。 任何一处取舍不同,排出的盘就不是同一张。

社区里最完整的开源实现是 JavaScript 的 iztro, 但它只能在 JS 运行时里用。x-iztro 把这套逻辑完整移植到 Rust, 让服务端、数据分析脚本、命令行工具、移动端也能用上同一套排盘结果。

与 iztro 的关系

x-iztro 是 iztro v2.6.1 的移植,不是重新发明。凡是 iztro 有的功能与数据, 两者结果必须逐字段一致 —— 这条由 716,314 例金标测试守着, 详见准确性保证。

特性

一键转成 AI 能读的文字

内置语义化文本投影(to_text):把一张盘或一段运限投影成上面那种自然语言文本, 直接交给大模型分析,不必自己拼接命盘描述。见语义化文本。

排盘与运限完整

本命盘、大限、小限、童限、流年、流月、流日、流时,六个层级的宫位、星耀、四化与 三方四正全部可取。年系杂耀、岁前十二神、将前十二神、博士十二神、长生十二神一应俱全。

流派与分界点可配置

Config 的六个开关覆盖了实践中会分歧的每一处:年分界点、运限分界点、虚岁分界点、 晚子时归属、算法派别(默认 / 中州派)、排盘视角(天盘 / 地盘 / 人盘), 另可整表替换四化表与亮度表。默认值与 JS iztro 一致, 细节见 Config 详解。

六种盘面语言

简体中文、繁体中文、英文、日文、韩文、越南文。同一张盘换盘面语言只是换一次翻译, 排盘结果不受影响。

中文盘、英文盘,判断结果一样

给开发者

星名宫名在不同盘面语言下文本不同,但每个实体都额外带一个稳定的标识(key)。 Python 的枚举与 Go 的常量就建立在这些标识上, 所以「命宫有没有紫微星」这类判断,在任何盘面语言的盘上写法与结果都一样。 见 key 契约。

一分钟上手

from x_iztro import Astro

astro = Astro()
chart = astro.by_solar("2000-8-16", 2, "female")   # 2 = 时辰索引,寅时 03:00-05:00

soul = chart.palace("soulPalace")                  # 命宫
print(chart.five_elements_class, chart.soul, chart.body)
print(soul.name, soul.heavenly_stem + soul.earthly_branch)
print([s.name for s in soul.major_stars])
木三局 破军 文昌
命宫 壬午
['紫微']

三种编程语言的完整安装与示例见快速开始。

从哪读起

本页目录