Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - muxlang/mux-runtime: Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io. · GitHub
Skip to content

Repository files navigation

Mux Logo

mux-runtime

The runtime and standard library for Mux

LicenseDocumentationSonar Quality GateCoverage

Compiled Mux programs link against this library at compile time. It is plain, stable Rust with no LLVM dependency - so runtime and standard-library work needs only a Rust toolchain, not the compiler's LLVM 22 + clang setup.

crates.io is frozen. Versions through 0.5.0 remain published and are not yanked, but no new ones will be. mux-compiler consumes this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, so merging here is what makes a change available. See ADR 0004.


What's here

  • Memory allocation and reference counting
  • String operations (UTF-8)
  • Collections (list, map, set)
  • Type conversions and standard-library runtime support

Runtime failure codes

Terminating runtime failures use stable E06xx codes. The registry is exposed as mux_runtime::panic::RuntimeErrorCode and is part of the C-compatible panic ABI:

CodeFailure
E0600List index out of bounds
E0601Missing map key
E0602Division or modulo by zero
E0603Assertion failure
E0604Where-constraint violation
E0605Integer overflow
E0699Internal runtime failure

The compiler and runtime registries are intentionally separate because they are independently built. Unknown codes received over the FFI are rendered as E0699 for compatibility with older runtimes.

  • Optional features: json, csv, net, sql, sync (see [features] in Cargo.toml; full enables everything and is the default)

Development

cargo build
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt

No LLVM or clang required.

Benchmarks for the hot paths (reference counting, list/map/set, string, JSON) live under benches/ and use criterion:

cargo bench # run all hot-path benchmarks
cargo bench -- --save-baseline main # save a baseline, then compare a change with
cargo bench -- --baseline main # ... --baseline main

Benchmarks are a local/manual tool and a non-blocking CI report; they never gate a merge (shared CI runners are too noisy for a wall-clock threshold).


Relationship to the compiler

The compiler does not import this crate as Rust code - it links the built library when producing executables. It resolves this repo as a git dependency on main, pinned to an exact commit by its Cargo.lock, and links the archive cargo builds into its target/ directory. Producing that archive takes cargo build -p mux-runtime: cargo emits a dependency's rlib and never its staticlib.

For coupled local development, build this repo and point MUX_RUNTIME_LIB at the resulting target/debug/libmux_runtime.a. That is the first thing the compiler consults, so it overrides the library cargo built from the locked commit - which also means a leftover MUX_RUNTIME_LIB will keep overriding it until you unset it.

The compiler never builds this crate while compiling a Mux program, and always links the full feature set. Static linking discards archive members nothing references, so a program that does not touch sql carries no SQLite.


Versioning

The compiler identifies this repo by commit, not by a runtime release number. mux version reports the locked commit as build metadata, for example runtime v0.6.1+g4e2dc14. A coupled change is one PR here and one in mux-compiler; there is no publish step between them.

Record user-visible changes under a dated changelog heading as part of the change itself. Do not create an empty runtime release. Cargo still requires the version field in this manifest, but it is technical metadata for the private git dependency, not a public compatibility promise.

Full release steps: muxlang/mux-context release process.


Related repositories

RepoWhat it is
mux-compilerThe language, compiler, and CLI that links this runtime
mux-websiteDocs site (mux-lang.dev) and the language reference
mux-website-apiCompile/run API behind the playground
tree-sitter-muxTree-sitter grammar + highlight queries
mux-syntax-highlightingTextMate grammar, VSCode extension, canonical syntax spec
mux-contextCross-repo architecture, design rationale, glossary, releases

License

MIT - Maintained by Derek Corniello

About

Runtime + stdlib for compiled Mux programs. Plain stable Rust, no LLVM. Published to crates.io.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages