@fusionstrings/swiss-eph

中文文档
0.1.1发布于 2026/01/18AGPL-3.0TypeScriptESM + CJS近 30 天下载 2109

Swiss Ephemeris WASM binding for Deno, Node.js and Browser

原始使用文档
文档目录10 节
  1. Features
  2. Installation (JS/TS)
  3. Deno / JSR
  4. Node.js / npm
  5. Quick Start (JS/TS)
  6. Rust Usage
  7. Quick Start (Rust)
  8. API Overview (JS/TS)
  9. License
  10. Credits

@fusionstrings/swiss-eph

Swiss Ephemeris astronomical calculation library compiled to WebAssembly for cross-platform JavaScript/TypeScript usage, with idiomatic Rust bindings.

crates.io docs.rs License: AGPL-3.0

Features

  • Cross-platform: Works in Deno, Node.js, browsers, and edge runtimes (Cloudflare Workers)
  • Rust Bindings: Complete FFI and safe Rust API for native performance
  • High precision: Bit-level accuracy matching native Swiss Ephemeris calculations
  • Complete API: 95+ functions for planetary positions, houses, eclipses, and more
  • Zero dependencies: Self-contained WASM module with built-in Moshier ephemeris
  • TypeScript: Full type definitions with TSDoc documentation

Installation (JS/TS)

Deno / JSR

import { load } from "jsr:@fusionstrings/swiss-eph";

Node.js / npm

npm install @fusionstrings/swiss-eph
import { load } from "@fusionstrings/swiss-eph";

Quick Start (JS/TS)

import { Constants, load } from "@fusionstrings/swiss-eph";

// Initialize the Swiss Ephemeris
const eph = await load();

// Calculate Julian Day for a date
const jd = eph.swe_julday(2024, 6, 15, 12.0, Constants.SE_GREG_CAL);

// Get Sun's position
const { xx, error } = eph.swe_calc_ut(
  jd,
  Constants.SE_SUN,
  Constants.SEFLG_SPEED,
);
console.log(`Sun longitude: ${xx[0]}°`);

Rust Usage

Add this to your Cargo.toml:

[dependencies]
swiss-eph = "0.1.0"

Quick Start (Rust)

use swisseph_x::safe::*;
use swisseph_x::*;

fn main() {
    let jd = julday(2024, 1, 1, 12.0);
    let flags = CalcFlags::new().with_speed();
    let sun = calc(jd, SE_SUN, flags).unwrap();
    println!("Sun longitude: {:.6}°", sun.longitude);
}

API Overview (JS/TS)

FunctionDescription
swe_calc / swe_calc_utPlanetary positions (TT/UT)
swe_houses / swe_houses_exHouse cusps and angles
swe_julday / swe_revjulJulian Day conversions
swe_sidtimeSidereal time
swe_deltatDelta T (TT - UT)

License

AGPL-3.0 - Same license as the Swiss Ephemeris library.

This software is based on the Swiss Ephemeris by Astrodienst AG. See https://www.astro.com/swisseph/ for more information.

Credits

  • Swiss Ephemeris by Astrodienst AG
  • WASM compilation using WASI SDK and wasmbuild

版本与发布记录

@fusionstrings/swiss-eph 共发布 1 个版本,首次发布于 2026/01/18;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.1latest2026/01/189 个月前

关于 @fusionstrings/swiss-eph 的常见问题

@fusionstrings/swiss-eph 是什么?

Swiss Ephemeris WASM binding for Deno, Node.js and Browser

如何安装 @fusionstrings/swiss-eph?

在项目目录运行 npm install @fusionstrings/swiss-eph,或使用 pnpm add / yarn add / bun add。

@fusionstrings/swiss-eph 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fusionstrings/swiss-eph 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@fusionstrings/swiss-eph 可以商用吗?

@fusionstrings/swiss-eph 使用 AGPL-3.0 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@fusionstrings/swiss-eph 的下载量有多少?

根据 npm 官方下载统计,@fusionstrings/swiss-eph 在 2026/10/16 – 2026/11/14 这 30 天内被下载 2,109 次,日均约 70 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fusionstrings/swiss-eph 还在维护吗?

最新版本 0.1.1 发布于 2026/01/18(9 个月前);至今共发布 1 个版本,其中过去 12 个月发布了 1 个;首次发布于 2026/01/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。