网页版「MATLAB」开源

GitHub - PhTirst/OpenMat: An independent numerical computing environment with a MATLAB-like language, Rust kernel, and Windows desktop IDE. · GitHub

OpenMat

OpenMat is an independently developed numerical programming environment with a MATLAB-like language, a browser IDE, and a Windows desktop application. Its compatibility target is the MATLAB R2022b base language; compatibility is incomplete and is defined by the checked-in specifications and tests.

The Rust server runs the compiler, bytecode interpreter, and numerical kernel. The React client provides editing, language services, workspace inspection, figures, a drag-and-drop App Designer backed by M-language classes, and a block diagram model editor. Rust compiled to WebAssembly handles plot rendering; the language VM runs natively. The desktop application embeds this frontend using Tauri.

The Windows installer includes calculation and plotting examples. A new desktop session opens Documents/OpenMat/Examples/<version>: open START_HERE.m and click Run . The example catalog covers FFT, least-squares fitting, mathematical patterns and 3D surfaces.

Start developing

The first supported host is Windows x64. Install PowerShell 7, Visual Studio Build Tools with the C++ workload and Windows SDK, CMake, Rust/rustup, Node.js 22.19.0, and pnpm 10.30.3. The repository pins Rust 1.90.0.

From the repository root:

复制代码
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version 0.2.127 --locked
pnpm --dir apps/web install --frozen-lockfile
pwsh -NoProfile -File tools/openmat-dev/Invoke-OpenMatDev.ps1

The launcher starts the native server and web client. MATLAB is not required to build or run OpenMat. See the development guide for workspace selection, smoke tests, and build options, and desktop build instructions for the Windows installer.

Repository

  • crates/: compiler, runtime, numerical providers, server, LSP, and plotting.
  • apps/web/: React IDE, App Designer, and simulation model editor.
  • apps/desktop/: Tauri desktop shell.
  • simulation/: numerical block models, reference/LLVM execution, SLX import and CLI.
  • sdk/, include/, plugins/, toolboxes/: extension interfaces and examples.
  • spec/ and docs/rfcs/: language and protocol contracts.
  • tests/conformance/: OpenMat-authored tests and normalized reference data.
  • tools/: development, compatibility, and release tooling.

Some design documents describe earlier development milestones rather than current completeness. Tests and accepted contracts are the source of truth.

Checks and contributions

复制代码
node tools/release/check-public-source.mjs
cargo fmt --all --check
cargo clippy --locked --workspace --all-targets --all-features -- -D warnings -D clippy::pedantic
cargo test --locked --workspace
pnpm --dir apps/web typecheck
pnpm --dir apps/web test
pnpm --dir apps/web build

See CONTRIBUTING.md for development and source-provenance rules. The conformance harness compares OpenMat results with project-owned manifests and normalized black-box observations. The optional MATLAB oracle requires a separately licensed R2022b installation; public CI does not invoke MATLAB.

License and dependencies

OpenMat's first-party code, documentation, and project-authored tests are licensed under GNU Affero General Public License version 3 only (AGPL-3.0-only), unless a file explicitly states otherwise. See LICENSE. Contributors retain their respective copyrights.

This Git repository does not vendor third-party library source or binaries. Cargo, pnpm, and the release scripts obtain dependencies during builds using lockfiles and pinned checksums. Third-party components retain their own licenses; their license texts and attribution are not relicensed as OpenMat. See dependency and release policy.

OpenMat is an independent project and is not affiliated with or endorsed by MathWorks. MATLAB is a trademark of The MathWorks, Inc.

相关推荐
清晨Coding25 分钟前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js
用户47027840040535 分钟前
C语言编译与链接
后端·开源
我闪了个去37 分钟前
三个机位、一台录音机:一个允许说“我不确定”的波形对齐
开源
鶴哥只手遮天41 分钟前
《Electron 45.2.3 内核解剖》第 4 章 补丁体系:380 个补丁改了什么
前端·electron
FungLeo3 小时前
成为全栈·Vue 管理后台篇·分类树与标签管理:层级数据如何落到管理界面
前端·javascript·vue.js·分类树·naive ui·标签管理·前端数据结构
菩提小狗4 小时前
每日极客日报 · 2026年11月13日
ai·开源·极客日报·it热点·技术资讯
wflynn5 小时前
GitHub 日榜趋势速报 | 2026-11-14
开源·github
分布式存储与RustFS5 小时前
Terraform 状态文件老在本地丢、并发还撞锁:把 state 锁进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
Lank_M6 小时前
白底都占八成,PNG 为何只在图表页赢过 JPG
前端
张一凡936 小时前
给 Coding Agent 加一道"架构闸门":Jin 是如何做到"先审架构、再写代码、不漂移"的
前端·后端·agent