diff --git a/engine/Cargo.lock b/engine/Cargo.lock index 9a14b2ad7..c9a9327ec 100644 --- a/engine/Cargo.lock +++ b/engine/Cargo.lock @@ -1119,6 +1119,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.10.5", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.87", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1238,6 +1258,15 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47de7e88bbbd467951ae7f5a6f34f70d1b4d9cfce53d5fd70f74ebe118b3db56" +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfb" version = "0.7.3" @@ -1269,6 +1298,17 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.9" @@ -2856,6 +2896,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" version = "0.2.155" @@ -2920,6 +2966,29 @@ dependencies = [ "value-bag", ] +[[package]] +name = "magnus" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d87ae53030f3a22e83879e666cb94e58a7bdf31706878a0ba48752994146dab" +dependencies = [ + "magnus-macros", + "rb-sys", + "rb-sys-env", + "seq-macro", +] + +[[package]] +name = "magnus-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "match_cfg" version = "0.1.0" @@ -3792,6 +3861,36 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rb-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91dbe37ab6ac2fba187480fb6544b92445e41e5c6f553bf0c33743f3c450a1df" +dependencies = [ + "rb-sys-build", +] + +[[package]] +name = "rb-sys-build" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d56a49dcb646b70b758789c0d16c055a386a4f2a3346333abb69850fa860ce" +dependencies = [ + "bindgen", + "lazy_static", + "proc-macro2", + "quote", + "regex", + "shell-words", + "syn 2.0.87", +] + +[[package]] +name = "rb-sys-env" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb" + [[package]] name = "redox_syscall" version = "0.4.1" @@ -3972,6 +4071,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "ruby_ffi" +version = "0.1.0" +dependencies = [ + "anyhow", + "baml-cli", + "baml-runtime", + "baml-types", + "base64 0.22.1", + "env_logger", + "futures", + "indexmap 2.2.6", + "log", + "magnus", + "rb-sys", + "rb-sys-env", + "serde", + "serde_json", + "serde_magnus", + "tokio", + "tracing-subscriber", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -4199,6 +4321,12 @@ dependencies = [ "futures-core", ] +[[package]] +name = "seq-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" + [[package]] name = "serde" version = "1.0.209" @@ -4253,6 +4381,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_magnus" +version = "0.9.0" +source = "git+https://github.com/BoundaryML/serde-magnus.git?branch=sam/magnus-0.7.1#c547ef5ef475087ce57322b8e74c4a73ee2ab84b" +dependencies = [ + "magnus", + "serde", + "tap", +] + [[package]] name = "serde_path_to_error" version = "0.1.16" @@ -4341,6 +4479,12 @@ dependencies = [ "regex", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -4548,6 +4692,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "target-lexicon" version = "0.12.15" diff --git a/engine/Cargo.toml b/engine/Cargo.toml index 3f7db103e..041a886f7 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -8,7 +8,7 @@ members = [ "cli", "language_client_codegen", "language_client_python", - # "language_client_ruby/ext/ruby_ffi", + "language_client_ruby/ext/ruby_ffi", "language_client_typescript", ] default-members = [