rb-mrml 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c0f8731e51de7fd965e812de10f6d033183f17e6619c0b1b4bff6d49e21d1da6
4
+ data.tar.gz: bf993e1d661602f3f81bc42f31b48c253fef5d6ad73e348270905ba8f2f3d46c
5
+ SHA512:
6
+ metadata.gz: 4c33b27c801f0d3f64fc9cecdd9a98f4af373ec490c7694a1dbaee479179313646d5111e440e7bbe1693c37832030d45741147b64307aee5b66592e16fe48e7a
7
+ data.tar.gz: c977fa237654648206cbbed2cdad833f7fb2dd8815c3a0c60fb07f1372780b66aff33786ac6a8812c80ad2052fd67f7eda0157b98a3f874aa795138ec15f2458
data/Cargo.lock ADDED
@@ -0,0 +1,587 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "Inflector"
7
+ version = "0.11.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
10
+ dependencies = [
11
+ "lazy_static",
12
+ "regex",
13
+ ]
14
+
15
+ [[package]]
16
+ name = "aho-corasick"
17
+ version = "1.1.3"
18
+ source = "registry+https://github.com/rust-lang/crates.io-index"
19
+ checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
20
+ dependencies = [
21
+ "memchr",
22
+ ]
23
+
24
+ [[package]]
25
+ name = "bindgen"
26
+ version = "0.69.5"
27
+ source = "registry+https://github.com/rust-lang/crates.io-index"
28
+ checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
29
+ dependencies = [
30
+ "bitflags",
31
+ "cexpr",
32
+ "clang-sys",
33
+ "itertools 0.12.1",
34
+ "lazy_static",
35
+ "lazycell",
36
+ "proc-macro2",
37
+ "quote",
38
+ "regex",
39
+ "rustc-hash 1.1.0",
40
+ "shlex",
41
+ "syn",
42
+ ]
43
+
44
+ [[package]]
45
+ name = "bitflags"
46
+ version = "2.7.0"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"
49
+
50
+ [[package]]
51
+ name = "cexpr"
52
+ version = "0.6.0"
53
+ source = "registry+https://github.com/rust-lang/crates.io-index"
54
+ checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
55
+ dependencies = [
56
+ "nom",
57
+ ]
58
+
59
+ [[package]]
60
+ name = "cfg-if"
61
+ version = "1.0.0"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
64
+
65
+ [[package]]
66
+ name = "clang-sys"
67
+ version = "1.8.1"
68
+ source = "registry+https://github.com/rust-lang/crates.io-index"
69
+ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
70
+ dependencies = [
71
+ "glob",
72
+ "libc",
73
+ "libloading",
74
+ ]
75
+
76
+ [[package]]
77
+ name = "darling"
78
+ version = "0.20.10"
79
+ source = "registry+https://github.com/rust-lang/crates.io-index"
80
+ checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
81
+ dependencies = [
82
+ "darling_core",
83
+ "darling_macro",
84
+ ]
85
+
86
+ [[package]]
87
+ name = "darling_core"
88
+ version = "0.20.10"
89
+ source = "registry+https://github.com/rust-lang/crates.io-index"
90
+ checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
91
+ dependencies = [
92
+ "fnv",
93
+ "ident_case",
94
+ "proc-macro2",
95
+ "quote",
96
+ "strsim",
97
+ "syn",
98
+ ]
99
+
100
+ [[package]]
101
+ name = "darling_macro"
102
+ version = "0.20.10"
103
+ source = "registry+https://github.com/rust-lang/crates.io-index"
104
+ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
105
+ dependencies = [
106
+ "darling_core",
107
+ "quote",
108
+ "syn",
109
+ ]
110
+
111
+ [[package]]
112
+ name = "either"
113
+ version = "1.13.0"
114
+ source = "registry+https://github.com/rust-lang/crates.io-index"
115
+ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
116
+
117
+ [[package]]
118
+ name = "enum-as-inner"
119
+ version = "0.6.1"
120
+ source = "registry+https://github.com/rust-lang/crates.io-index"
121
+ checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
122
+ dependencies = [
123
+ "heck",
124
+ "proc-macro2",
125
+ "quote",
126
+ "syn",
127
+ ]
128
+
129
+ [[package]]
130
+ name = "enum_dispatch"
131
+ version = "0.3.13"
132
+ source = "registry+https://github.com/rust-lang/crates.io-index"
133
+ checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
134
+ dependencies = [
135
+ "once_cell",
136
+ "proc-macro2",
137
+ "quote",
138
+ "syn",
139
+ ]
140
+
141
+ [[package]]
142
+ name = "equivalent"
143
+ version = "1.0.1"
144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
145
+ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
146
+
147
+ [[package]]
148
+ name = "fnv"
149
+ version = "1.0.7"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
152
+
153
+ [[package]]
154
+ name = "glob"
155
+ version = "0.3.2"
156
+ source = "registry+https://github.com/rust-lang/crates.io-index"
157
+ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
158
+
159
+ [[package]]
160
+ name = "hashbrown"
161
+ version = "0.15.2"
162
+ source = "registry+https://github.com/rust-lang/crates.io-index"
163
+ checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
164
+
165
+ [[package]]
166
+ name = "heck"
167
+ version = "0.5.0"
168
+ source = "registry+https://github.com/rust-lang/crates.io-index"
169
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
170
+
171
+ [[package]]
172
+ name = "ident_case"
173
+ version = "1.0.1"
174
+ source = "registry+https://github.com/rust-lang/crates.io-index"
175
+ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
176
+
177
+ [[package]]
178
+ name = "indexmap"
179
+ version = "2.7.0"
180
+ source = "registry+https://github.com/rust-lang/crates.io-index"
181
+ checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
182
+ dependencies = [
183
+ "equivalent",
184
+ "hashbrown",
185
+ "serde",
186
+ ]
187
+
188
+ [[package]]
189
+ name = "itertools"
190
+ version = "0.12.1"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
193
+ dependencies = [
194
+ "either",
195
+ ]
196
+
197
+ [[package]]
198
+ name = "itertools"
199
+ version = "0.13.0"
200
+ source = "registry+https://github.com/rust-lang/crates.io-index"
201
+ checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
202
+ dependencies = [
203
+ "either",
204
+ ]
205
+
206
+ [[package]]
207
+ name = "itoa"
208
+ version = "1.0.14"
209
+ source = "registry+https://github.com/rust-lang/crates.io-index"
210
+ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
211
+
212
+ [[package]]
213
+ name = "lazy_static"
214
+ version = "1.5.0"
215
+ source = "registry+https://github.com/rust-lang/crates.io-index"
216
+ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
217
+
218
+ [[package]]
219
+ name = "lazycell"
220
+ version = "1.3.0"
221
+ source = "registry+https://github.com/rust-lang/crates.io-index"
222
+ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
223
+
224
+ [[package]]
225
+ name = "libc"
226
+ version = "0.2.169"
227
+ source = "registry+https://github.com/rust-lang/crates.io-index"
228
+ checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
229
+
230
+ [[package]]
231
+ name = "libloading"
232
+ version = "0.8.6"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
235
+ dependencies = [
236
+ "cfg-if",
237
+ "windows-targets",
238
+ ]
239
+
240
+ [[package]]
241
+ name = "magnus"
242
+ version = "0.7.1"
243
+ source = "registry+https://github.com/rust-lang/crates.io-index"
244
+ checksum = "3d87ae53030f3a22e83879e666cb94e58a7bdf31706878a0ba48752994146dab"
245
+ dependencies = [
246
+ "magnus-macros",
247
+ "rb-sys",
248
+ "rb-sys-env",
249
+ "seq-macro",
250
+ ]
251
+
252
+ [[package]]
253
+ name = "magnus-macros"
254
+ version = "0.6.0"
255
+ source = "registry+https://github.com/rust-lang/crates.io-index"
256
+ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
257
+ dependencies = [
258
+ "proc-macro2",
259
+ "quote",
260
+ "syn",
261
+ ]
262
+
263
+ [[package]]
264
+ name = "memchr"
265
+ version = "2.7.4"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
268
+
269
+ [[package]]
270
+ name = "minimal-lexical"
271
+ version = "0.2.1"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
274
+
275
+ [[package]]
276
+ name = "mrml"
277
+ version = "0.1.0"
278
+ dependencies = [
279
+ "magnus",
280
+ "mrml 4.0.1",
281
+ "serde",
282
+ ]
283
+
284
+ [[package]]
285
+ name = "mrml"
286
+ version = "4.0.1"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "6a5fb21b06edad8397bd7e0e6dcef12013b33e979e3ae14f126899ba524f491e"
289
+ dependencies = [
290
+ "enum-as-inner",
291
+ "enum_dispatch",
292
+ "indexmap",
293
+ "itertools 0.13.0",
294
+ "mrml-json-macros",
295
+ "rustc-hash 2.1.0",
296
+ "serde",
297
+ "serde_json",
298
+ "thiserror",
299
+ "xmlparser",
300
+ ]
301
+
302
+ [[package]]
303
+ name = "mrml-json-macros"
304
+ version = "0.1.4"
305
+ source = "registry+https://github.com/rust-lang/crates.io-index"
306
+ checksum = "40cbf208a374588552a03b4e5763d87b7628294b50b8b93da681f660105414b3"
307
+ dependencies = [
308
+ "Inflector",
309
+ "darling",
310
+ "proc-macro2",
311
+ "quote",
312
+ "syn",
313
+ ]
314
+
315
+ [[package]]
316
+ name = "nom"
317
+ version = "7.1.3"
318
+ source = "registry+https://github.com/rust-lang/crates.io-index"
319
+ checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
320
+ dependencies = [
321
+ "memchr",
322
+ "minimal-lexical",
323
+ ]
324
+
325
+ [[package]]
326
+ name = "once_cell"
327
+ version = "1.20.2"
328
+ source = "registry+https://github.com/rust-lang/crates.io-index"
329
+ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
330
+
331
+ [[package]]
332
+ name = "proc-macro2"
333
+ version = "1.0.93"
334
+ source = "registry+https://github.com/rust-lang/crates.io-index"
335
+ checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
336
+ dependencies = [
337
+ "unicode-ident",
338
+ ]
339
+
340
+ [[package]]
341
+ name = "quote"
342
+ version = "1.0.38"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
345
+ dependencies = [
346
+ "proc-macro2",
347
+ ]
348
+
349
+ [[package]]
350
+ name = "rb-sys"
351
+ version = "0.9.107"
352
+ source = "registry+https://github.com/rust-lang/crates.io-index"
353
+ checksum = "56aaf81d9efc195606456e91896297ee5ab2002381539f8ed1ba6b4f2e467f3b"
354
+ dependencies = [
355
+ "rb-sys-build",
356
+ ]
357
+
358
+ [[package]]
359
+ name = "rb-sys-build"
360
+ version = "0.9.107"
361
+ source = "registry+https://github.com/rust-lang/crates.io-index"
362
+ checksum = "035b513baded6df2b90a8559efb1973c47ba42e16c21c5f0863dd2aa4dbd6abe"
363
+ dependencies = [
364
+ "bindgen",
365
+ "lazy_static",
366
+ "proc-macro2",
367
+ "quote",
368
+ "regex",
369
+ "shell-words",
370
+ "syn",
371
+ ]
372
+
373
+ [[package]]
374
+ name = "rb-sys-env"
375
+ version = "0.1.2"
376
+ source = "registry+https://github.com/rust-lang/crates.io-index"
377
+ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
378
+
379
+ [[package]]
380
+ name = "regex"
381
+ version = "1.11.1"
382
+ source = "registry+https://github.com/rust-lang/crates.io-index"
383
+ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
384
+ dependencies = [
385
+ "aho-corasick",
386
+ "memchr",
387
+ "regex-automata",
388
+ "regex-syntax",
389
+ ]
390
+
391
+ [[package]]
392
+ name = "regex-automata"
393
+ version = "0.4.9"
394
+ source = "registry+https://github.com/rust-lang/crates.io-index"
395
+ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
396
+ dependencies = [
397
+ "aho-corasick",
398
+ "memchr",
399
+ "regex-syntax",
400
+ ]
401
+
402
+ [[package]]
403
+ name = "regex-syntax"
404
+ version = "0.8.5"
405
+ source = "registry+https://github.com/rust-lang/crates.io-index"
406
+ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
407
+
408
+ [[package]]
409
+ name = "rustc-hash"
410
+ version = "1.1.0"
411
+ source = "registry+https://github.com/rust-lang/crates.io-index"
412
+ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
413
+
414
+ [[package]]
415
+ name = "rustc-hash"
416
+ version = "2.1.0"
417
+ source = "registry+https://github.com/rust-lang/crates.io-index"
418
+ checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
419
+
420
+ [[package]]
421
+ name = "ryu"
422
+ version = "1.0.18"
423
+ source = "registry+https://github.com/rust-lang/crates.io-index"
424
+ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
425
+
426
+ [[package]]
427
+ name = "seq-macro"
428
+ version = "0.3.5"
429
+ source = "registry+https://github.com/rust-lang/crates.io-index"
430
+ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
431
+
432
+ [[package]]
433
+ name = "serde"
434
+ version = "1.0.217"
435
+ source = "registry+https://github.com/rust-lang/crates.io-index"
436
+ checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
437
+ dependencies = [
438
+ "serde_derive",
439
+ ]
440
+
441
+ [[package]]
442
+ name = "serde_derive"
443
+ version = "1.0.217"
444
+ source = "registry+https://github.com/rust-lang/crates.io-index"
445
+ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
446
+ dependencies = [
447
+ "proc-macro2",
448
+ "quote",
449
+ "syn",
450
+ ]
451
+
452
+ [[package]]
453
+ name = "serde_json"
454
+ version = "1.0.135"
455
+ source = "registry+https://github.com/rust-lang/crates.io-index"
456
+ checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9"
457
+ dependencies = [
458
+ "itoa",
459
+ "memchr",
460
+ "ryu",
461
+ "serde",
462
+ ]
463
+
464
+ [[package]]
465
+ name = "shell-words"
466
+ version = "1.1.0"
467
+ source = "registry+https://github.com/rust-lang/crates.io-index"
468
+ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
469
+
470
+ [[package]]
471
+ name = "shlex"
472
+ version = "1.3.0"
473
+ source = "registry+https://github.com/rust-lang/crates.io-index"
474
+ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
475
+
476
+ [[package]]
477
+ name = "strsim"
478
+ version = "0.11.1"
479
+ source = "registry+https://github.com/rust-lang/crates.io-index"
480
+ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
481
+
482
+ [[package]]
483
+ name = "syn"
484
+ version = "2.0.96"
485
+ source = "registry+https://github.com/rust-lang/crates.io-index"
486
+ checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
487
+ dependencies = [
488
+ "proc-macro2",
489
+ "quote",
490
+ "unicode-ident",
491
+ ]
492
+
493
+ [[package]]
494
+ name = "thiserror"
495
+ version = "1.0.69"
496
+ source = "registry+https://github.com/rust-lang/crates.io-index"
497
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
498
+ dependencies = [
499
+ "thiserror-impl",
500
+ ]
501
+
502
+ [[package]]
503
+ name = "thiserror-impl"
504
+ version = "1.0.69"
505
+ source = "registry+https://github.com/rust-lang/crates.io-index"
506
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
507
+ dependencies = [
508
+ "proc-macro2",
509
+ "quote",
510
+ "syn",
511
+ ]
512
+
513
+ [[package]]
514
+ name = "unicode-ident"
515
+ version = "1.0.14"
516
+ source = "registry+https://github.com/rust-lang/crates.io-index"
517
+ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
518
+
519
+ [[package]]
520
+ name = "windows-targets"
521
+ version = "0.52.6"
522
+ source = "registry+https://github.com/rust-lang/crates.io-index"
523
+ checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
524
+ dependencies = [
525
+ "windows_aarch64_gnullvm",
526
+ "windows_aarch64_msvc",
527
+ "windows_i686_gnu",
528
+ "windows_i686_gnullvm",
529
+ "windows_i686_msvc",
530
+ "windows_x86_64_gnu",
531
+ "windows_x86_64_gnullvm",
532
+ "windows_x86_64_msvc",
533
+ ]
534
+
535
+ [[package]]
536
+ name = "windows_aarch64_gnullvm"
537
+ version = "0.52.6"
538
+ source = "registry+https://github.com/rust-lang/crates.io-index"
539
+ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
540
+
541
+ [[package]]
542
+ name = "windows_aarch64_msvc"
543
+ version = "0.52.6"
544
+ source = "registry+https://github.com/rust-lang/crates.io-index"
545
+ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
546
+
547
+ [[package]]
548
+ name = "windows_i686_gnu"
549
+ version = "0.52.6"
550
+ source = "registry+https://github.com/rust-lang/crates.io-index"
551
+ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
552
+
553
+ [[package]]
554
+ name = "windows_i686_gnullvm"
555
+ version = "0.52.6"
556
+ source = "registry+https://github.com/rust-lang/crates.io-index"
557
+ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
558
+
559
+ [[package]]
560
+ name = "windows_i686_msvc"
561
+ version = "0.52.6"
562
+ source = "registry+https://github.com/rust-lang/crates.io-index"
563
+ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
564
+
565
+ [[package]]
566
+ name = "windows_x86_64_gnu"
567
+ version = "0.52.6"
568
+ source = "registry+https://github.com/rust-lang/crates.io-index"
569
+ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
570
+
571
+ [[package]]
572
+ name = "windows_x86_64_gnullvm"
573
+ version = "0.52.6"
574
+ source = "registry+https://github.com/rust-lang/crates.io-index"
575
+ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
576
+
577
+ [[package]]
578
+ name = "windows_x86_64_msvc"
579
+ version = "0.52.6"
580
+ source = "registry+https://github.com/rust-lang/crates.io-index"
581
+ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
582
+
583
+ [[package]]
584
+ name = "xmlparser"
585
+ version = "0.13.6"
586
+ source = "registry+https://github.com/rust-lang/crates.io-index"
587
+ checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
data/Cargo.toml ADDED
@@ -0,0 +1,7 @@
1
+ # This Cargo.toml is here to let externals tools (IDEs, etc.) know that this is
2
+ # a Rust project. Your extensions dependencies should be added to the Cargo.toml
3
+ # in the ext/ directory.
4
+
5
+ [workspace]
6
+ members = ["./ext/mrml"]
7
+ resolver = "2"
data/LICENSE ADDED
@@ -0,0 +1,11 @@
1
+ Copyright (c) 2025 Paul Mucur.
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+
7
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+
9
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # rb-mrml - Ruby bindings to MRML
2
+
3
+ Ruby bindings to [MRML][], a reimplementation of the [MJML][] markup language in Rust.
4
+
5
+ [![Build Status](https://github.com/mudge/rb-mrml/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/mudge/rb-mrml/actions)
6
+
7
+ **Current version:** 0.1.0
8
+ **Bundled MRML version:** 4.0.1
9
+
10
+ ```ruby
11
+ MRML.to_html("<mjml><mj-body></mj-body></mjml>")
12
+ #=> "<!doctype html>..."
13
+ ```
14
+
15
+ ## Requirements
16
+
17
+ This gem requires the following to run:
18
+
19
+ * [Ruby](https://www.ruby-lang.org/en/) 2.7 to 3.4
20
+
21
+ ### Native gems
22
+
23
+ Where possible, a pre-compiled native gem will be provided for the following platforms:
24
+
25
+ * Linux
26
+ * `aarch64-linux`, `arm-linux`, `x86-linux`, `x86_64-linux`
27
+ * `aarch64-linux-musl`, `x86_64-linux-musl` for [musl](https://musl.libc.org/)-based systems such as [Alpine](https://alpinelinux.org)
28
+ * macOS `x86_64-darwin` and `arm64-darwin`
29
+ * Windows `x64-mingw32` and `x64-mingw-ucrt`
30
+
31
+ ### Verifying the gems
32
+
33
+ SHA256 checksums are included in the [release
34
+ notes](https://github.com/mudge/rb-mrml/releases) for each version and can be
35
+ checked with `sha256sum`, e.g.
36
+
37
+ ```console
38
+ $ gem fetch rb-mrml -v 0.1.0
39
+ Fetching rb-mrml-0.1.0-arm64-darwin.gem
40
+ Downloaded rb-mrml-0.1.0-arm64-darwin
41
+ $ sha256sum rb-mrml-0.1.0-arm64-darwin.gem
42
+ 653c81b9fa347aa2ccbc360833b8de46de9ee04037c936ac67841f8edb14547b rb-mrml-0.1.0-arm64-darwin.gem
43
+ ```
44
+
45
+ [GPG](https://www.gnupg.org/) signatures are attached to each release (the
46
+ assets ending in `.sig`) and can be verified if you import [our signing key
47
+ `0x39AC3530070E0F75`](https://mudge.name/39AC3530070E0F75.asc) (or fetch it
48
+ from a public keyserver, e.g. `gpg --keyserver keyserver.ubuntu.com --recv-key
49
+ 0x39AC3530070E0F75`):
50
+
51
+ ```console
52
+ $ gpg --verify rb-mrml-0.1.0-arm64-darwin.gem.sig rb-mrml-0.1.0-arm64-darwin.gem
53
+ gpg: Signature made Fri 8 Nov 13:45:18 2024 GMT
54
+ gpg: using RSA key 702609D9C790F45B577D7BEC39AC3530070E0F75
55
+ gpg: Good signature from "Paul Mucur <mudge@mudge.name>" [unknown]
56
+ gpg: aka "Paul Mucur <paul@ghostcassette.com>" [unknown]
57
+ gpg: WARNING: This key is not certified with a trusted signature!
58
+ gpg: There is no indication that the signature belongs to the owner.
59
+ Primary key fingerprint: 7026 09D9 C790 F45B 577D 7BEC 39AC 3530 070E 0F75
60
+ ```
61
+
62
+ The fingerprint should be as shown above or you can independently verify it
63
+ with the ones shown in the footer of https://mudge.name.
64
+
65
+ ### Installing the `ruby` platform gem
66
+
67
+ > [!WARNING]
68
+ > We strongly recommend using the native gems where possible to avoid the need
69
+ > for compiling the Rust extension and its dependencies which will take longer
70
+ > and be less reliable.
71
+
72
+ If you wish to compile the gem, you will need to explicitly install the `ruby` platform gem:
73
+
74
+ ```ruby
75
+ # In your Gemfile with Bundler 2.3.18+
76
+ gem "rb-mrml", force_ruby_platform: true
77
+
78
+ # With Bundler 2.1+
79
+ bundle config set force_ruby_platform true
80
+
81
+ # With older versions of Bundler
82
+ bundle config force_ruby_platform true
83
+
84
+ # Without Bundler
85
+ gem install rb-mrml --platform=ruby
86
+ ```
87
+
88
+ You will need a full compiler toolchain for compiling Ruby Rust extensions (see
89
+ [rb-sys's "What dependencies do I need to build a Ruby extension in
90
+ Rust?"](https://github.com/oxidize-rb/rb-sys?tab=readme-ov-file#what-dependencies-do-i-need-to-build-a-ruby-extension-in-rust)).
91
+
92
+ ## Thanks
93
+
94
+ * Thanks to [Bytecode Alliance's `wastime-rb`](https://github.com/bytecodealliance/wasmtime-rb/tree/main) as an example of a Ruby Rust extension
95
+ * Thanks to [Jonian Guveli's "MRML Ruby"](https://github.com/hardpixel/mrml-ruby) as another implementation of Ruby bindings to MRML for older versions of Ruby
96
+
97
+ ## Contact
98
+
99
+ All issues and suggestions should go to [GitHub
100
+ Issues](https://github.com/mudge/rb-mrml/issues).
101
+
102
+ ## License
103
+
104
+ This library is licensed under the BSD 3-Clause License, see `LICENSE`.
105
+
106
+ Copyright © 2025, Paul Mucur.
107
+
108
+ [MRML]: https://github.com/jdrouet/mrml/tree/main
109
+ [MJML]: https://documentation.mjml.io/
@@ -0,0 +1,15 @@
1
+ [package]
2
+ name = "mrml"
3
+ version = "0.1.0"
4
+ edition = "2021"
5
+ authors = ["Paul Mucur <mudge@mudge.name>"]
6
+ license = "BSD-3-Clause"
7
+ publish = false
8
+
9
+ [lib]
10
+ crate-type = ["cdylib"]
11
+
12
+ [dependencies]
13
+ magnus = { version = "0.7" }
14
+ mrml = { version = "4.0" }
15
+ serde = { version = "1.0", features = ["derive"] }
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "mkmf"
4
+ require "rb_sys/mkmf"
5
+
6
+ create_rust_makefile("mrml/mrml")
@@ -0,0 +1,22 @@
1
+ use magnus::{function, prelude::*, Error, Ruby};
2
+
3
+ fn to_html(ruby: &Ruby, input: String) -> Result<String, Error> {
4
+ let root = match mrml::parse(&input) {
5
+ Ok(root) => root,
6
+ Err(err) => return Err(Error::new(ruby.exception_arg_error(), err.to_string())),
7
+ };
8
+
9
+ let opts = mrml::prelude::render::RenderOptions::default();
10
+
11
+ match root.render(&opts) {
12
+ Ok(content) => Ok(content),
13
+ Err(err) => Err(Error::new(ruby.exception_standard_error(), err.to_string())),
14
+ }
15
+ }
16
+
17
+ #[magnus::init]
18
+ fn init(ruby: &Ruby) -> Result<(), Error> {
19
+ let module = ruby.define_module("MRML")?;
20
+ module.define_singleton_method("to_html", function!(to_html, 1))?;
21
+ Ok(())
22
+ }
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MRML
4
+ VERSION = "0.1.0"
5
+ end
data/lib/mrml.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "mrml/version"
4
+
5
+ begin
6
+ RUBY_VERSION =~ /(\d+\.\d+)/
7
+ require "mrml/#{Regexp.last_match(1)}/mrml"
8
+ rescue LoadError
9
+ require "mrml/mrml"
10
+ end
data/lib/rb-mrml.rb ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "mrml"
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rb-mrml
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Paul Mucur
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-01-13 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rb_sys
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 0.9.107
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.9.107
26
+ description: Ruby bindings to MRML, a reimplementation of the MJML markup language
27
+ in Rust.
28
+ executables: []
29
+ extensions:
30
+ - ext/mrml/extconf.rb
31
+ extra_rdoc_files: []
32
+ files:
33
+ - Cargo.lock
34
+ - Cargo.toml
35
+ - LICENSE
36
+ - README.md
37
+ - ext/mrml/Cargo.toml
38
+ - ext/mrml/extconf.rb
39
+ - ext/mrml/src/lib.rs
40
+ - lib/mrml.rb
41
+ - lib/mrml/version.rb
42
+ - lib/rb-mrml.rb
43
+ homepage: https://github.com/mudge/rb-mrml
44
+ licenses:
45
+ - BSD-3-Clause
46
+ metadata:
47
+ bug_tracker_uri: https://github.com/mudge/rb-mrml/issues
48
+ changelog_uri: https://github.com/mudge/rb-mrml/blob/main/CHANGELOG.md
49
+ funding_uri: https://github.com/sponsors/mudge
50
+ homepage_uri: https://github.com/mudge/rb-mrml
51
+ source_code_uri: https://github.com/mudge/rb-mrml
52
+ rubygems_mfa_required: 'true'
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 2.7.0
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubygems_version: 3.6.2
68
+ specification_version: 4
69
+ summary: Ruby bindings to MRML
70
+ test_files: []