| Crates.io | seq-core |
| lib.rs | seq-core |
| version | 3.0.1 |
| created_at | 2026-01-13 02:23:07.138011+00 |
| updated_at | 2026-01-25 18:39:59.830443+00 |
| description | Core runtime library for stack-based languages (Value, Stack, Channels) |
| homepage | |
| repository | https://github.com/navicore/patch-seq |
| max_upload_size | |
| id | 2039184 |
| size | 151,712 |
Core runtime primitives for stack-based concatenative languages.
This crate provides the language-agnostic foundation that can be shared across multiple stack-based languages (Seq, actor languages, etc.).
Value enum supporting Int, Float, Bool, String, Symbol, Variant, Map, Quotation, Closure, Channel, and WeaveCtx[dependencies]
seq-core = "0.19"
use seq_core::{Value, Stack, push, pop, alloc_stack};
use seq_core::seqstring::global_string;
// Create a stack
let stack = alloc_stack();
// Push values
let stack = unsafe { push(stack, Value::Int(42)) };
let stack = unsafe { push(stack, Value::String(global_string("hello".to_string()))) };
// Pop values
let (stack, value) = unsafe { pop(stack) };
seq-core/
├── error.rs # Thread-local FFI-safe error handling
├── memory_stats.rs # Cross-thread memory statistics
├── arena.rs # Thread-local bump allocation
├── seqstring.rs # Arena/global string allocation
├── tagged_stack.rs # 40-byte stack value layout
├── value.rs # Core Value enum
├── stack.rs # Stack operations and value conversion
└── son.rs # Seq Object Notation serialization
seq-core is designed to be the foundation for multiple languages:
See seq-actor for an example of building actor primitives on seq-core.
MIT