MCPcopy Index your code
hub / github.com/Icemic/moyu

github.com/Icemic/moyu @v0.15.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.15.1 ↗ · + Follow
1,655 symbols 3,869 edges 326 files 196 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MoYu - Cross-Platform Visual Novel Engine

MoYu Logo

简体中文 | English | 日本語

A progressive cross-platform visual novel engine with a Rust core, using browser-independent React to build interfaces and presentation.

MPL-2.0 License Rust CI PRs Welcome Discord QQ


Built for modern visual novel development, Moyu combines a Rust core with a JS/React development workflow, offering creators a progressive experience from rapid prototyping to deep customization.

For a complete introduction, tutorials, and documentation, visit the official site: https://momoyu.ink.

Features

  • Consistent cross-platform support: Runs on Windows, macOS, Linux, Android, iOS, and Web — write once, run everywhere.
  • Multiple graphics backends: Switch between Vulkan / Metal / DX12 / OpenGL.
  • Highly customizable interfaces: Use React to build any UI and system, reusing the mature ecosystem's resources and tooling.
  • Progressive and flexible: From the standard framework to deep extensions in the Rust layer, complexity is unlocked step by step.
  • Open source and business-friendly: Licensed under MPL-2.0 — free to use, including for commercial projects.

Layered Architecture

  • Rust layer: Resource management / graphics rendering / audio system / native plugins.
  • JavaScript layer: React components / story logic / animation orchestration.

Repository Structure

  • crates/ — The Rust engine core, runtime, nodes, platform abstraction, and more.
  • packages/ — Upper-level JavaScript / TypeScript: @momoyu-ink/kit (React SDK), @momoyu-ink/cli (CLI), and more.

Quick Start

The engine is used through its companion standard framework. Head to the official framework repository and follow its instructions to clone, install, and run:

https://github.com/DeepSpaceMill/framework

For complete guidance on installation, asset placement, and script writing, see the official site: https://momoyu.ink.

Contributing

Contributions of all kinds are welcome, including documentation improvements and internationalization, template development, engine feature extensions, new platform support, and performance optimization. Please read the Contributing Guide before getting started.

Community

If you have questions or ideas, feel free to join the conversation on Discord or in the QQ group.

License

Unless otherwise specified, this project is licensed under the Mozilla Public License v2.0 (MPL-2.0), as described in each Cargo.toml or package.json file and the LICENSE file.

Some content is licensed under the MIT License; see the package.json and LICENSE files in the corresponding directories for details.

Extension points exported contracts — how you extend this code

Command (Interface)
Command is an optional trait for nodes or plugins who need receive commands.\ A command is a message that is sent to a n [7 …
crates/core/src/traits/command.rs
VideoDecoder (Interface)
Unified video decoder trait for both native (FFmpeg) and web (WebCodecs) backends. [2 implementers]
crates/video/src/decoder/mod.rs
Console (Interface)
* The **`console`** object provides access to the debugging console (e.g., the Web console in Firefox). * * [MDN R
packages/kit/src/runtime-globals.ts
EngineConfig (Interface)
(no doc)
packages/cli/src/utils/engine.ts
Bounds (Interface)
(no doc)
packages/bunnymark/src/bunny.ts
Plugin (Interface)
A Plugin means an extra function module that different from a [Node](super::Node). [4 implementers]
crates/core/src/traits/plugin.rs
RootHandle (Interface)
(no doc) [1 implementers]
packages/kit/src/react.ts
VersionsJson (Interface)
(no doc)
packages/cli/src/utils/engine.ts

Core symbols most depended-on inside this repo

push
called by 91
crates/core/src/core/render_command.rs
error
called by 80
packages/kit/src/runtime-globals.ts
log
called by 72
packages/kit/src/runtime-globals.ts
send
called by 64
packages/kit/src/debug/runtime.ts
info
called by 51
packages/kit/src/runtime-globals.ts
get
called by 48
crates/platform/src/visible_hand.rs
load
called by 48
crates/video/src/player.rs
context
called by 42
crates/runtime/src/vm.rs

Shape

Method 741
Function 577
Class 171
Interface 95
Enum 71

Languages

Rust71%
TypeScript29%

Modules by API surface

packages/kit/src/hooks/useStage.ts94 symbols
crates/core/src/nodes/node.rs60 symbols
crates/scenario/src/lib.rs53 symbols
crates/nodes/src/nodes/shader.rs53 symbols
packages/kit/src/debug/session.ts51 symbols
crates/video/src/player.rs37 symbols
packages/kit/src/debug/runtime.ts33 symbols
crates/runtime/src/vm.rs28 symbols
crates/nodes/src/renderer/shader.rs28 symbols
crates/core/src/core.rs28 symbols
packages/kit/src/react.ts27 symbols
packages/cli/src/utils/android.ts25 symbols

For agents

$ claude mcp add moyu \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact