@tishlang/tish-format 1.0.12 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.toml +51 -0
- package/LICENSE +13 -0
- package/bin/tish-format +0 -0
- package/crates/js_to_tish/Cargo.toml +11 -0
- package/crates/js_to_tish/README.md +18 -0
- package/crates/js_to_tish/src/error.rs +55 -0
- package/crates/js_to_tish/src/lib.rs +11 -0
- package/crates/js_to_tish/src/span_util.rs +35 -0
- package/crates/js_to_tish/src/transform/expr.rs +611 -0
- package/crates/js_to_tish/src/transform/stmt.rs +503 -0
- package/crates/js_to_tish/src/transform.rs +60 -0
- package/crates/tish/Cargo.toml +62 -0
- package/crates/tish/build.rs +21 -0
- package/crates/tish/src/cargo_native_registry.rs +32 -0
- package/crates/tish/src/cli_help.rs +576 -0
- package/crates/tish/src/main.rs +853 -0
- package/crates/tish/src/repl_completion.rs +199 -0
- package/crates/tish/tests/cargo_example_compile.rs +67 -0
- package/crates/tish/tests/error_source_location.rs +36 -0
- package/crates/tish/tests/fixtures/cargo_example_project/Cargo.toml +3 -0
- package/crates/tish/tests/fixtures/cargo_example_project/crates/demo-shim/Cargo.toml +11 -0
- package/crates/tish/tests/fixtures/cargo_example_project/crates/demo-shim/src/lib.rs +12 -0
- package/crates/tish/tests/fixtures/cargo_example_project/package.json +10 -0
- package/crates/tish/tests/fixtures/cargo_example_project/src/main.tish +3 -0
- package/crates/tish/tests/fixtures/runtime_error_location.tish +5 -0
- package/crates/tish/tests/fixtures/trycatch_runtime_errors.tish +15 -0
- package/crates/tish/tests/fixtures/tty_capability.tish +9 -0
- package/crates/tish/tests/integration_test.rs +1406 -0
- package/crates/tish/tests/run_optimize_stdout_parity.rs +50 -0
- package/crates/tish/tests/shortcircuit.rs +65 -0
- package/crates/tish/tests/trycatch_runtime_errors.rs +45 -0
- package/crates/tish/tests/tty_capability.rs +43 -0
- package/crates/tish_ast/Cargo.toml +9 -0
- package/crates/tish_ast/src/ast.rs +649 -0
- package/crates/tish_ast/src/lib.rs +5 -0
- package/crates/tish_build_utils/Cargo.toml +11 -0
- package/crates/tish_build_utils/src/lib.rs +577 -0
- package/crates/tish_builtins/Cargo.toml +22 -0
- package/crates/tish_builtins/src/array.rs +803 -0
- package/crates/tish_builtins/src/collections.rs +481 -0
- package/crates/tish_builtins/src/construct.rs +199 -0
- package/crates/tish_builtins/src/date.rs +538 -0
- package/crates/tish_builtins/src/globals.rs +293 -0
- package/crates/tish_builtins/src/helpers.rs +35 -0
- package/crates/tish_builtins/src/iterator.rs +129 -0
- package/crates/tish_builtins/src/lib.rs +21 -0
- package/crates/tish_builtins/src/math.rs +89 -0
- package/crates/tish_builtins/src/number.rs +96 -0
- package/crates/tish_builtins/src/object.rs +36 -0
- package/crates/tish_builtins/src/string.rs +646 -0
- package/crates/tish_builtins/src/symbol.rs +83 -0
- package/crates/tish_builtins/src/typedarrays.rs +298 -0
- package/crates/tish_bytecode/Cargo.toml +17 -0
- package/crates/tish_bytecode/src/chunk.rs +164 -0
- package/crates/tish_bytecode/src/compiler.rs +2604 -0
- package/crates/tish_bytecode/src/encoding.rs +102 -0
- package/crates/tish_bytecode/src/lib.rs +20 -0
- package/crates/tish_bytecode/src/opcode.rs +185 -0
- package/crates/tish_bytecode/src/peephole.rs +189 -0
- package/crates/tish_bytecode/src/serialize.rs +193 -0
- package/crates/tish_bytecode/tests/break_continue_bytecode.rs +44 -0
- package/crates/tish_bytecode/tests/constant_folding.rs +84 -0
- package/crates/tish_bytecode/tests/sort_optimization.rs +31 -0
- package/crates/tish_compile/Cargo.toml +27 -0
- package/crates/tish_compile/src/check.rs +774 -0
- package/crates/tish_compile/src/codegen.rs +7317 -0
- package/crates/tish_compile/src/infer.rs +1681 -0
- package/crates/tish_compile/src/lib.rs +206 -0
- package/crates/tish_compile/src/resolve.rs +1951 -0
- package/crates/tish_compile/src/types.rs +605 -0
- package/crates/tish_compile_js/Cargo.toml +18 -0
- package/crates/tish_compile_js/examples/jsx_vdom_smoke.tish +8 -0
- package/crates/tish_compile_js/src/codegen.rs +938 -0
- package/crates/tish_compile_js/src/error.rs +20 -0
- package/crates/tish_compile_js/src/lib.rs +26 -0
- package/crates/tish_compile_js/src/tests_jsx.rs +414 -0
- package/crates/tish_compiler_wasm/Cargo.toml +21 -0
- package/crates/tish_compiler_wasm/src/lib.rs +57 -0
- package/crates/tish_compiler_wasm/src/resolve_virtual.rs +473 -0
- package/crates/tish_core/Cargo.toml +32 -0
- package/crates/tish_core/src/console_style.rs +170 -0
- package/crates/tish_core/src/json.rs +430 -0
- package/crates/tish_core/src/lib.rs +20 -0
- package/crates/tish_core/src/macros.rs +36 -0
- package/crates/tish_core/src/shape.rs +85 -0
- package/crates/tish_core/src/uri.rs +118 -0
- package/crates/tish_core/src/value.rs +1350 -0
- package/crates/tish_core/src/vmref.rs +183 -0
- package/crates/tish_cranelift/Cargo.toml +19 -0
- package/crates/tish_cranelift/src/lib.rs +43 -0
- package/crates/tish_cranelift/src/link.rs +130 -0
- package/crates/tish_cranelift/src/lower.rs +85 -0
- package/crates/tish_cranelift_runtime/Cargo.toml +26 -0
- package/crates/tish_cranelift_runtime/src/lib.rs +45 -0
- package/crates/tish_eval/Cargo.toml +51 -0
- package/crates/tish_eval/src/eval.rs +4265 -0
- package/crates/tish_eval/src/http.rs +191 -0
- package/crates/tish_eval/src/lib.rs +99 -0
- package/crates/tish_eval/src/natives.rs +551 -0
- package/crates/tish_eval/src/promise.rs +179 -0
- package/crates/tish_eval/src/regex.rs +299 -0
- package/crates/tish_eval/src/timers.rs +120 -0
- package/crates/tish_eval/src/value.rs +336 -0
- package/crates/tish_eval/src/value_convert.rs +117 -0
- package/crates/tish_ffi/Cargo.toml +26 -0
- package/crates/tish_ffi/src/lib.rs +518 -0
- package/crates/tish_ffi/tests/fixtures/testmod/Cargo.toml +18 -0
- package/crates/tish_ffi/tests/fixtures/testmod/src/lib.rs +46 -0
- package/crates/tish_ffi/tests/loader.rs +65 -0
- package/crates/tish_fmt/Cargo.toml +16 -0
- package/crates/tish_fmt/src/bin/tish-fmt.rs +41 -0
- package/crates/tish_fmt/src/lib.rs +2157 -0
- package/crates/tish_jsx_web/Cargo.toml +9 -0
- package/crates/tish_jsx_web/README.md +5 -0
- package/crates/tish_jsx_web/src/lib.rs +2 -0
- package/crates/tish_lexer/Cargo.toml +9 -0
- package/crates/tish_lexer/src/lib.rs +1104 -0
- package/crates/tish_lexer/src/token.rs +170 -0
- package/crates/tish_lint/Cargo.toml +18 -0
- package/crates/tish_lint/src/bin/tish-lint.rs +195 -0
- package/crates/tish_lint/src/lib.rs +281 -0
- package/crates/tish_llvm/Cargo.toml +13 -0
- package/crates/tish_llvm/src/lib.rs +115 -0
- package/crates/tish_lsp/Cargo.toml +25 -0
- package/crates/tish_lsp/README.md +26 -0
- package/crates/tish_lsp/src/builtin_goto.rs +362 -0
- package/crates/tish_lsp/src/import_goto.rs +564 -0
- package/crates/tish_lsp/src/main.rs +1459 -0
- package/crates/tish_native/Cargo.toml +16 -0
- package/crates/tish_native/src/build.rs +481 -0
- package/crates/tish_native/src/config.rs +48 -0
- package/crates/tish_native/src/lib.rs +416 -0
- package/crates/tish_opt/Cargo.toml +13 -0
- package/crates/tish_opt/src/lib.rs +1046 -0
- package/crates/tish_parser/Cargo.toml +11 -0
- package/crates/tish_parser/src/lib.rs +386 -0
- package/crates/tish_parser/src/parser.rs +2726 -0
- package/crates/tish_pg/Cargo.toml +34 -0
- package/crates/tish_pg/README.md +38 -0
- package/crates/tish_pg/src/error.rs +52 -0
- package/crates/tish_pg/src/lib.rs +955 -0
- package/crates/tish_resolve/Cargo.toml +13 -0
- package/crates/tish_resolve/src/lib.rs +3601 -0
- package/crates/tish_resolve/src/pos.rs +141 -0
- package/crates/tish_runtime/Cargo.toml +100 -0
- package/crates/tish_runtime/src/http.rs +1347 -0
- package/crates/tish_runtime/src/http_fetch.rs +492 -0
- package/crates/tish_runtime/src/http_hyper.rs +441 -0
- package/crates/tish_runtime/src/http_prefork.rs +189 -0
- package/crates/tish_runtime/src/lib.rs +1447 -0
- package/crates/tish_runtime/src/native_promise.rs +15 -0
- package/crates/tish_runtime/src/promise.rs +558 -0
- package/crates/tish_runtime/src/promise_io.rs +38 -0
- package/crates/tish_runtime/src/timers.rs +172 -0
- package/crates/tish_runtime/src/tty.rs +226 -0
- package/crates/tish_runtime/src/ws.rs +778 -0
- package/crates/tish_runtime/tests/fetch_readable_stream.rs +102 -0
- package/crates/tish_ui/Cargo.toml +17 -0
- package/crates/tish_ui/src/jsx.rs +692 -0
- package/crates/tish_ui/src/lib.rs +20 -0
- package/crates/tish_ui/src/runtime/hooks.rs +573 -0
- package/crates/tish_ui/src/runtime/mod.rs +183 -0
- package/crates/tish_vm/Cargo.toml +60 -0
- package/crates/tish_vm/src/jit.rs +1050 -0
- package/crates/tish_vm/src/lib.rs +41 -0
- package/crates/tish_vm/src/vm.rs +3536 -0
- package/crates/tish_vm/tests/concurrent_shared_state.rs +140 -0
- package/crates/tish_vm/tests/fixtures/or_string_cmd.tish +2 -0
- package/crates/tish_vm/tests/lexical_scope_declare.rs +34 -0
- package/crates/tish_vm/tests/peephole_jump_chain_logical_or.rs +150 -0
- package/crates/tish_wasm/Cargo.toml +15 -0
- package/crates/tish_wasm/src/lib.rs +428 -0
- package/crates/tish_wasm_runtime/Cargo.toml +37 -0
- package/crates/tish_wasm_runtime/src/gpu.rs +429 -0
- package/crates/tish_wasm_runtime/src/lib.rs +42 -0
- package/crates/tishlang_cargo_bindgen/Cargo.toml +26 -0
- package/crates/tishlang_cargo_bindgen/src/classify.rs +261 -0
- package/crates/tishlang_cargo_bindgen/src/discover.rs +125 -0
- package/crates/tishlang_cargo_bindgen/src/infer.rs +382 -0
- package/crates/tishlang_cargo_bindgen/src/lib.rs +349 -0
- package/crates/tishlang_cargo_bindgen/src/main.rs +167 -0
- package/crates/tishlang_cargo_bindgen/src/metadata.rs +117 -0
- package/justfile +276 -0
- package/package.json +2 -2
- package/platform/darwin-arm64/tish-fmt +0 -0
- package/platform/darwin-x64/tish-fmt +0 -0
- package/platform/linux-arm64/tish-fmt +0 -0
- package/platform/linux-x64/tish-fmt +0 -0
- package/platform/win32-x64/tish-fmt.exe +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
//! Map LSP (UTF-16) positions to lexer [`Span`] corners (1-based line, 1-based **character** column).
|
|
2
|
+
|
|
3
|
+
use tishlang_ast::Span;
|
|
4
|
+
|
|
5
|
+
/// Byte offset in `source` for LSP `Position` (0-based line, UTF-16 code unit column).
|
|
6
|
+
pub fn lsp_position_to_byte_offset(source: &str, line: u32, character: u32) -> Option<usize> {
|
|
7
|
+
let mut cur_line: u32 = 0;
|
|
8
|
+
let mut col_utf16: u32 = 0;
|
|
9
|
+
for (i, ch) in source.char_indices() {
|
|
10
|
+
if cur_line == line && col_utf16 == character {
|
|
11
|
+
return Some(i);
|
|
12
|
+
}
|
|
13
|
+
if ch == '\n' {
|
|
14
|
+
if cur_line == line {
|
|
15
|
+
return Some(i);
|
|
16
|
+
}
|
|
17
|
+
cur_line += 1;
|
|
18
|
+
col_utf16 = 0;
|
|
19
|
+
} else if cur_line == line {
|
|
20
|
+
col_utf16 = col_utf16.saturating_add(ch.len_utf16() as u32);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if cur_line == line && col_utf16 == character {
|
|
24
|
+
Some(source.len())
|
|
25
|
+
} else {
|
|
26
|
+
None
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fn line_byte_start(source: &str, line1: usize) -> Option<usize> {
|
|
31
|
+
if line1 == 0 {
|
|
32
|
+
return None;
|
|
33
|
+
}
|
|
34
|
+
if line1 == 1 {
|
|
35
|
+
return Some(0);
|
|
36
|
+
}
|
|
37
|
+
let mut line = 1usize;
|
|
38
|
+
let mut offset = 0usize;
|
|
39
|
+
for ch in source.chars() {
|
|
40
|
+
offset += ch.len_utf8();
|
|
41
|
+
if ch == '\n' {
|
|
42
|
+
line += 1;
|
|
43
|
+
if line == line1 {
|
|
44
|
+
return Some(offset);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
None
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/// Byte offset for lexer (1-based line, 1-based char column) — first character of that cell.
|
|
52
|
+
pub fn lex_corner_to_byte_offset(source: &str, line1: usize, col1: usize) -> Option<usize> {
|
|
53
|
+
let line_str = source.lines().nth(line1.checked_sub(1)?)?;
|
|
54
|
+
let base = line_byte_start(source, line1)?;
|
|
55
|
+
let mut pos = base;
|
|
56
|
+
let mut c = 1usize;
|
|
57
|
+
for ch in line_str.chars() {
|
|
58
|
+
if c == col1 {
|
|
59
|
+
return Some(pos);
|
|
60
|
+
}
|
|
61
|
+
c += 1;
|
|
62
|
+
pos += ch.len_utf8();
|
|
63
|
+
}
|
|
64
|
+
if c == col1 {
|
|
65
|
+
Some(pos)
|
|
66
|
+
} else {
|
|
67
|
+
None
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/// Half-open byte range `[start, end)` for lexer span corners.
|
|
72
|
+
pub fn lex_span_byte_range(source: &str, span: &Span) -> Option<(usize, usize)> {
|
|
73
|
+
let start = lex_corner_to_byte_offset(source, span.start.0, span.start.1)?;
|
|
74
|
+
let end = lex_corner_to_byte_offset(source, span.end.0, span.end.1).unwrap_or(start);
|
|
75
|
+
let end = end.max(start);
|
|
76
|
+
Some((start, end))
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/// LSP `(line, character)` for the lexer corner `span.start` (first character of the span).
|
|
80
|
+
pub fn lsp_position_for_span_start(source: &str, span: &Span) -> Option<(u32, u32)> {
|
|
81
|
+
let b = lex_corner_to_byte_offset(source, span.start.0, span.start.1)?;
|
|
82
|
+
byte_offset_to_lsp(source, b)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
pub fn byte_offset_to_lsp(source: &str, byte: usize) -> Option<(u32, u32)> {
|
|
86
|
+
let mut line = 0u32;
|
|
87
|
+
let mut utf16 = 0u32;
|
|
88
|
+
for (i, ch) in source.char_indices() {
|
|
89
|
+
if i == byte {
|
|
90
|
+
return Some((line, utf16));
|
|
91
|
+
}
|
|
92
|
+
if ch == '\n' {
|
|
93
|
+
line += 1;
|
|
94
|
+
utf16 = 0;
|
|
95
|
+
} else {
|
|
96
|
+
utf16 += ch.len_utf16() as u32;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if byte == source.len() {
|
|
100
|
+
Some((line, utf16))
|
|
101
|
+
} else {
|
|
102
|
+
None
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/// True if LSP position lies inside `span` (half-open in byte space).
|
|
107
|
+
pub fn span_contains_lsp_position(
|
|
108
|
+
source: &str,
|
|
109
|
+
span: &Span,
|
|
110
|
+
lsp_line: u32,
|
|
111
|
+
lsp_character: u32,
|
|
112
|
+
) -> bool {
|
|
113
|
+
let Some(b) = lsp_position_to_byte_offset(source, lsp_line, lsp_character) else {
|
|
114
|
+
return false;
|
|
115
|
+
};
|
|
116
|
+
let Some((lo, hi)) = lex_span_byte_range(source, span) else {
|
|
117
|
+
return false;
|
|
118
|
+
};
|
|
119
|
+
b >= lo && b < hi
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/// LSP start (inclusive) and end (exclusive) positions for a lexer span.
|
|
123
|
+
pub fn span_to_lsp_range_exclusive(source: &str, span: &Span) -> Option<((u32, u32), (u32, u32))> {
|
|
124
|
+
let (lo, hi) = lex_span_byte_range(source, span)?;
|
|
125
|
+
Some((
|
|
126
|
+
byte_offset_to_lsp(source, lo)?,
|
|
127
|
+
byte_offset_to_lsp(source, hi)?,
|
|
128
|
+
))
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
#[cfg(test)]
|
|
132
|
+
mod tests {
|
|
133
|
+
use super::*;
|
|
134
|
+
|
|
135
|
+
#[test]
|
|
136
|
+
fn lsp_first_char() {
|
|
137
|
+
let s = "let x = 1\n";
|
|
138
|
+
assert_eq!(lsp_position_to_byte_offset(s, 0, 0), Some(0));
|
|
139
|
+
assert_eq!(lsp_position_to_byte_offset(s, 0, 4), Some(4));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "tishlang_runtime"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
description = "Minimal runtime for Tish compiled output"
|
|
6
|
+
|
|
7
|
+
license-file = { workspace = true }
|
|
8
|
+
repository = { workspace = true }
|
|
9
|
+
[features]
|
|
10
|
+
default = []
|
|
11
|
+
http = [
|
|
12
|
+
"dep:tokio",
|
|
13
|
+
"dep:reqwest",
|
|
14
|
+
"dep:futures",
|
|
15
|
+
"dep:bytes",
|
|
16
|
+
"dep:tiny_http",
|
|
17
|
+
"dep:socket2",
|
|
18
|
+
"dep:libc",
|
|
19
|
+
"dep:arc-swap",
|
|
20
|
+
"tishlang_core/regex",
|
|
21
|
+
# `serve(port, handler)` dispatches handler closures across worker
|
|
22
|
+
# threads (or subprocesses, in prefork mode). Both require `Value: Send`.
|
|
23
|
+
"tishlang_core/send-values",
|
|
24
|
+
"tishlang_builtins/send-values",
|
|
25
|
+
"send-values",
|
|
26
|
+
]
|
|
27
|
+
# Enables `Arc`/`Mutex` values in `tishlang_core` so `Value: Send + Sync`.
|
|
28
|
+
# Used by `http` / `ws` and by dependents (e.g. `tish-callbacks`) that keep
|
|
29
|
+
# `Value` in a `static` registry and dispatch from multi-threaded async libs.
|
|
30
|
+
send-values = [
|
|
31
|
+
"tishlang_core/send-values",
|
|
32
|
+
"tishlang_builtins/send-values",
|
|
33
|
+
]
|
|
34
|
+
# Promise / `await` on settled values only (no `fetch` / HTTP stack). Used for WASI and other
|
|
35
|
+
# targets where the full `http` feature does not compile.
|
|
36
|
+
promise = ["send-values"]
|
|
37
|
+
# Phase-3 item 13: io_uring-backed accept + send loop (Linux only).
|
|
38
|
+
# Disabled by default; enable with `--feature http,http-io-uring` on Linux
|
|
39
|
+
# to pick up the experimental accept path.
|
|
40
|
+
http-io-uring = ["http"]
|
|
41
|
+
# hyper-based HTTP backend: async single-threaded tokio runtime per core, no
|
|
42
|
+
# per-connection OS threads. Unblocks the tiny_http thread-churn ceiling on
|
|
43
|
+
# macOS loopback (~140k RPS) and enables HTTP/2. Opt-in via the
|
|
44
|
+
# `TISH_HTTP_BACKEND=hyper` env var at runtime when the feature is compiled in.
|
|
45
|
+
http-hyper = [
|
|
46
|
+
"http",
|
|
47
|
+
"dep:hyper",
|
|
48
|
+
"dep:hyper-util",
|
|
49
|
+
"dep:http-body-util",
|
|
50
|
+
"dep:http",
|
|
51
|
+
"dep:pin-project-lite",
|
|
52
|
+
"dep:core_affinity",
|
|
53
|
+
"tokio/net",
|
|
54
|
+
"tokio/rt",
|
|
55
|
+
"tokio/io-util",
|
|
56
|
+
]
|
|
57
|
+
fs = []
|
|
58
|
+
process = []
|
|
59
|
+
# Interactive terminal I/O (issue #101): raw mode, key/resize events, size, alt screen.
|
|
60
|
+
tty = ["dep:crossterm"]
|
|
61
|
+
regex = ["tishlang_core/regex"]
|
|
62
|
+
# WebSocket (JS-like API). Modular: import { WebSocket, Server } from 'tish:ws'.
|
|
63
|
+
# Requires `send-values` because the WS server keeps an `Arc<dyn Fn + Send +
|
|
64
|
+
# Sync>`-typed listener closure that captures `VmRef`s; under `Rc<RefCell>`
|
|
65
|
+
# those captures aren't `Send` and the closure won't satisfy `NativeFn`.
|
|
66
|
+
ws = [
|
|
67
|
+
"dep:tokio",
|
|
68
|
+
"tokio/net",
|
|
69
|
+
"tokio/io-util",
|
|
70
|
+
"dep:tokio-tungstenite",
|
|
71
|
+
"dep:futures-util",
|
|
72
|
+
"dep:lazy_static",
|
|
73
|
+
"send-values",
|
|
74
|
+
"tishlang_core/send-values",
|
|
75
|
+
"tishlang_builtins/send-values",
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
[dependencies]
|
|
79
|
+
tishlang_core = { path = "../tish_core", version = ">=0.1" }
|
|
80
|
+
tishlang_builtins = { path = "../tish_builtins", version = ">=0.1" }
|
|
81
|
+
tokio = { version = "1.50.0", features = ["rt-multi-thread", "macros", "time", "sync"], optional = true }
|
|
82
|
+
reqwest = { version = "0.13.2", default-features = false, features = ["rustls", "json", "stream"], optional = true }
|
|
83
|
+
futures = { version = "0.3.32", optional = true }
|
|
84
|
+
bytes = { version = "1", optional = true }
|
|
85
|
+
tiny_http = { version = "0.12.0", optional = true }
|
|
86
|
+
socket2 = { version = "0.5", features = ["all"], optional = true }
|
|
87
|
+
libc = { version = "0.2", optional = true }
|
|
88
|
+
arc-swap = { version = "1", optional = true }
|
|
89
|
+
# Interactive terminal I/O (feature = tty): cross-platform raw mode, key/resize events, size.
|
|
90
|
+
crossterm = { version = "0.28", optional = true }
|
|
91
|
+
# hyper backend (feature = http-hyper)
|
|
92
|
+
hyper = { version = "1", default-features = false, features = ["server", "http1", "http2"], optional = true }
|
|
93
|
+
hyper-util = { version = "0.1", features = ["server", "tokio"], optional = true }
|
|
94
|
+
http-body-util = { version = "0.1", optional = true }
|
|
95
|
+
http = { version = "1", optional = true }
|
|
96
|
+
pin-project-lite = { version = "0.2", optional = true }
|
|
97
|
+
core_affinity = { version = "0.8", optional = true }
|
|
98
|
+
tokio-tungstenite = { version = "0.29", optional = true }
|
|
99
|
+
futures-util = { version = "0.3", optional = true }
|
|
100
|
+
lazy_static = { version = "1", optional = true }
|