liter_llm 1.0.0.pre.rc.6
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.
- checksums.yaml +7 -0
- data/README.md +239 -0
- data/ext/liter_llm_rb/extconf.rb +65 -0
- data/ext/liter_llm_rb/native/.cargo/config.toml +23 -0
- data/ext/liter_llm_rb/native/Cargo.lock +3713 -0
- data/ext/liter_llm_rb/native/Cargo.toml +32 -0
- data/ext/liter_llm_rb/native/build.rs +15 -0
- data/ext/liter_llm_rb/native/src/lib.rs +1079 -0
- data/lib/liter_llm.rb +8 -0
- data/sig/liter_llm.rbs +416 -0
- data/vendor/Cargo.toml +54 -0
- data/vendor/liter-llm/Cargo.toml +92 -0
- data/vendor/liter-llm/README.md +252 -0
- data/vendor/liter-llm/schemas/pricing.json +40 -0
- data/vendor/liter-llm/schemas/providers.json +1662 -0
- data/vendor/liter-llm/src/auth/azure_ad.rs +264 -0
- data/vendor/liter-llm/src/auth/bedrock_sts.rs +353 -0
- data/vendor/liter-llm/src/auth/mod.rs +68 -0
- data/vendor/liter-llm/src/auth/vertex_oauth.rs +353 -0
- data/vendor/liter-llm/src/client/config.rs +351 -0
- data/vendor/liter-llm/src/client/managed.rs +622 -0
- data/vendor/liter-llm/src/client/mod.rs +864 -0
- data/vendor/liter-llm/src/cost.rs +212 -0
- data/vendor/liter-llm/src/error.rs +190 -0
- data/vendor/liter-llm/src/http/eventstream.rs +860 -0
- data/vendor/liter-llm/src/http/mod.rs +12 -0
- data/vendor/liter-llm/src/http/request.rs +438 -0
- data/vendor/liter-llm/src/http/retry.rs +72 -0
- data/vendor/liter-llm/src/http/streaming.rs +289 -0
- data/vendor/liter-llm/src/lib.rs +37 -0
- data/vendor/liter-llm/src/provider/anthropic.rs +2250 -0
- data/vendor/liter-llm/src/provider/azure.rs +579 -0
- data/vendor/liter-llm/src/provider/bedrock.rs +1543 -0
- data/vendor/liter-llm/src/provider/cohere.rs +654 -0
- data/vendor/liter-llm/src/provider/custom.rs +404 -0
- data/vendor/liter-llm/src/provider/google_ai.rs +281 -0
- data/vendor/liter-llm/src/provider/mistral.rs +188 -0
- data/vendor/liter-llm/src/provider/mod.rs +616 -0
- data/vendor/liter-llm/src/provider/vertex.rs +1504 -0
- data/vendor/liter-llm/src/tests.rs +1425 -0
- data/vendor/liter-llm/src/tokenizer.rs +281 -0
- data/vendor/liter-llm/src/tower/budget.rs +599 -0
- data/vendor/liter-llm/src/tower/cache.rs +502 -0
- data/vendor/liter-llm/src/tower/cache_opendal.rs +270 -0
- data/vendor/liter-llm/src/tower/cooldown.rs +231 -0
- data/vendor/liter-llm/src/tower/cost.rs +404 -0
- data/vendor/liter-llm/src/tower/fallback.rs +121 -0
- data/vendor/liter-llm/src/tower/health.rs +219 -0
- data/vendor/liter-llm/src/tower/hooks.rs +369 -0
- data/vendor/liter-llm/src/tower/mod.rs +77 -0
- data/vendor/liter-llm/src/tower/rate_limit.rs +300 -0
- data/vendor/liter-llm/src/tower/router.rs +436 -0
- data/vendor/liter-llm/src/tower/service.rs +181 -0
- data/vendor/liter-llm/src/tower/tests.rs +539 -0
- data/vendor/liter-llm/src/tower/tests_common.rs +252 -0
- data/vendor/liter-llm/src/tower/tracing.rs +209 -0
- data/vendor/liter-llm/src/tower/types.rs +170 -0
- data/vendor/liter-llm/src/types/audio.rs +52 -0
- data/vendor/liter-llm/src/types/batch.rs +77 -0
- data/vendor/liter-llm/src/types/chat.rs +214 -0
- data/vendor/liter-llm/src/types/common.rs +244 -0
- data/vendor/liter-llm/src/types/embedding.rs +84 -0
- data/vendor/liter-llm/src/types/files.rs +58 -0
- data/vendor/liter-llm/src/types/image.rs +40 -0
- data/vendor/liter-llm/src/types/mod.rs +27 -0
- data/vendor/liter-llm/src/types/models.rs +21 -0
- data/vendor/liter-llm/src/types/moderation.rs +80 -0
- data/vendor/liter-llm/src/types/ocr.rs +87 -0
- data/vendor/liter-llm/src/types/rerank.rs +46 -0
- data/vendor/liter-llm/src/types/responses.rs +55 -0
- data/vendor/liter-llm/src/types/search.rs +45 -0
- data/vendor/liter-llm/tests/contract.rs +332 -0
- data/vendor/liter-llm-ffi/Cargo.toml +30 -0
- data/vendor/liter-llm-ffi/build.rs +66 -0
- data/vendor/liter-llm-ffi/cbindgen.toml +60 -0
- data/vendor/liter-llm-ffi/liter_llm.h +850 -0
- data/vendor/liter-llm-ffi/src/lib.rs +2488 -0
- metadata +286 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 75eebeb1fb346c1b47a939190522550015d928a771d73d532d6cdf3af93cbd0b
|
|
4
|
+
data.tar.gz: 929b7559a37ee03dbc467673f4a6f4bd05e1885a98af7cf82da5199ca308d0ba
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 8c39e44c430dea7e970a50b50c9ec7e71e37de2df58031614ac388f48f74d21d7f9f7b17b9de82af1395b85d7dc7816b6332a872a7fc2faf19915924fc3225e2
|
|
7
|
+
data.tar.gz: 5d9a2acc0229c7d3f9f5b1d9c78f4d8470749a42582cb428b8b12b5716fc63fdaebb4a53f4038d5b96a60dc4c7cc453f8b27bd82b383dbeab5180cb4b0585e8b
|
data/README.md
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# Ruby
|
|
2
|
+
|
|
3
|
+
<div align="center" style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0;">
|
|
4
|
+
<!-- Language Bindings -->
|
|
5
|
+
<a href="https://crates.io/crates/liter-llm">
|
|
6
|
+
<img src="https://img.shields.io/crates/v/liter-llm?label=Rust&color=007ec6" alt="Rust">
|
|
7
|
+
</a>
|
|
8
|
+
<a href="https://pypi.org/project/liter-llm/">
|
|
9
|
+
<img src="https://img.shields.io/pypi/v/liter-llm?label=Python&color=007ec6" alt="Python">
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@kreuzberg/liter-llm">
|
|
12
|
+
<img src="https://img.shields.io/npm/v/@kreuzberg/liter-llm?label=Node.js&color=007ec6" alt="Node.js">
|
|
13
|
+
</a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/@kreuzberg/liter-llm-wasm">
|
|
15
|
+
<img src="https://img.shields.io/npm/v/@kreuzberg/liter-llm-wasm?label=WASM&color=007ec6" alt="WASM">
|
|
16
|
+
</a>
|
|
17
|
+
<a href="https://central.sonatype.com/artifact/dev.kreuzberg/liter-llm">
|
|
18
|
+
<img src="https://img.shields.io/maven-central/v/dev.kreuzberg/liter-llm?label=Java&color=007ec6" alt="Java">
|
|
19
|
+
</a>
|
|
20
|
+
<a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/packages/go">
|
|
21
|
+
<img src="https://img.shields.io/github/v/tag/kreuzberg-dev/liter-llm?label=Go&color=007ec6" alt="Go">
|
|
22
|
+
</a>
|
|
23
|
+
<a href="https://www.nuget.org/packages/LiterLlm">
|
|
24
|
+
<img src="https://img.shields.io/nuget/v/LiterLlm?label=C%23&color=007ec6" alt="C#">
|
|
25
|
+
</a>
|
|
26
|
+
<a href="https://packagist.org/packages/kreuzberg/liter-llm">
|
|
27
|
+
<img src="https://img.shields.io/packagist/v/kreuzberg/liter-llm?label=PHP&color=007ec6" alt="PHP">
|
|
28
|
+
</a>
|
|
29
|
+
<a href="https://rubygems.org/gems/liter_llm">
|
|
30
|
+
<img src="https://img.shields.io/gem/v/liter_llm?label=Ruby&color=007ec6" alt="Ruby">
|
|
31
|
+
</a>
|
|
32
|
+
<a href="https://hex.pm/packages/liter_llm">
|
|
33
|
+
<img src="https://img.shields.io/hexpm/v/liter_llm?label=Elixir&color=007ec6" alt="Elixir">
|
|
34
|
+
</a>
|
|
35
|
+
<a href="https://github.com/kreuzberg-dev/liter-llm/pkgs/container/liter-llm">
|
|
36
|
+
<img src="https://img.shields.io/badge/Docker-007ec6?logo=docker&logoColor=white" alt="Docker">
|
|
37
|
+
</a>
|
|
38
|
+
<a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/crates/liter-llm-ffi">
|
|
39
|
+
<img src="https://img.shields.io/badge/C-FFI-007ec6" alt="C FFI">
|
|
40
|
+
</a>
|
|
41
|
+
|
|
42
|
+
<!-- Project Info -->
|
|
43
|
+
<a href="https://github.com/kreuzberg-dev/liter-llm/blob/main/LICENSE">
|
|
44
|
+
<img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License">
|
|
45
|
+
</a>
|
|
46
|
+
<a href="https://docs.liter-llm.kreuzberg.dev">
|
|
47
|
+
<img src="https://img.shields.io/badge/docs-kreuzberg.dev-007ec6" alt="Docs">
|
|
48
|
+
</a>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
<div align="center" style="margin: 20px 0;">
|
|
53
|
+
<picture>
|
|
54
|
+
<img width="100%" alt="kreuzberg.dev" src="https://github.com/user-attachments/assets/1b6c6ad7-3b6d-4171-b1c9-f2026cc9deb8" />
|
|
55
|
+
</picture>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<div align="center" style="margin-bottom: 20px;">
|
|
60
|
+
<a href="https://discord.gg/xt9WY3GnKR">
|
|
61
|
+
<img height="22" src="https://img.shields.io/badge/Discord-Join%20our%20community-7289da?logo=discord&logoColor=white" alt="Discord">
|
|
62
|
+
</a>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
Universal LLM API client for Ruby. Access 142+ LLM providers through a single interface with idiomatic Ruby API and native performance.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
### Package Installation
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Install via one of the supported package managers:
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
**gem:**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
gem install liter_llm
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
**Bundler:**
|
|
88
|
+
|
|
89
|
+
```ruby
|
|
90
|
+
gem 'liter_llm'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
### System Requirements
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
- **Ruby 3.2+** required
|
|
101
|
+
- API keys via environment variables (e.g. `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
## Quick Start
|
|
106
|
+
|
|
107
|
+
### Basic Chat
|
|
108
|
+
|
|
109
|
+
Send a message to any provider using the `provider/model` prefix:
|
|
110
|
+
|
|
111
|
+
```ruby
|
|
112
|
+
# frozen_string_literal: true
|
|
113
|
+
|
|
114
|
+
require "liter_llm"
|
|
115
|
+
require "json"
|
|
116
|
+
|
|
117
|
+
client = LiterLlm::LlmClient.new(ENV.fetch("OPENAI_API_KEY"), {})
|
|
118
|
+
|
|
119
|
+
response = JSON.parse(client.chat(JSON.generate(
|
|
120
|
+
model: "openai/gpt-4o",
|
|
121
|
+
messages: [{ role: "user", content: "Hello!" }]
|
|
122
|
+
)))
|
|
123
|
+
|
|
124
|
+
puts response.dig("choices", 0, "message", "content")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### Common Use Cases
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
#### Streaming Responses
|
|
132
|
+
|
|
133
|
+
Stream tokens in real time:
|
|
134
|
+
|
|
135
|
+
```ruby
|
|
136
|
+
# frozen_string_literal: true
|
|
137
|
+
|
|
138
|
+
require "liter_llm"
|
|
139
|
+
require "json"
|
|
140
|
+
|
|
141
|
+
client = LiterLlm::LlmClient.new(ENV.fetch("OPENAI_API_KEY"), {})
|
|
142
|
+
|
|
143
|
+
chunks = JSON.parse(client.chat_stream(JSON.generate(
|
|
144
|
+
model: "openai/gpt-4o-mini",
|
|
145
|
+
messages: [{ role: "user", content: "Hello" }]
|
|
146
|
+
)))
|
|
147
|
+
|
|
148
|
+
chunks.each { |chunk| puts chunk }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
### Next Steps
|
|
156
|
+
|
|
157
|
+
- **[Provider Registry](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json)** - Full list of supported providers
|
|
158
|
+
- **[GitHub Repository](https://github.com/kreuzberg-dev/liter-llm)** - Source, issues, and discussions
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## Features
|
|
163
|
+
|
|
164
|
+
### Supported Providers (142+)
|
|
165
|
+
|
|
166
|
+
Route to any provider using the `provider/model` prefix convention:
|
|
167
|
+
|
|
168
|
+
| Provider | Example Model |
|
|
169
|
+
|----------|--------------|
|
|
170
|
+
| **OpenAI** | `openai/gpt-4o`, `openai/gpt-4o-mini` |
|
|
171
|
+
| **Anthropic** | `anthropic/claude-3-5-sonnet-20241022` |
|
|
172
|
+
| **Groq** | `groq/llama-3.1-70b-versatile` |
|
|
173
|
+
| **Mistral** | `mistral/mistral-large-latest` |
|
|
174
|
+
| **Cohere** | `cohere/command-r-plus` |
|
|
175
|
+
| **Together AI** | `together/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` |
|
|
176
|
+
| **Fireworks** | `fireworks/accounts/fireworks/models/llama-v3p1-70b-instruct` |
|
|
177
|
+
| **Google Vertex** | `vertexai/gemini-1.5-pro` |
|
|
178
|
+
| **Amazon Bedrock** | `bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0` |
|
|
179
|
+
|
|
180
|
+
**[Complete Provider List](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json)**
|
|
181
|
+
|
|
182
|
+
### Key Capabilities
|
|
183
|
+
|
|
184
|
+
- **Provider Routing** -- Single client for 142+ LLM providers via `provider/model` prefix
|
|
185
|
+
- **Unified API** -- Consistent `chat`, `chat_stream`, `embeddings`, `list_models` interface
|
|
186
|
+
|
|
187
|
+
- **Streaming** -- Real-time token streaming via `chat_stream`
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
- **Tool Calling** -- Function calling and tool use across all supporting providers
|
|
191
|
+
|
|
192
|
+
- **Type Safe** -- Schema-driven types compiled from JSON schemas
|
|
193
|
+
- **Secure** -- API keys never logged or serialized, managed via environment variables
|
|
194
|
+
- **Observability** -- Built-in [OpenTelemetry](https://opentelemetry.io/docs/specs/semconv/gen-ai/) with GenAI semantic conventions
|
|
195
|
+
- **Error Handling** -- Structured errors with provider context and retry hints
|
|
196
|
+
|
|
197
|
+
### Performance
|
|
198
|
+
|
|
199
|
+
Built on a compiled Rust core for speed and safety:
|
|
200
|
+
|
|
201
|
+
- **Provider resolution** at client construction -- zero per-request overhead
|
|
202
|
+
- **Configurable timeouts** and connection pooling
|
|
203
|
+
- **Zero-copy streaming** with SSE and AWS EventStream support
|
|
204
|
+
- **API keys** wrapped in secure memory, zeroed on drop
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
## Provider Routing
|
|
209
|
+
|
|
210
|
+
Route to 142+ providers using the `provider/model` prefix convention:
|
|
211
|
+
|
|
212
|
+
```text
|
|
213
|
+
openai/gpt-4o
|
|
214
|
+
anthropic/claude-3-5-sonnet-20241022
|
|
215
|
+
groq/llama-3.1-70b-versatile
|
|
216
|
+
mistral/mistral-large-latest
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
See the [provider registry](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json) for the full list.
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
## Documentation
|
|
224
|
+
|
|
225
|
+
- **[Documentation](https://docs.liter-llm.kreuzberg.dev)** -- Full docs and API reference
|
|
226
|
+
- **[GitHub Repository](https://github.com/kreuzberg-dev/liter-llm)** -- Source, issues, and discussions
|
|
227
|
+
- **[Provider Registry](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json)** -- 142 supported providers
|
|
228
|
+
|
|
229
|
+
Part of [kreuzberg.dev](https://kreuzberg.dev).
|
|
230
|
+
|
|
231
|
+
## Contributing
|
|
232
|
+
|
|
233
|
+
Contributions are welcome! See [CONTRIBUTING.md](https://github.com/kreuzberg-dev/liter-llm/blob/main/CONTRIBUTING.md) for guidelines.
|
|
234
|
+
|
|
235
|
+
Join our [Discord community](https://discord.gg/xt9WY3GnKR) for questions and discussion.
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
MIT -- see [LICENSE](https://github.com/kreuzberg-dev/liter-llm/blob/main/LICENSE) for details.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'mkmf'
|
|
4
|
+
require 'rb_sys/mkmf'
|
|
5
|
+
require 'rbconfig'
|
|
6
|
+
require 'fileutils'
|
|
7
|
+
|
|
8
|
+
if Gem.win_platform?
|
|
9
|
+
# Use CI-provided CARGO_TARGET_DIR if available, otherwise use a short path
|
|
10
|
+
# GitHub Actions sets CARGO_TARGET_DIR=C:\t for MAX_PATH mitigation
|
|
11
|
+
if ENV['CARGO_TARGET_DIR']
|
|
12
|
+
puts "Windows detected: Using existing CARGO_TARGET_DIR=#{ENV['CARGO_TARGET_DIR']}"
|
|
13
|
+
else
|
|
14
|
+
# Try C:\t first (CI convention), fall back to D:/ll-build
|
|
15
|
+
short_target_dir = Dir.exist?('C:/t') ? 'C:/t' : 'C:/ll-build'
|
|
16
|
+
begin
|
|
17
|
+
FileUtils.mkdir_p(short_target_dir)
|
|
18
|
+
ENV['CARGO_TARGET_DIR'] = short_target_dir
|
|
19
|
+
ENV['OUT_DIR'] = short_target_dir
|
|
20
|
+
puts "Windows detected: Using short build path #{short_target_dir}"
|
|
21
|
+
rescue StandardError => e
|
|
22
|
+
puts "Warning: Could not create short path #{short_target_dir}: #{e.message}"
|
|
23
|
+
# Fall back to relative path which rb_sys will handle
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
if /mswin|mingw/.match?(RbConfig::CONFIG['host_os'])
|
|
29
|
+
devkit = ENV.fetch('RI_DEVKIT', nil)
|
|
30
|
+
prefix = ENV['MSYSTEM_PREFIX'] || '/ucrt64'
|
|
31
|
+
|
|
32
|
+
# Set up include paths for MSVC compatibility headers
|
|
33
|
+
native_include = File.expand_path('native/include', __dir__).tr('\\', '/')
|
|
34
|
+
compat_include = File.expand_path('native/include/msvc_compat', __dir__).tr('\\', '/')
|
|
35
|
+
|
|
36
|
+
extra_args = []
|
|
37
|
+
extra_args << "-I#{native_include}"
|
|
38
|
+
extra_args << "-I#{compat_include}"
|
|
39
|
+
|
|
40
|
+
# Add Windows-specific flags for better compatibility
|
|
41
|
+
extra_args << '-fms-extensions'
|
|
42
|
+
extra_args << '-fno-omit-frame-pointer'
|
|
43
|
+
|
|
44
|
+
if devkit
|
|
45
|
+
sysroot = "#{devkit}#{prefix}".tr('\\', '/')
|
|
46
|
+
extra_args.push('--target=x86_64-pc-windows-gnu', "--sysroot=#{sysroot}")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
unless extra_args.empty?
|
|
50
|
+
existing = ENV['BINDGEN_EXTRA_CLANG_ARGS'].to_s.split(/\s+/).reject(&:empty?)
|
|
51
|
+
ENV['BINDGEN_EXTRA_CLANG_ARGS'] = (existing + extra_args).uniq.join(' ')
|
|
52
|
+
puts "BINDGEN_EXTRA_CLANG_ARGS set to: #{ENV.fetch('BINDGEN_EXTRA_CLANG_ARGS', nil)}"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Set target for Windows GNU toolchain if not already set
|
|
56
|
+
ENV['CARGO_BUILD_TARGET'] ||= 'x86_64-pc-windows-gnu' if devkit || ENV['MSYSTEM']
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
default_profile = ENV.fetch('CARGO_PROFILE', 'release')
|
|
60
|
+
native_dir = 'native'
|
|
61
|
+
|
|
62
|
+
create_rust_makefile('liter_llm_rb') do |config|
|
|
63
|
+
config.profile = default_profile.to_sym
|
|
64
|
+
config.ext_dir = native_dir
|
|
65
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build]
|
|
2
|
+
rustflags = ["-A", "unpredictable-function-pointer-comparisons", "-A", "fn_ptr_eq"]
|
|
3
|
+
|
|
4
|
+
# Windows GNU target configuration
|
|
5
|
+
[target.x86_64-pc-windows-gnu]
|
|
6
|
+
rustflags = [
|
|
7
|
+
"-A",
|
|
8
|
+
"unpredictable-function-pointer-comparisons",
|
|
9
|
+
"-A",
|
|
10
|
+
"fn_ptr_eq",
|
|
11
|
+
"-C",
|
|
12
|
+
"link-arg=-lbcrypt",
|
|
13
|
+
"-C",
|
|
14
|
+
"link-arg=-lcrypt32",
|
|
15
|
+
"-C",
|
|
16
|
+
"link-arg=-lws2_32",
|
|
17
|
+
"-C",
|
|
18
|
+
"link-arg=-luserenv",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
# Windows MSVC target configuration (fallback)
|
|
22
|
+
[target.x86_64-pc-windows-msvc]
|
|
23
|
+
rustflags = ["-A", "unpredictable-function-pointer-comparisons", "-A", "fn_ptr_eq"]
|