diffx-python 0.4.3__tar.gz → 0.5.2__tar.gz

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.
Files changed (444) hide show
  1. diffx_python-0.5.2/Cargo.toml +56 -0
  2. {diffx_python-0.4.3 → diffx_python-0.5.2}/PKG-INFO +36 -27
  3. {diffx_python-0.4.3 → diffx_python-0.5.2}/README.md +18 -10
  4. diffx_python-0.5.2/diffx-core/Cargo.toml +34 -0
  5. diffx_python-0.5.2/diffx-core/README.md +317 -0
  6. diffx_python-0.5.2/diffx-core/benches/diff_benchmark.rs +255 -0
  7. diffx_python-0.5.2/diffx-core/src/lib.rs +1085 -0
  8. diffx_python-0.5.2/diffx-python/Cargo.lock +732 -0
  9. diffx_python-0.5.2/diffx-python/Cargo.toml +31 -0
  10. diffx_python-0.5.2/diffx-python/README.md +92 -0
  11. diffx_python-0.5.2/diffx-python/examples.py +531 -0
  12. {diffx_python-0.4.3 → diffx_python-0.5.2/diffx-python}/src/diffx/__init__.py +14 -1
  13. {diffx_python-0.4.3 → diffx_python-0.5.2/diffx-python}/src/diffx/diffx.py +34 -15
  14. diffx_python-0.5.2/diffx-python/src/main.rs +817 -0
  15. diffx_python-0.5.2/diffx-python/target/.rustc_info.json +1 -0
  16. diffx_python-0.5.2/diffx-python/target/release/.cargo-lock +0 -0
  17. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/aho-corasick-e95540c81a65a99a/dep-lib-aho_corasick +0 -0
  18. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/aho-corasick-e95540c81a65a99a/invoked.timestamp +1 -0
  19. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/aho-corasick-e95540c81a65a99a/lib-aho_corasick +1 -0
  20. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/aho-corasick-e95540c81a65a99a/lib-aho_corasick.json +1 -0
  21. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstream-76b2a5128d6533f5/dep-lib-anstream +0 -0
  22. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstream-76b2a5128d6533f5/invoked.timestamp +1 -0
  23. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstream-76b2a5128d6533f5/lib-anstream +1 -0
  24. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstream-76b2a5128d6533f5/lib-anstream.json +1 -0
  25. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-301b1a3367315f20/dep-lib-anstyle +0 -0
  26. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-301b1a3367315f20/invoked.timestamp +1 -0
  27. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-301b1a3367315f20/lib-anstyle +1 -0
  28. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-301b1a3367315f20/lib-anstyle.json +1 -0
  29. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-parse-68b35f75f4040196/dep-lib-anstyle_parse +0 -0
  30. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-parse-68b35f75f4040196/invoked.timestamp +1 -0
  31. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-parse-68b35f75f4040196/lib-anstyle_parse +1 -0
  32. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-parse-68b35f75f4040196/lib-anstyle_parse.json +1 -0
  33. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-query-a11039aea6ff4c9e/dep-lib-anstyle_query +0 -0
  34. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-query-a11039aea6ff4c9e/invoked.timestamp +1 -0
  35. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-query-a11039aea6ff4c9e/lib-anstyle_query +1 -0
  36. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anstyle-query-a11039aea6ff4c9e/lib-anstyle_query.json +1 -0
  37. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-0ab5e60545e805e2/build-script-build-script-build +1 -0
  38. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-0ab5e60545e805e2/build-script-build-script-build.json +1 -0
  39. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-0ab5e60545e805e2/dep-build-script-build-script-build +0 -0
  40. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-0ab5e60545e805e2/invoked.timestamp +1 -0
  41. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-39922d21f1cdd6cf/run-build-script-build-script-build +1 -0
  42. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-39922d21f1cdd6cf/run-build-script-build-script-build.json +1 -0
  43. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-a89081b19e6cc63a/dep-lib-anyhow +0 -0
  44. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-a89081b19e6cc63a/invoked.timestamp +1 -0
  45. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-a89081b19e6cc63a/lib-anyhow +1 -0
  46. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/anyhow-a89081b19e6cc63a/lib-anyhow.json +1 -0
  47. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap-8124f7f7a4c7cd1b/dep-lib-clap +0 -0
  48. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap-8124f7f7a4c7cd1b/invoked.timestamp +1 -0
  49. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap-8124f7f7a4c7cd1b/lib-clap +1 -0
  50. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap-8124f7f7a4c7cd1b/lib-clap.json +1 -0
  51. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_builder-24ac0d899e9a2962/dep-lib-clap_builder +0 -0
  52. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_builder-24ac0d899e9a2962/invoked.timestamp +1 -0
  53. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_builder-24ac0d899e9a2962/lib-clap_builder +1 -0
  54. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_builder-24ac0d899e9a2962/lib-clap_builder.json +1 -0
  55. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_derive-919f91c141671618/dep-lib-clap_derive +0 -0
  56. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_derive-919f91c141671618/invoked.timestamp +1 -0
  57. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_derive-919f91c141671618/lib-clap_derive +1 -0
  58. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_derive-919f91c141671618/lib-clap_derive.json +1 -0
  59. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_lex-013b899981973448/dep-lib-clap_lex +0 -0
  60. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_lex-013b899981973448/invoked.timestamp +1 -0
  61. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_lex-013b899981973448/lib-clap_lex +1 -0
  62. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/clap_lex-013b899981973448/lib-clap_lex.json +1 -0
  63. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colorchoice-d1aec6c9d198d595/dep-lib-colorchoice +0 -0
  64. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colorchoice-d1aec6c9d198d595/invoked.timestamp +1 -0
  65. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colorchoice-d1aec6c9d198d595/lib-colorchoice +1 -0
  66. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colorchoice-d1aec6c9d198d595/lib-colorchoice.json +1 -0
  67. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colored-11999f931d4af629/dep-lib-colored +0 -0
  68. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colored-11999f931d4af629/invoked.timestamp +1 -0
  69. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colored-11999f931d4af629/lib-colored +1 -0
  70. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/colored-11999f931d4af629/lib-colored.json +1 -0
  71. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/configparser-c597ca3199b89a2a/dep-lib-configparser +0 -0
  72. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/configparser-c597ca3199b89a2a/invoked.timestamp +1 -0
  73. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/configparser-c597ca3199b89a2a/lib-configparser +1 -0
  74. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/configparser-c597ca3199b89a2a/lib-configparser.json +1 -0
  75. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-489d4d2a34898e2a/dep-lib-csv +0 -0
  76. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-489d4d2a34898e2a/invoked.timestamp +1 -0
  77. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-489d4d2a34898e2a/lib-csv +1 -0
  78. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-489d4d2a34898e2a/lib-csv.json +1 -0
  79. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-core-a3123bac4b897654/dep-lib-csv_core +0 -0
  80. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-core-a3123bac4b897654/invoked.timestamp +1 -0
  81. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-core-a3123bac4b897654/lib-csv_core +1 -0
  82. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/csv-core-a3123bac4b897654/lib-csv_core.json +1 -0
  83. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-core-486df61314eaf31b/dep-lib-diffx_core +0 -0
  84. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-core-486df61314eaf31b/invoked.timestamp +1 -0
  85. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-core-486df61314eaf31b/lib-diffx_core +1 -0
  86. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-core-486df61314eaf31b/lib-diffx_core.json +1 -0
  87. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-python-f8984021816d4bb3/bin-diffx +1 -0
  88. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-python-f8984021816d4bb3/bin-diffx.json +1 -0
  89. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-python-f8984021816d4bb3/dep-bin-diffx +0 -0
  90. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/diffx-python-f8984021816d4bb3/invoked.timestamp +1 -0
  91. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-abda198a4afaf854/dep-lib-dirs +0 -0
  92. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-abda198a4afaf854/invoked.timestamp +1 -0
  93. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-abda198a4afaf854/lib-dirs +1 -0
  94. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-abda198a4afaf854/lib-dirs.json +1 -0
  95. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-sys-e4f0e08290708f00/dep-lib-dirs_sys +0 -0
  96. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-sys-e4f0e08290708f00/invoked.timestamp +1 -0
  97. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-sys-e4f0e08290708f00/lib-dirs_sys +1 -0
  98. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/dirs-sys-e4f0e08290708f00/lib-dirs_sys.json +1 -0
  99. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/equivalent-d1815b64a2780ed4/dep-lib-equivalent +0 -0
  100. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/equivalent-d1815b64a2780ed4/invoked.timestamp +1 -0
  101. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/equivalent-d1815b64a2780ed4/lib-equivalent +1 -0
  102. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/equivalent-d1815b64a2780ed4/lib-equivalent.json +1 -0
  103. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/hashbrown-59b4e3fd11a2a426/dep-lib-hashbrown +0 -0
  104. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/hashbrown-59b4e3fd11a2a426/invoked.timestamp +1 -0
  105. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/hashbrown-59b4e3fd11a2a426/lib-hashbrown +1 -0
  106. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/hashbrown-59b4e3fd11a2a426/lib-hashbrown.json +1 -0
  107. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/heck-413fe27b787870ca/dep-lib-heck +0 -0
  108. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/heck-413fe27b787870ca/invoked.timestamp +1 -0
  109. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/heck-413fe27b787870ca/lib-heck +1 -0
  110. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/heck-413fe27b787870ca/lib-heck.json +1 -0
  111. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/indexmap-fea09edc9defab23/dep-lib-indexmap +0 -0
  112. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/indexmap-fea09edc9defab23/invoked.timestamp +1 -0
  113. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/indexmap-fea09edc9defab23/lib-indexmap +1 -0
  114. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/indexmap-fea09edc9defab23/lib-indexmap.json +1 -0
  115. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/is_terminal_polyfill-890dcf447c84dc42/dep-lib-is_terminal_polyfill +0 -0
  116. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/is_terminal_polyfill-890dcf447c84dc42/invoked.timestamp +1 -0
  117. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/is_terminal_polyfill-890dcf447c84dc42/lib-is_terminal_polyfill +1 -0
  118. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/is_terminal_polyfill-890dcf447c84dc42/lib-is_terminal_polyfill.json +1 -0
  119. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/itoa-b9fb253aa9ff1b2a/dep-lib-itoa +0 -0
  120. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/itoa-b9fb253aa9ff1b2a/invoked.timestamp +1 -0
  121. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/itoa-b9fb253aa9ff1b2a/lib-itoa +1 -0
  122. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/itoa-b9fb253aa9ff1b2a/lib-itoa.json +1 -0
  123. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/lazy_static-c2da0801ab16584f/dep-lib-lazy_static +0 -0
  124. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/lazy_static-c2da0801ab16584f/invoked.timestamp +1 -0
  125. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/lazy_static-c2da0801ab16584f/lib-lazy_static +1 -0
  126. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/lazy_static-c2da0801ab16584f/lib-lazy_static.json +1 -0
  127. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-7d6ce672dc1410f0/run-build-script-build-script-build +1 -0
  128. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-7d6ce672dc1410f0/run-build-script-build-script-build.json +1 -0
  129. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-9fa2d3c310798377/dep-lib-libc +0 -0
  130. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-9fa2d3c310798377/invoked.timestamp +1 -0
  131. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-9fa2d3c310798377/lib-libc +1 -0
  132. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-9fa2d3c310798377/lib-libc.json +1 -0
  133. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-d943ea62dcb30ccc/build-script-build-script-build +1 -0
  134. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-d943ea62dcb30ccc/build-script-build-script-build.json +1 -0
  135. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-d943ea62dcb30ccc/dep-build-script-build-script-build +0 -0
  136. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libc-d943ea62dcb30ccc/invoked.timestamp +1 -0
  137. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libyml-f415419fb440ddd3/dep-lib-libyml +0 -0
  138. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libyml-f415419fb440ddd3/invoked.timestamp +1 -0
  139. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libyml-f415419fb440ddd3/lib-libyml +1 -0
  140. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/libyml-f415419fb440ddd3/lib-libyml.json +1 -0
  141. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/memchr-8b3a23643251ebdc/dep-lib-memchr +0 -0
  142. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/memchr-8b3a23643251ebdc/invoked.timestamp +1 -0
  143. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/memchr-8b3a23643251ebdc/lib-memchr +1 -0
  144. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/memchr-8b3a23643251ebdc/lib-memchr.json +1 -0
  145. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/option-ext-f8aa61870cbd0cb2/dep-lib-option_ext +0 -0
  146. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/option-ext-f8aa61870cbd0cb2/invoked.timestamp +1 -0
  147. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/option-ext-f8aa61870cbd0cb2/lib-option_ext +1 -0
  148. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/option-ext-f8aa61870cbd0cb2/lib-option_ext.json +1 -0
  149. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-9702d12caf4464c3/dep-lib-proc_macro2 +0 -0
  150. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-9702d12caf4464c3/invoked.timestamp +1 -0
  151. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-9702d12caf4464c3/lib-proc_macro2 +1 -0
  152. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-9702d12caf4464c3/lib-proc_macro2.json +1 -0
  153. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ae3307c9e276fb1b/build-script-build-script-build +1 -0
  154. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ae3307c9e276fb1b/build-script-build-script-build.json +1 -0
  155. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ae3307c9e276fb1b/dep-build-script-build-script-build +0 -0
  156. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ae3307c9e276fb1b/invoked.timestamp +1 -0
  157. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ebaa0c2f0c2a3438/run-build-script-build-script-build +1 -0
  158. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/proc-macro2-ebaa0c2f0c2a3438/run-build-script-build-script-build.json +1 -0
  159. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quick-xml-abcbbc32a5a3bd7a/dep-lib-quick_xml +0 -0
  160. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quick-xml-abcbbc32a5a3bd7a/invoked.timestamp +1 -0
  161. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quick-xml-abcbbc32a5a3bd7a/lib-quick_xml +1 -0
  162. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quick-xml-abcbbc32a5a3bd7a/lib-quick_xml.json +1 -0
  163. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quote-f31617b36bf2c489/dep-lib-quote +0 -0
  164. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quote-f31617b36bf2c489/invoked.timestamp +1 -0
  165. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quote-f31617b36bf2c489/lib-quote +1 -0
  166. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/quote-f31617b36bf2c489/lib-quote.json +1 -0
  167. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-27acad8398eaf438/dep-lib-regex +0 -0
  168. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-27acad8398eaf438/invoked.timestamp +1 -0
  169. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-27acad8398eaf438/lib-regex +1 -0
  170. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-27acad8398eaf438/lib-regex.json +1 -0
  171. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-automata-d4521f6905de53c9/dep-lib-regex_automata +0 -0
  172. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-automata-d4521f6905de53c9/invoked.timestamp +1 -0
  173. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-automata-d4521f6905de53c9/lib-regex_automata +1 -0
  174. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-automata-d4521f6905de53c9/lib-regex_automata.json +1 -0
  175. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-syntax-bf46e03b2b2875b5/dep-lib-regex_syntax +0 -0
  176. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-syntax-bf46e03b2b2875b5/invoked.timestamp +1 -0
  177. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-syntax-bf46e03b2b2875b5/lib-regex_syntax +1 -0
  178. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/regex-syntax-bf46e03b2b2875b5/lib-regex_syntax.json +1 -0
  179. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/ryu-67ab0f84f199fa13/dep-lib-ryu +0 -0
  180. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/ryu-67ab0f84f199fa13/invoked.timestamp +1 -0
  181. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/ryu-67ab0f84f199fa13/lib-ryu +1 -0
  182. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/ryu-67ab0f84f199fa13/lib-ryu.json +1 -0
  183. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/same-file-fa82aa2255c459b9/dep-lib-same_file +0 -0
  184. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/same-file-fa82aa2255c459b9/invoked.timestamp +1 -0
  185. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/same-file-fa82aa2255c459b9/lib-same_file +1 -0
  186. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/same-file-fa82aa2255c459b9/lib-same_file.json +1 -0
  187. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-2256e136096171d6/run-build-script-build-script-build +1 -0
  188. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-2256e136096171d6/run-build-script-build-script-build.json +1 -0
  189. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-d775edc4ce9b520e/build-script-build-script-build +1 -0
  190. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-d775edc4ce9b520e/build-script-build-script-build.json +1 -0
  191. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-d775edc4ce9b520e/dep-build-script-build-script-build +0 -0
  192. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-d775edc4ce9b520e/invoked.timestamp +1 -0
  193. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-fbc68ff5e30a50b1/dep-lib-serde +0 -0
  194. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-fbc68ff5e30a50b1/invoked.timestamp +1 -0
  195. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-fbc68ff5e30a50b1/lib-serde +1 -0
  196. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde-fbc68ff5e30a50b1/lib-serde.json +1 -0
  197. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_derive-4b743fcceabd09c8/dep-lib-serde_derive +0 -0
  198. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_derive-4b743fcceabd09c8/invoked.timestamp +1 -0
  199. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_derive-4b743fcceabd09c8/lib-serde_derive +1 -0
  200. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_derive-4b743fcceabd09c8/lib-serde_derive.json +1 -0
  201. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-ac73239020f8a961/run-build-script-build-script-build +1 -0
  202. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-ac73239020f8a961/run-build-script-build-script-build.json +1 -0
  203. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-c6cd6ebfca225c69/dep-lib-serde_json +0 -0
  204. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-c6cd6ebfca225c69/invoked.timestamp +1 -0
  205. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-c6cd6ebfca225c69/lib-serde_json +1 -0
  206. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-c6cd6ebfca225c69/lib-serde_json.json +1 -0
  207. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-d55d69208000e138/build-script-build-script-build +1 -0
  208. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-d55d69208000e138/build-script-build-script-build.json +1 -0
  209. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-d55d69208000e138/dep-build-script-build-script-build +0 -0
  210. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_json-d55d69208000e138/invoked.timestamp +1 -0
  211. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_spanned-43fef65d89bb2c39/dep-lib-serde_spanned +0 -0
  212. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_spanned-43fef65d89bb2c39/invoked.timestamp +1 -0
  213. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_spanned-43fef65d89bb2c39/lib-serde_spanned +1 -0
  214. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_spanned-43fef65d89bb2c39/lib-serde_spanned.json +1 -0
  215. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-3c622c3fa1a741d3/run-build-script-build-script-build +1 -0
  216. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-3c622c3fa1a741d3/run-build-script-build-script-build.json +1 -0
  217. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-599a4b3e50f3f6b9/dep-lib-serde_yml +0 -0
  218. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-599a4b3e50f3f6b9/invoked.timestamp +1 -0
  219. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-599a4b3e50f3f6b9/lib-serde_yml +1 -0
  220. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-599a4b3e50f3f6b9/lib-serde_yml.json +1 -0
  221. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-79ebdee827206003/build-script-build-script-build +1 -0
  222. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-79ebdee827206003/build-script-build-script-build.json +1 -0
  223. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-79ebdee827206003/dep-build-script-build-script-build +0 -0
  224. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/serde_yml-79ebdee827206003/invoked.timestamp +1 -0
  225. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/similar-0a7cea1453328e10/dep-lib-similar +0 -0
  226. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/similar-0a7cea1453328e10/invoked.timestamp +1 -0
  227. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/similar-0a7cea1453328e10/lib-similar +1 -0
  228. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/similar-0a7cea1453328e10/lib-similar.json +1 -0
  229. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/strsim-6847bc0cdc71d217/dep-lib-strsim +0 -0
  230. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/strsim-6847bc0cdc71d217/invoked.timestamp +1 -0
  231. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/strsim-6847bc0cdc71d217/lib-strsim +1 -0
  232. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/strsim-6847bc0cdc71d217/lib-strsim.json +1 -0
  233. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/syn-e618efa2efd2edd7/dep-lib-syn +0 -0
  234. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/syn-e618efa2efd2edd7/invoked.timestamp +1 -0
  235. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/syn-e618efa2efd2edd7/lib-syn +1 -0
  236. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/syn-e618efa2efd2edd7/lib-syn.json +1 -0
  237. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml-a546fa02837b4ae6/dep-lib-toml +0 -0
  238. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml-a546fa02837b4ae6/invoked.timestamp +1 -0
  239. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml-a546fa02837b4ae6/lib-toml +1 -0
  240. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml-a546fa02837b4ae6/lib-toml.json +1 -0
  241. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_datetime-7ded0c8a29fb7d1b/dep-lib-toml_datetime +0 -0
  242. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_datetime-7ded0c8a29fb7d1b/invoked.timestamp +1 -0
  243. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_datetime-7ded0c8a29fb7d1b/lib-toml_datetime +1 -0
  244. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_datetime-7ded0c8a29fb7d1b/lib-toml_datetime.json +1 -0
  245. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_edit-88c1fd43557b78bb/dep-lib-toml_edit +0 -0
  246. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_edit-88c1fd43557b78bb/invoked.timestamp +1 -0
  247. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_edit-88c1fd43557b78bb/lib-toml_edit +1 -0
  248. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_edit-88c1fd43557b78bb/lib-toml_edit.json +1 -0
  249. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_write-dcc6ce8c03db2c85/dep-lib-toml_write +0 -0
  250. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_write-dcc6ce8c03db2c85/invoked.timestamp +1 -0
  251. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_write-dcc6ce8c03db2c85/lib-toml_write +1 -0
  252. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/toml_write-dcc6ce8c03db2c85/lib-toml_write.json +1 -0
  253. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/unicode-ident-7a079294cb35a080/dep-lib-unicode_ident +0 -0
  254. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/unicode-ident-7a079294cb35a080/invoked.timestamp +1 -0
  255. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/unicode-ident-7a079294cb35a080/lib-unicode_ident +1 -0
  256. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/unicode-ident-7a079294cb35a080/lib-unicode_ident.json +1 -0
  257. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/utf8parse-861abfbba286c689/dep-lib-utf8parse +0 -0
  258. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/utf8parse-861abfbba286c689/invoked.timestamp +1 -0
  259. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/utf8parse-861abfbba286c689/lib-utf8parse +1 -0
  260. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/utf8parse-861abfbba286c689/lib-utf8parse.json +1 -0
  261. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/version_check-24e6890dc0f31c03/dep-lib-version_check +0 -0
  262. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/version_check-24e6890dc0f31c03/invoked.timestamp +1 -0
  263. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/version_check-24e6890dc0f31c03/lib-version_check +1 -0
  264. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/version_check-24e6890dc0f31c03/lib-version_check.json +1 -0
  265. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/walkdir-ec4a47fa5d85fa51/dep-lib-walkdir +0 -0
  266. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/walkdir-ec4a47fa5d85fa51/invoked.timestamp +1 -0
  267. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/walkdir-ec4a47fa5d85fa51/lib-walkdir +1 -0
  268. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/walkdir-ec4a47fa5d85fa51/lib-walkdir.json +1 -0
  269. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/winnow-b1a889e18e3ebb11/dep-lib-winnow +0 -0
  270. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/winnow-b1a889e18e3ebb11/invoked.timestamp +1 -0
  271. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/winnow-b1a889e18e3ebb11/lib-winnow +1 -0
  272. diffx_python-0.5.2/diffx-python/target/release/.fingerprint/winnow-b1a889e18e3ebb11/lib-winnow.json +1 -0
  273. diffx_python-0.5.2/diffx-python/target/release/deps/aho_corasick-e95540c81a65a99a.d +35 -0
  274. diffx_python-0.5.2/diffx-python/target/release/deps/anstream-76b2a5128d6533f5.d +16 -0
  275. diffx_python-0.5.2/diffx-python/target/release/deps/anstyle-301b1a3367315f20.d +12 -0
  276. diffx_python-0.5.2/diffx-python/target/release/deps/anstyle_parse-68b35f75f4040196.d +11 -0
  277. diffx_python-0.5.2/diffx-python/target/release/deps/anstyle_query-a11039aea6ff4c9e.d +8 -0
  278. diffx_python-0.5.2/diffx-python/target/release/deps/anyhow-a89081b19e6cc63a.d +17 -0
  279. diffx_python-0.5.2/diffx-python/target/release/deps/clap-8124f7f7a4c7cd1b.d +9 -0
  280. diffx_python-0.5.2/diffx-python/target/release/deps/clap_builder-24ac0d899e9a2962.d +59 -0
  281. diffx_python-0.5.2/diffx-python/target/release/deps/clap_derive-919f91c141671618.d +21 -0
  282. diffx_python-0.5.2/diffx-python/target/release/deps/clap_lex-013b899981973448.d +8 -0
  283. diffx_python-0.5.2/diffx-python/target/release/deps/colorchoice-d1aec6c9d198d595.d +7 -0
  284. diffx_python-0.5.2/diffx-python/target/release/deps/colored-11999f931d4af629.d +12 -0
  285. diffx_python-0.5.2/diffx-python/target/release/deps/configparser-c597ca3199b89a2a.d +8 -0
  286. diffx_python-0.5.2/diffx-python/target/release/deps/csv-489d4d2a34898e2a.d +17 -0
  287. diffx_python-0.5.2/diffx-python/target/release/deps/csv_core-a3123bac4b897654.d +9 -0
  288. diffx_python-0.5.2/diffx-python/target/release/deps/diffx-f8984021816d4bb3 +0 -0
  289. diffx_python-0.5.2/diffx-python/target/release/deps/diffx-f8984021816d4bb3.d +5 -0
  290. diffx_python-0.5.2/diffx-python/target/release/deps/diffx_core-486df61314eaf31b.d +7 -0
  291. diffx_python-0.5.2/diffx-python/target/release/deps/dirs-abda198a4afaf854.d +8 -0
  292. diffx_python-0.5.2/diffx-python/target/release/deps/dirs_sys-e4f0e08290708f00.d +8 -0
  293. diffx_python-0.5.2/diffx-python/target/release/deps/equivalent-d1815b64a2780ed4.d +7 -0
  294. diffx_python-0.5.2/diffx-python/target/release/deps/hashbrown-59b4e3fd11a2a426.d +21 -0
  295. diffx_python-0.5.2/diffx-python/target/release/deps/heck-413fe27b787870ca.d +15 -0
  296. diffx_python-0.5.2/diffx-python/target/release/deps/indexmap-fea09edc9defab23.d +22 -0
  297. diffx_python-0.5.2/diffx-python/target/release/deps/is_terminal_polyfill-890dcf447c84dc42.d +7 -0
  298. diffx_python-0.5.2/diffx-python/target/release/deps/itoa-b9fb253aa9ff1b2a.d +8 -0
  299. diffx_python-0.5.2/diffx-python/target/release/deps/lazy_static-c2da0801ab16584f.d +8 -0
  300. diffx_python-0.5.2/diffx-python/target/release/deps/libaho_corasick-e95540c81a65a99a.rlib +0 -0
  301. diffx_python-0.5.2/diffx-python/target/release/deps/libaho_corasick-e95540c81a65a99a.rmeta +0 -0
  302. diffx_python-0.5.2/diffx-python/target/release/deps/libanstream-76b2a5128d6533f5.rlib +0 -0
  303. diffx_python-0.5.2/diffx-python/target/release/deps/libanstream-76b2a5128d6533f5.rmeta +0 -0
  304. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle-301b1a3367315f20.rlib +0 -0
  305. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle-301b1a3367315f20.rmeta +0 -0
  306. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle_parse-68b35f75f4040196.rlib +0 -0
  307. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle_parse-68b35f75f4040196.rmeta +0 -0
  308. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle_query-a11039aea6ff4c9e.rlib +0 -0
  309. diffx_python-0.5.2/diffx-python/target/release/deps/libanstyle_query-a11039aea6ff4c9e.rmeta +0 -0
  310. diffx_python-0.5.2/diffx-python/target/release/deps/libanyhow-a89081b19e6cc63a.rlib +0 -0
  311. diffx_python-0.5.2/diffx-python/target/release/deps/libanyhow-a89081b19e6cc63a.rmeta +0 -0
  312. diffx_python-0.5.2/diffx-python/target/release/deps/libc-9fa2d3c310798377.d +18 -0
  313. diffx_python-0.5.2/diffx-python/target/release/deps/libclap-8124f7f7a4c7cd1b.rlib +0 -0
  314. diffx_python-0.5.2/diffx-python/target/release/deps/libclap-8124f7f7a4c7cd1b.rmeta +0 -0
  315. diffx_python-0.5.2/diffx-python/target/release/deps/libclap_builder-24ac0d899e9a2962.rlib +0 -0
  316. diffx_python-0.5.2/diffx-python/target/release/deps/libclap_builder-24ac0d899e9a2962.rmeta +0 -0
  317. diffx_python-0.5.2/diffx-python/target/release/deps/libclap_lex-013b899981973448.rlib +0 -0
  318. diffx_python-0.5.2/diffx-python/target/release/deps/libclap_lex-013b899981973448.rmeta +0 -0
  319. diffx_python-0.5.2/diffx-python/target/release/deps/libcolorchoice-d1aec6c9d198d595.rlib +0 -0
  320. diffx_python-0.5.2/diffx-python/target/release/deps/libcolorchoice-d1aec6c9d198d595.rmeta +0 -0
  321. diffx_python-0.5.2/diffx-python/target/release/deps/libcolored-11999f931d4af629.rlib +0 -0
  322. diffx_python-0.5.2/diffx-python/target/release/deps/libcolored-11999f931d4af629.rmeta +0 -0
  323. diffx_python-0.5.2/diffx-python/target/release/deps/libconfigparser-c597ca3199b89a2a.rlib +0 -0
  324. diffx_python-0.5.2/diffx-python/target/release/deps/libconfigparser-c597ca3199b89a2a.rmeta +0 -0
  325. diffx_python-0.5.2/diffx-python/target/release/deps/libcsv-489d4d2a34898e2a.rlib +0 -0
  326. diffx_python-0.5.2/diffx-python/target/release/deps/libcsv-489d4d2a34898e2a.rmeta +0 -0
  327. diffx_python-0.5.2/diffx-python/target/release/deps/libcsv_core-a3123bac4b897654.rlib +0 -0
  328. diffx_python-0.5.2/diffx-python/target/release/deps/libcsv_core-a3123bac4b897654.rmeta +0 -0
  329. diffx_python-0.5.2/diffx-python/target/release/deps/libdiffx_core-486df61314eaf31b.rlib +0 -0
  330. diffx_python-0.5.2/diffx-python/target/release/deps/libdiffx_core-486df61314eaf31b.rmeta +0 -0
  331. diffx_python-0.5.2/diffx-python/target/release/deps/libdirs-abda198a4afaf854.rlib +0 -0
  332. diffx_python-0.5.2/diffx-python/target/release/deps/libdirs-abda198a4afaf854.rmeta +0 -0
  333. diffx_python-0.5.2/diffx-python/target/release/deps/libdirs_sys-e4f0e08290708f00.rlib +0 -0
  334. diffx_python-0.5.2/diffx-python/target/release/deps/libdirs_sys-e4f0e08290708f00.rmeta +0 -0
  335. diffx_python-0.5.2/diffx-python/target/release/deps/libequivalent-d1815b64a2780ed4.rlib +0 -0
  336. diffx_python-0.5.2/diffx-python/target/release/deps/libequivalent-d1815b64a2780ed4.rmeta +0 -0
  337. diffx_python-0.5.2/diffx-python/target/release/deps/libhashbrown-59b4e3fd11a2a426.rlib +0 -0
  338. diffx_python-0.5.2/diffx-python/target/release/deps/libhashbrown-59b4e3fd11a2a426.rmeta +0 -0
  339. diffx_python-0.5.2/diffx-python/target/release/deps/libheck-413fe27b787870ca.rlib +0 -0
  340. diffx_python-0.5.2/diffx-python/target/release/deps/libheck-413fe27b787870ca.rmeta +0 -0
  341. diffx_python-0.5.2/diffx-python/target/release/deps/libindexmap-fea09edc9defab23.rlib +0 -0
  342. diffx_python-0.5.2/diffx-python/target/release/deps/libindexmap-fea09edc9defab23.rmeta +0 -0
  343. diffx_python-0.5.2/diffx-python/target/release/deps/libis_terminal_polyfill-890dcf447c84dc42.rlib +0 -0
  344. diffx_python-0.5.2/diffx-python/target/release/deps/libis_terminal_polyfill-890dcf447c84dc42.rmeta +0 -0
  345. diffx_python-0.5.2/diffx-python/target/release/deps/libitoa-b9fb253aa9ff1b2a.rlib +0 -0
  346. diffx_python-0.5.2/diffx-python/target/release/deps/libitoa-b9fb253aa9ff1b2a.rmeta +0 -0
  347. diffx_python-0.5.2/diffx-python/target/release/deps/liblazy_static-c2da0801ab16584f.rlib +0 -0
  348. diffx_python-0.5.2/diffx-python/target/release/deps/liblazy_static-c2da0801ab16584f.rmeta +0 -0
  349. diffx_python-0.5.2/diffx-python/target/release/deps/liblibc-9fa2d3c310798377.rlib +0 -0
  350. diffx_python-0.5.2/diffx-python/target/release/deps/liblibc-9fa2d3c310798377.rmeta +0 -0
  351. diffx_python-0.5.2/diffx-python/target/release/deps/liblibyml-f415419fb440ddd3.rlib +0 -0
  352. diffx_python-0.5.2/diffx-python/target/release/deps/liblibyml-f415419fb440ddd3.rmeta +0 -0
  353. diffx_python-0.5.2/diffx-python/target/release/deps/libmemchr-8b3a23643251ebdc.rlib +0 -0
  354. diffx_python-0.5.2/diffx-python/target/release/deps/libmemchr-8b3a23643251ebdc.rmeta +0 -0
  355. diffx_python-0.5.2/diffx-python/target/release/deps/liboption_ext-f8aa61870cbd0cb2.rlib +0 -0
  356. diffx_python-0.5.2/diffx-python/target/release/deps/liboption_ext-f8aa61870cbd0cb2.rmeta +0 -0
  357. diffx_python-0.5.2/diffx-python/target/release/deps/libproc_macro2-9702d12caf4464c3.rlib +0 -0
  358. diffx_python-0.5.2/diffx-python/target/release/deps/libproc_macro2-9702d12caf4464c3.rmeta +0 -0
  359. diffx_python-0.5.2/diffx-python/target/release/deps/libquick_xml-abcbbc32a5a3bd7a.rlib +0 -0
  360. diffx_python-0.5.2/diffx-python/target/release/deps/libquick_xml-abcbbc32a5a3bd7a.rmeta +0 -0
  361. diffx_python-0.5.2/diffx-python/target/release/deps/libquote-f31617b36bf2c489.rlib +0 -0
  362. diffx_python-0.5.2/diffx-python/target/release/deps/libquote-f31617b36bf2c489.rmeta +0 -0
  363. diffx_python-0.5.2/diffx-python/target/release/deps/libregex-27acad8398eaf438.rlib +0 -0
  364. diffx_python-0.5.2/diffx-python/target/release/deps/libregex-27acad8398eaf438.rmeta +0 -0
  365. diffx_python-0.5.2/diffx-python/target/release/deps/libregex_automata-d4521f6905de53c9.rlib +0 -0
  366. diffx_python-0.5.2/diffx-python/target/release/deps/libregex_automata-d4521f6905de53c9.rmeta +0 -0
  367. diffx_python-0.5.2/diffx-python/target/release/deps/libregex_syntax-bf46e03b2b2875b5.rlib +0 -0
  368. diffx_python-0.5.2/diffx-python/target/release/deps/libregex_syntax-bf46e03b2b2875b5.rmeta +0 -0
  369. diffx_python-0.5.2/diffx-python/target/release/deps/libryu-67ab0f84f199fa13.rlib +0 -0
  370. diffx_python-0.5.2/diffx-python/target/release/deps/libryu-67ab0f84f199fa13.rmeta +0 -0
  371. diffx_python-0.5.2/diffx-python/target/release/deps/libsame_file-fa82aa2255c459b9.rlib +0 -0
  372. diffx_python-0.5.2/diffx-python/target/release/deps/libsame_file-fa82aa2255c459b9.rmeta +0 -0
  373. diffx_python-0.5.2/diffx-python/target/release/deps/libserde-fbc68ff5e30a50b1.rlib +0 -0
  374. diffx_python-0.5.2/diffx-python/target/release/deps/libserde-fbc68ff5e30a50b1.rmeta +0 -0
  375. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_json-c6cd6ebfca225c69.rlib +0 -0
  376. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_json-c6cd6ebfca225c69.rmeta +0 -0
  377. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_spanned-43fef65d89bb2c39.rlib +0 -0
  378. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_spanned-43fef65d89bb2c39.rmeta +0 -0
  379. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_yml-599a4b3e50f3f6b9.rlib +0 -0
  380. diffx_python-0.5.2/diffx-python/target/release/deps/libserde_yml-599a4b3e50f3f6b9.rmeta +0 -0
  381. diffx_python-0.5.2/diffx-python/target/release/deps/libsimilar-0a7cea1453328e10.rlib +0 -0
  382. diffx_python-0.5.2/diffx-python/target/release/deps/libsimilar-0a7cea1453328e10.rmeta +0 -0
  383. diffx_python-0.5.2/diffx-python/target/release/deps/libstrsim-6847bc0cdc71d217.rlib +0 -0
  384. diffx_python-0.5.2/diffx-python/target/release/deps/libstrsim-6847bc0cdc71d217.rmeta +0 -0
  385. diffx_python-0.5.2/diffx-python/target/release/deps/libsyn-e618efa2efd2edd7.rlib +0 -0
  386. diffx_python-0.5.2/diffx-python/target/release/deps/libsyn-e618efa2efd2edd7.rmeta +0 -0
  387. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml-a546fa02837b4ae6.rlib +0 -0
  388. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml-a546fa02837b4ae6.rmeta +0 -0
  389. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_datetime-7ded0c8a29fb7d1b.rlib +0 -0
  390. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_datetime-7ded0c8a29fb7d1b.rmeta +0 -0
  391. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_edit-88c1fd43557b78bb.rlib +0 -0
  392. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_edit-88c1fd43557b78bb.rmeta +0 -0
  393. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_write-dcc6ce8c03db2c85.rlib +0 -0
  394. diffx_python-0.5.2/diffx-python/target/release/deps/libtoml_write-dcc6ce8c03db2c85.rmeta +0 -0
  395. diffx_python-0.5.2/diffx-python/target/release/deps/libunicode_ident-7a079294cb35a080.rlib +0 -0
  396. diffx_python-0.5.2/diffx-python/target/release/deps/libunicode_ident-7a079294cb35a080.rmeta +0 -0
  397. diffx_python-0.5.2/diffx-python/target/release/deps/libutf8parse-861abfbba286c689.rlib +0 -0
  398. diffx_python-0.5.2/diffx-python/target/release/deps/libutf8parse-861abfbba286c689.rmeta +0 -0
  399. diffx_python-0.5.2/diffx-python/target/release/deps/libversion_check-24e6890dc0f31c03.rlib +0 -0
  400. diffx_python-0.5.2/diffx-python/target/release/deps/libversion_check-24e6890dc0f31c03.rmeta +0 -0
  401. diffx_python-0.5.2/diffx-python/target/release/deps/libwalkdir-ec4a47fa5d85fa51.rlib +0 -0
  402. diffx_python-0.5.2/diffx-python/target/release/deps/libwalkdir-ec4a47fa5d85fa51.rmeta +0 -0
  403. diffx_python-0.5.2/diffx-python/target/release/deps/libwinnow-b1a889e18e3ebb11.rlib +0 -0
  404. diffx_python-0.5.2/diffx-python/target/release/deps/libwinnow-b1a889e18e3ebb11.rmeta +0 -0
  405. diffx_python-0.5.2/diffx-python/target/release/deps/libyml-f415419fb440ddd3.d +26 -0
  406. diffx_python-0.5.2/diffx-python/target/release/deps/memchr-8b3a23643251ebdc.d +33 -0
  407. diffx_python-0.5.2/diffx-python/target/release/deps/option_ext-f8aa61870cbd0cb2.d +8 -0
  408. diffx_python-0.5.2/diffx-python/target/release/deps/proc_macro2-9702d12caf4464c3.d +14 -0
  409. diffx_python-0.5.2/diffx-python/target/release/deps/quick_xml-abcbbc32a5a3bd7a.d +33 -0
  410. diffx_python-0.5.2/diffx-python/target/release/deps/quote-f31617b36bf2c489.d +13 -0
  411. diffx_python-0.5.2/diffx-python/target/release/deps/regex-27acad8398eaf438.d +17 -0
  412. diffx_python-0.5.2/diffx-python/target/release/deps/regex_automata-d4521f6905de53c9.d +65 -0
  413. diffx_python-0.5.2/diffx-python/target/release/deps/regex_syntax-bf46e03b2b2875b5.d +37 -0
  414. diffx_python-0.5.2/diffx-python/target/release/deps/ryu-67ab0f84f199fa13.d +18 -0
  415. diffx_python-0.5.2/diffx-python/target/release/deps/same_file-fa82aa2255c459b9.d +8 -0
  416. diffx_python-0.5.2/diffx-python/target/release/deps/serde-fbc68ff5e30a50b1.d +24 -0
  417. diffx_python-0.5.2/diffx-python/target/release/deps/serde_derive-4b743fcceabd09c8.d +22 -0
  418. diffx_python-0.5.2/diffx-python/target/release/deps/serde_json-c6cd6ebfca225c69.d +22 -0
  419. diffx_python-0.5.2/diffx-python/target/release/deps/serde_spanned-43fef65d89bb2c39.d +8 -0
  420. diffx_python-0.5.2/diffx-python/target/release/deps/serde_yml-599a4b3e50f3f6b9.d +31 -0
  421. diffx_python-0.5.2/diffx-python/target/release/deps/similar-0a7cea1453328e10.d +25 -0
  422. diffx_python-0.5.2/diffx-python/target/release/deps/strsim-6847bc0cdc71d217.d +7 -0
  423. diffx_python-0.5.2/diffx-python/target/release/deps/syn-e618efa2efd2edd7.d +53 -0
  424. diffx_python-0.5.2/diffx-python/target/release/deps/toml-a546fa02837b4ae6.d +20 -0
  425. diffx_python-0.5.2/diffx-python/target/release/deps/toml_datetime-7ded0c8a29fb7d1b.d +8 -0
  426. diffx_python-0.5.2/diffx-python/target/release/deps/toml_edit-88c1fd43557b78bb.d +50 -0
  427. diffx_python-0.5.2/diffx-python/target/release/deps/toml_write-dcc6ce8c03db2c85.d +11 -0
  428. diffx_python-0.5.2/diffx-python/target/release/deps/unicode_ident-7a079294cb35a080.d +8 -0
  429. diffx_python-0.5.2/diffx-python/target/release/deps/utf8parse-861abfbba286c689.d +8 -0
  430. diffx_python-0.5.2/diffx-python/target/release/deps/version_check-24e6890dc0f31c03.d +10 -0
  431. diffx_python-0.5.2/diffx-python/target/release/deps/walkdir-ec4a47fa5d85fa51.d +10 -0
  432. diffx_python-0.5.2/diffx-python/target/release/deps/winnow-b1a889e18e3ebb11.d +32 -0
  433. diffx_python-0.5.2/diffx-python/target/release/diffx +0 -0
  434. diffx_python-0.5.2/diffx-python/target/release/diffx.d +1 -0
  435. diffx_python-0.5.2/diffx-python/target/wheels/diffx_python-0.5.0-py3-none-manylinux_2_34_x86_64.whl +0 -0
  436. diffx_python-0.5.2/diffx-python/test_integration.py +287 -0
  437. diffx_python-0.5.2/diffx-python/test_manual.py +138 -0
  438. {diffx_python-0.4.3 → diffx_python-0.5.2}/pyproject.toml +12 -16
  439. diffx_python-0.5.2/src/diffx/__init__.py +46 -0
  440. diffx_python-0.5.2/src/diffx/compat.py +56 -0
  441. diffx_python-0.5.2/src/diffx/diffx.py +293 -0
  442. diffx_python-0.4.3/.gitignore +0 -78
  443. diffx_python-0.4.3/src/diffx/installer.py +0 -119
  444. {diffx_python-0.4.3 → diffx_python-0.5.2/diffx-python}/src/diffx/compat.py +0 -0
@@ -0,0 +1,56 @@
1
+ [workspace]
2
+ resolver = "2"
3
+ members = [
4
+ "diffx-core",
5
+ "diffx-cli"
6
+ ]
7
+
8
+ [workspace.package]
9
+ version = "0.5.2"
10
+ edition = "2021"
11
+ authors = ["kako-jun"]
12
+ license = "MIT"
13
+ description = "Blazing fast semantic diff for JSON/YAML/TOML/XML/INI/CSV. Features: array tracking, regex filters, float tolerance, directory compare, UNIX-compatible options"
14
+ homepage = "https://github.com/kako-jun/diffx"
15
+ repository = "https://github.com/kako-jun/diffx"
16
+ documentation = "https://docs.rs/diffx"
17
+ readme = "README.md"
18
+ keywords = ["diff", "json", "yaml", "toml", "semantic-diff"]
19
+ categories = ["command-line-utilities", "development-tools", "text-processing", "parsing", "data-structures"]
20
+ exclude = [
21
+ ".github/",
22
+ "target/"
23
+ ]
24
+ rust-version = "1.75"
25
+
26
+ [workspace.metadata.docs.rs.badges]
27
+ maintenance = { status = "actively-developed" }
28
+
29
+ [workspace.metadata.docs.rs]
30
+ all-features = true
31
+ rustdoc-args = ["--cfg", "docsrs"]
32
+
33
+ [workspace.dependencies]
34
+ anyhow = "1.0"
35
+ clap = { version = "4.0", features = ["derive", "cargo"] }
36
+ colored = "3.0"
37
+ csv = "1.3"
38
+ configparser = "3.0"
39
+ quick-xml = { version = "0.31", features = ["serialize"] }
40
+ serde = { version = "1.0", features = ["derive"] }
41
+ serde_json = "1.0"
42
+ serde_yml = "0.0.12"
43
+ toml = "0.8"
44
+ walkdir = "2.5"
45
+ dirs = "5.0"
46
+ regex = "1.0"
47
+ similar = "2.7"
48
+ tempfile = "3.0"
49
+ assert_cmd = "2.0"
50
+ predicates = "3.1"
51
+ criterion = { version = "0.5", features = ["html_reports"] }
52
+
53
+ [profile.release]
54
+ lto = true
55
+ codegen-units = 1
56
+ panic = "abort"
@@ -1,14 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffx-python
3
- Version: 0.4.3
4
- Summary: Python wrapper for diffx - semantic diffing of JSON, YAML, TOML, XML, INI, and CSV files. Focuses on structural meaning rather than formatting.
5
- Project-URL: Homepage, https://github.com/kako-jun/diffx
6
- Project-URL: Repository, https://github.com/kako-jun/diffx
7
- Project-URL: Issues, https://github.com/kako-jun/diffx/issues
8
- Project-URL: Documentation, https://github.com/kako-jun/diffx/tree/main/docs
9
- Author: kako-jun
10
- License-Expression: MIT
11
- Keywords: automation,ci-cd,comparison,configuration,csv,data-analysis,devops,diff,ini,json,semantic,structured-data,toml,xml,yaml
3
+ Version: 0.5.2
12
4
  Classifier: Development Status :: 4 - Beta
13
5
  Classifier: Intended Audience :: Developers
14
6
  Classifier: License :: OSI Approved :: MIT License
@@ -22,15 +14,23 @@ Classifier: Programming Language :: Python :: 3.13
22
14
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
15
  Classifier: Topic :: Text Processing
24
16
  Classifier: Topic :: Utilities
25
- Requires-Python: >=3.8
17
+ Requires-Dist: pytest>=6.0 ; extra == 'dev'
18
+ Requires-Dist: pytest-cov ; extra == 'dev'
19
+ Requires-Dist: black ; extra == 'dev'
20
+ Requires-Dist: isort ; extra == 'dev'
21
+ Requires-Dist: mypy ; extra == 'dev'
22
+ Requires-Dist: ruff ; extra == 'dev'
26
23
  Provides-Extra: dev
27
- Requires-Dist: black; extra == 'dev'
28
- Requires-Dist: isort; extra == 'dev'
29
- Requires-Dist: mypy; extra == 'dev'
30
- Requires-Dist: pytest-cov; extra == 'dev'
31
- Requires-Dist: pytest>=6.0; extra == 'dev'
32
- Requires-Dist: ruff; extra == 'dev'
33
- Description-Content-Type: text/markdown
24
+ Summary: Python wrapper for diffx - semantic diffing of JSON, YAML, TOML, XML, INI, and CSV files. Focuses on structural meaning rather than formatting.
25
+ Keywords: diff,semantic,json,yaml,toml,xml,ini,csv,structured-data,comparison,devops,ci-cd,automation,data-analysis,configuration
26
+ Author: kako-jun
27
+ License: MIT
28
+ Requires-Python: >=3.8
29
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
30
+ Project-URL: Homepage, https://github.com/kako-jun/diffx
31
+ Project-URL: Repository, https://github.com/kako-jun/diffx
32
+ Project-URL: Issues, https://github.com/kako-jun/diffx/issues
33
+ Project-URL: Documentation, https://github.com/kako-jun/diffx/tree/main/docs
34
34
 
35
35
  # diffx-python
36
36
 
@@ -42,7 +42,7 @@ Python wrapper for the `diffx` CLI tool - semantic diff for structured data.
42
42
  pip install diffx-python
43
43
  ```
44
44
 
45
- This will automatically download the appropriate `diffx` binary for your system from GitHub Releases.
45
+ The `diffx` binary is automatically included in the wheel - no additional downloads required! This package uses [maturin](https://github.com/PyO3/maturin) to embed the native binary directly in the Python wheel, similar to tools like `ruff`.
46
46
 
47
47
  ## Usage
48
48
 
@@ -93,26 +93,35 @@ string_result = diffx.diff_string(
93
93
  - Floating-point tolerance
94
94
  - Array element identification
95
95
  - Path-based filtering
96
- - **Cross-platform**: Automatically downloads the right binary
96
+ - **Cross-platform**: Native binary embedded in platform-specific wheels
97
+
98
+ ## Key Benefits
99
+
100
+ - **🚀 Zero setup**: No external downloads or binary management
101
+ - **📦 Self-contained**: Everything needed is in the wheel
102
+ - **⚡ Fast installation**: No network dependencies after `pip install`
103
+ - **🔒 Secure**: No runtime downloads from external sources
104
+ - **🌐 Offline-ready**: Works in air-gapped environments
97
105
 
98
106
  ## Development
99
107
 
100
- To install in development mode with uv:
108
+ To install in development mode:
101
109
 
102
110
  ```bash
103
- uv venv
104
- source .venv/bin/activate
105
- uv pip install -e .[dev]
111
+ pip install -e .[dev]
106
112
  ```
107
113
 
108
- ## Manual Binary Installation
114
+ ## Verification
109
115
 
110
- If automatic download fails:
116
+ Verify the installation:
111
117
 
112
- ```bash
113
- diffx-download-binary
118
+ ```python
119
+ import diffx
120
+ print("diffx available:", diffx.is_diffx_available())
121
+ print("Version:", diffx.__version__)
114
122
  ```
115
123
 
116
124
  ## License
117
125
 
118
126
  This project is licensed under the MIT License.
127
+
@@ -8,7 +8,7 @@ Python wrapper for the `diffx` CLI tool - semantic diff for structured data.
8
8
  pip install diffx-python
9
9
  ```
10
10
 
11
- This will automatically download the appropriate `diffx` binary for your system from GitHub Releases.
11
+ The `diffx` binary is automatically included in the wheel - no additional downloads required! This package uses [maturin](https://github.com/PyO3/maturin) to embed the native binary directly in the Python wheel, similar to tools like `ruff`.
12
12
 
13
13
  ## Usage
14
14
 
@@ -59,24 +59,32 @@ string_result = diffx.diff_string(
59
59
  - Floating-point tolerance
60
60
  - Array element identification
61
61
  - Path-based filtering
62
- - **Cross-platform**: Automatically downloads the right binary
62
+ - **Cross-platform**: Native binary embedded in platform-specific wheels
63
+
64
+ ## Key Benefits
65
+
66
+ - **🚀 Zero setup**: No external downloads or binary management
67
+ - **📦 Self-contained**: Everything needed is in the wheel
68
+ - **⚡ Fast installation**: No network dependencies after `pip install`
69
+ - **🔒 Secure**: No runtime downloads from external sources
70
+ - **🌐 Offline-ready**: Works in air-gapped environments
63
71
 
64
72
  ## Development
65
73
 
66
- To install in development mode with uv:
74
+ To install in development mode:
67
75
 
68
76
  ```bash
69
- uv venv
70
- source .venv/bin/activate
71
- uv pip install -e .[dev]
77
+ pip install -e .[dev]
72
78
  ```
73
79
 
74
- ## Manual Binary Installation
80
+ ## Verification
75
81
 
76
- If automatic download fails:
82
+ Verify the installation:
77
83
 
78
- ```bash
79
- diffx-download-binary
84
+ ```python
85
+ import diffx
86
+ print("diffx available:", diffx.is_diffx_available())
87
+ print("Version:", diffx.__version__)
80
88
  ```
81
89
 
82
90
  ## License
@@ -0,0 +1,34 @@
1
+ [package]
2
+ name = "diffx-core"
3
+ version.workspace = true
4
+ edition.workspace = true
5
+ authors.workspace = true
6
+ license.workspace = true
7
+ description = "Core library for diffx - blazing fast semantic diff engine for structured data. Zero-copy parsing, streaming support, memory-efficient algorithms"
8
+ homepage.workspace = true
9
+ repository.workspace = true
10
+ documentation.workspace = true
11
+ readme = "README.md"
12
+ keywords = ["diff", "json", "yaml", "toml", "parser"]
13
+ categories = ["data-structures", "parsing", "algorithms", "text-processing"]
14
+ exclude.workspace = true
15
+ rust-version.workspace = true
16
+
17
+ [dependencies]
18
+ anyhow = { workspace = true }
19
+ csv = { workspace = true }
20
+ configparser = { workspace = true }
21
+ quick-xml = { workspace = true }
22
+ serde = { workspace = true }
23
+ serde_json = { workspace = true }
24
+ serde_yml = { workspace = true }
25
+ toml = { workspace = true }
26
+ regex = { workspace = true }
27
+
28
+ [dev-dependencies]
29
+ criterion = { workspace = true }
30
+ tempfile = { workspace = true }
31
+
32
+ [[bench]]
33
+ name = "diff_benchmark"
34
+ harness = false
@@ -0,0 +1,317 @@
1
+ # diffx
2
+
3
+ > **🚀 Semantic diff for structured data - Focus on what matters, not formatting**
4
+
5
+ [English README](README.md) | [日本語版 README](README_ja.md) | [中文版 README](README_zh.md)
6
+
7
+ [![CI](https://github.com/kako-jun/diffx/actions/workflows/ci.yml/badge.svg)](https://github.com/kako-jun/diffx/actions/workflows/ci.yml)
8
+ [![Crates.io CLI](https://img.shields.io/crates/v/diffx.svg?label=diffx-cli)](https://crates.io/crates/diffx)
9
+ [![Docs.rs Core](https://docs.rs/diffx-core/badge.svg)](https://docs.rs/diffx-core)
10
+ [![npm](https://img.shields.io/npm/v/diffx-js.svg?label=diffx-js)](https://www.npmjs.com/package/diffx-js)
11
+ [![PyPI](https://img.shields.io/pypi/v/diffx-python.svg?label=diffx-python)](https://pypi.org/project/diffx-python/)
12
+ [![Documentation](https://img.shields.io/badge/📚%20User%20Guide-Documentation-green)](https://github.com/kako-jun/diffx/tree/main/docs/index.md)
13
+ [![API Reference](https://img.shields.io/badge/🔧%20API%20Reference-docs.rs-blue)](https://docs.rs/diffx-core)
14
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
15
+
16
+ A next-generation diff tool that understands the **structure** and **meaning** of your data, not just text changes. Perfect for JSON, YAML, TOML, XML, INI, and CSV files.
17
+
18
+ ```bash
19
+ # Traditional diff shows formatting noise (key order, trailing commas)
20
+ $ diff config_v1.json config_v2.json
21
+ < {
22
+ < "name": "myapp",
23
+ < "version": "1.0"
24
+ < }
25
+ > {
26
+ > "version": "1.1",
27
+ > "name": "myapp"
28
+ > }
29
+
30
+ # diffx shows only semantic changes
31
+ $ diffx config_v1.json config_v2.json
32
+ ~ version: "1.0" -> "1.1"
33
+ ```
34
+
35
+ ## ✨ Key Features
36
+
37
+ - **🎯 Semantic Awareness**: Ignores formatting, key order, whitespace, and trailing commas
38
+ - **🔧 Multiple Formats**: JSON, YAML, TOML, XML, INI, CSV support
39
+ - **🤖 AI-Friendly**: Clean CLI output perfect for automation and AI analysis
40
+ - **⚡ Fast**: Built in Rust for maximum performance
41
+ - **🔗 Meta-Chaining**: Compare diff reports to track change evolution
42
+
43
+ ## 📊 Performance
44
+
45
+ Real benchmark results on AMD Ryzen 5 PRO 4650U:
46
+
47
+ ```bash
48
+ # Test files: ~600 bytes JSON with nested config
49
+ $ time diff large_test1.json large_test2.json # Shows 15+ lines of noise
50
+ $ time diffx large_test1.json large_test2.json # Shows 3 semantic changes
51
+
52
+ # Results:
53
+ Traditional diff: ~0.002s (but with formatting noise)
54
+ diffx: ~0.005s (clean semantic output)
55
+ ```
56
+
57
+ **Why CLI matters for the AI era**: As AI tools become essential in development workflows, having structured, machine-readable diff output becomes crucial. `diffx` provides clean, parseable results that AI can understand and reason about, making it perfect for automated code review, configuration management, and intelligent deployment pipelines.
58
+
59
+ ## Why diffx?
60
+
61
+ Traditional `diff` tools show you formatting noise. `diffx` shows you what actually changed.
62
+
63
+ - **Focus on meaning**: Ignores key order, whitespace, and formatting
64
+ - **Multiple formats**: Works with JSON, YAML, TOML, XML, INI, CSV
65
+ - **Clean output**: Perfect for humans, scripts, and AI analysis
66
+
67
+ ## Specification
68
+
69
+ ### Supported Formats
70
+
71
+ - JSON
72
+ - YAML
73
+ - TOML
74
+ - XML
75
+ - INI
76
+ - CSV
77
+
78
+ ### Types of Differences
79
+
80
+ - Key addition/deletion
81
+ - Value change
82
+ - Array insertion/deletion/modification
83
+ - Nested structure differences
84
+ - Value type change
85
+
86
+ ### Output Formats
87
+
88
+ `diffx` outputs differences in the **diffx format** by default - a semantic diff representation designed specifically for structured data. The diffx format provides the richest expression of structural differences and can be complemented with machine-readable formats for integration:
89
+
90
+ - **diffx Format (Default)**
91
+
92
+ - The **diffx format** is a human-readable, semantic diff representation that clearly displays structural differences (additions, changes, deletions, type changes, etc.) using intuitive symbols and hierarchical paths.
93
+ - Differences are represented by `+` (addition), `-` (deletion), `~` (change), `!` (type change) symbols with full path context (e.g., `database.connection.host`).
94
+ - **Core Feature**: Focuses on semantic changes in data, ignoring changes in key order, whitespace, and formatting. This semantic focus is the fundamental value of both the tool and the diffx format.
95
+
96
+ - **JSON Format**
97
+
98
+ - Machine-readable format. Used for CI/CD and integration with other programs.
99
+ - Differences detected by `diffx` are output as a JSON array.
100
+
101
+ - **YAML Format**
102
+
103
+ - Machine-readable format. Used for CI/CD and integration with other programs, similar to JSON.
104
+ - Differences detected by `diffx` are output as a YAML array.
105
+
106
+ - **diff-compatible Format (Unified Format)**
107
+ - Provided with the `--output unified` option.
108
+ - Intended for integration with `git` and existing merge tools.
109
+ - **Note**: This format only shows the semantic differences detected by `diffx` in traditional diff format. Changes that are not semantic differences (e.g., key order changes, whitespace changes) are not displayed. This is purely for compatibility with existing tools.
110
+
111
+ ## 🏗️ Architecture
112
+
113
+ ### System Overview
114
+
115
+ ```mermaid
116
+ graph TB
117
+ subgraph Core["diffx-core"]
118
+ B[Format Parsers]
119
+ C[Semantic Diff Engine]
120
+ D[Output Formatters]
121
+ B --> C --> D
122
+ end
123
+
124
+ E[CLI Tool] --> Core
125
+ F[NPM Package] --> E
126
+ G[Python Package] --> E
127
+
128
+ H[JSON] --> B
129
+ I[YAML] --> B
130
+ J[TOML] --> B
131
+ K[XML] --> B
132
+ L[INI] --> B
133
+ M[CSV] --> B
134
+
135
+ D --> N[CLI Display]
136
+ D --> O[JSON Output]
137
+ D --> P[YAML Output]
138
+ D --> Q[Unified Diff]
139
+ ```
140
+
141
+ ### Project Structure
142
+
143
+ ```
144
+ diffx/
145
+ ├── diffx-core/ # Diff extraction library (Crate)
146
+ ├── diffx-cli/ # CLI wrapper
147
+ ├── tests/ # All test-related files
148
+ │ ├── fixtures/ # Test input data
149
+ │ ├── integration/ # CLI integration tests
150
+ │ ├── unit/ # Core library unit tests
151
+ │ └── output/ # Test intermediate files
152
+ ├── docs/ # Documentation and specifications
153
+ └── ...
154
+ ```
155
+
156
+ ### Technology Stack
157
+
158
+ - **Rust** (Fast, safe, cross-platform)
159
+ - `serde_json`, `serde_yml`, `toml`, `configparser`, `quick-xml`, `csv` parsers
160
+ - `clap` (CLI argument parsing)
161
+ - `colored` (CLI output coloring)
162
+ - `similar` (Unified Format output)
163
+
164
+ ## 🔗 Meta-Chaining
165
+
166
+ Compare diff reports to track how changes evolve over time:
167
+
168
+ ```mermaid
169
+ graph LR
170
+ A[config_v1.json] --> D1[diffx]
171
+ B[config_v2.json] --> D1
172
+ D1 --> R1[diff_report_v1.json]
173
+
174
+ B --> D2[diffx]
175
+ C[config_v3.json] --> D2
176
+ D2 --> R2[diff_report_v2.json]
177
+
178
+ R1 --> D3[diffx]
179
+ R2 --> D3
180
+ D3 --> M[Meta-Diff Report]
181
+ ```
182
+
183
+ ```bash
184
+ $ diffx config_v1.json config_v2.json --output json > report1.json
185
+ $ diffx config_v2.json config_v3.json --output json > report2.json
186
+ $ diffx report1.json report2.json # Compare the changes themselves!
187
+ ```
188
+
189
+ ## 🚀 Quick Start
190
+
191
+ ### Installation
192
+
193
+ ```bash
194
+ # Rust (recommended - native performance)
195
+ cargo install diffx
196
+
197
+ # Node.js ecosystem
198
+ npm install diffx-js
199
+
200
+ # Python ecosystem (🆕 self-contained wheel with embedded binary)
201
+ pip install diffx-python
202
+
203
+ # Or download pre-built binaries from GitHub Releases
204
+ ```
205
+
206
+ For detailed usage and examples, see the [documentation](docs/index.md).
207
+
208
+ ### Quick Documentation Links
209
+
210
+ - **[Getting Started](docs/user-guide/getting-started.md)** - Learn the basics
211
+ - **[Installation Guide](docs/user-guide/installation.md)** - Platform-specific setup
212
+ - **[CLI Reference](docs/reference/cli-reference.md)** - Complete command reference
213
+ - **[Real-World Examples](docs/user-guide/examples.md)** - Industry use cases
214
+ - **[Integration Guide](docs/guides/integrations.md)** - CI/CD and automation
215
+
216
+ ### Basic Usage
217
+
218
+ ```bash
219
+ # Compare JSON files
220
+ diffx file1.json file2.json
221
+
222
+ # Compare with different output formats
223
+ diffx config.yaml config_new.yaml --output json
224
+ diffx data.toml data_updated.toml --output yaml
225
+
226
+ # Advanced filtering options
227
+ diffx large.json large_v2.json --ignore-keys-regex "^timestamp$|^_.*"
228
+ diffx users.json users_v2.json --array-id-key "id"
229
+ diffx metrics.json metrics_v2.json --epsilon 0.001
230
+
231
+ # High-demand practical options
232
+ diffx config.yaml config_new.yaml --ignore-case # Ignore case differences
233
+ diffx api.json api_formatted.json --ignore-whitespace # Ignore whitespace changes
234
+ diffx large.json large_v2.json --context 3 --output unified # Show 3 lines of context
235
+ diffx file1.json file2.json --quiet && echo "Files identical" # Script automation
236
+ diffx dir1/ dir2/ --recursive --brief # Quick file change check
237
+
238
+ # Performance optimization for large files
239
+ diffx huge_dataset.json huge_dataset_v2.json
240
+ # Directory comparison
241
+ diffx config_dir1/ config_dir2/ --recursive
242
+
243
+ # Meta-chaining for change tracking
244
+ diffx config_v1.json config_v2.json --output json > diff1.json
245
+ diffx config_v2.json config_v3.json --output json > diff2.json
246
+ diffx diff1.json diff2.json # Compare the changes themselves!
247
+ ```
248
+
249
+ ### Integration Examples
250
+
251
+ **CI/CD Pipeline:**
252
+
253
+ ```yaml
254
+ - name: Check configuration changes
255
+ run: |
256
+ diffx config/prod.yaml config/staging.yaml --output json > changes.json
257
+ # Process changes.json for deployment validation
258
+
259
+ - name: Quick file change detection
260
+ run: |
261
+ if ! diffx config/current.json config/new.json --quiet; then
262
+ echo "Configuration changed, triggering deployment"
263
+ fi
264
+
265
+ - name: Compare with ignore options for cleaner diffs
266
+ run: |
267
+ diffx api_old.json api_new.json --ignore-case --ignore-whitespace --output json > api_changes.json
268
+ # Focus on semantic changes, ignore formatting
269
+
270
+ - name: Compare large datasets efficiently
271
+ run: |
272
+ diffx large_prod_data.json large_staging_data.json --output json > data_changes.json
273
+ # Optimized processing for large files in CI
274
+ ```
275
+
276
+ **Git Hook:**
277
+
278
+ ```bash
279
+ #!/bin/bash
280
+ # pre-commit hook
281
+ if diffx package.json HEAD~1:package.json --output json | jq -e '.[] | select(.Added)' > /dev/null; then
282
+ echo "New dependencies detected, running security audit..."
283
+ fi
284
+ ```
285
+
286
+ ## 🌍 Multi-Language Support
287
+
288
+ diffx is available across multiple ecosystems:
289
+
290
+ ```bash
291
+ # Rust (native CLI)
292
+ cargo install diffx
293
+
294
+ # Node.js wrapper
295
+ npm install diffx-js
296
+
297
+ # Python wrapper
298
+ pip install diffx-python
299
+ ```
300
+
301
+ All packages provide the same semantic diff capabilities with automatic binary download.
302
+
303
+ ## 🔮 Future Plans
304
+
305
+ - **Interactive TUI (`diffx-tui`)**: A powerful viewer showcasing diffx capabilities with side-by-side data display
306
+ - **AI agent integration**: Automated diff summarization and explanation
307
+ - **Web UI version** (`diffx-web`)
308
+ - **VSCode extension** (`diffx-vscode`)
309
+ - **Advanced CI/CD templates**: Pre-built workflows for common use cases
310
+
311
+ ## 🤝 Contributing
312
+
313
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
314
+
315
+ ## 📄 License
316
+
317
+ MIT License - see [LICENSE](LICENSE) for details.