gedcomkit 0.1.0__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 (96) hide show
  1. gedcomkit-0.1.0/CHANGELOG.md +26 -0
  2. gedcomkit-0.1.0/Cargo.lock +123 -0
  3. gedcomkit-0.1.0/Cargo.toml +59 -0
  4. gedcomkit-0.1.0/LICENSE +661 -0
  5. gedcomkit-0.1.0/PKG-INFO +56 -0
  6. gedcomkit-0.1.0/README.md +188 -0
  7. gedcomkit-0.1.0/bindings/gedcomkit-py/Cargo.lock +262 -0
  8. gedcomkit-0.1.0/bindings/gedcomkit-py/Cargo.toml +29 -0
  9. gedcomkit-0.1.0/bindings/gedcomkit-py/LICENSE +661 -0
  10. gedcomkit-0.1.0/bindings/gedcomkit-py/README.md +41 -0
  11. gedcomkit-0.1.0/bindings/gedcomkit-py/src/lib.rs +234 -0
  12. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/LICENSE +201 -0
  13. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/README.md +25 -0
  14. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/cardinalities.tsv +1379 -0
  15. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/enumerations.tsv +13 -0
  16. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/enumerationsets.tsv +147 -0
  17. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/grammar.abnf +281 -0
  18. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/grammar.gedstruct +634 -0
  19. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/payloads.tsv +180 -0
  20. gedcomkit-0.1.0/fixtures/vendored/gedcom-spec/substructures.tsv +1389 -0
  21. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/age-invalid.ged +287 -0
  22. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/age-valid.ged +131 -0
  23. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/atsign.ged +31 -0
  24. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_ascii_1.ged +10 -0
  25. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_ascii_2.ged +10 -0
  26. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf16be-1.ged +0 -0
  27. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf16be-2.ged +0 -0
  28. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf16le-1.ged +0 -0
  29. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf16le-2.ged +0 -0
  30. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf8-1.ged +11 -0
  31. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf8-2.ged +11 -0
  32. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/char_utf8-3.ged +11 -0
  33. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/date-all.ged +8766 -0
  34. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/date-dual-invalid.ged +264 -0
  35. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/date-dual-valid.ged +44 -0
  36. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/enum-ext.ged +25 -0
  37. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/filename-1.ged +30 -0
  38. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/lang-all.ged +109 -0
  39. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/notes-1.ged +25 -0
  40. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/obje-1.ged +26 -0
  41. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/obsolete-1.ged +19 -0
  42. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/pedi-1.ged +16 -0
  43. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/rela_1.ged +19 -0
  44. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/sour-1.ged +47 -0
  45. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/tiny-1.ged +2 -0
  46. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/5/xref-case.ged +14 -0
  47. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/age-invalid.ged +284 -0
  48. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/age-valid.ged +140 -0
  49. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/atsign.ged +27 -0
  50. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_ascii_1.ged +8 -0
  51. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_ascii_2.ged +8 -0
  52. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf16be-1.ged +9 -0
  53. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf16be-2.ged +9 -0
  54. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf16le-1.ged +9 -0
  55. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf16le-2.ged +9 -0
  56. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf8-1.ged +9 -0
  57. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf8-2.ged +9 -0
  58. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/char_utf8-3.ged +9 -0
  59. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/date-all.ged +10337 -0
  60. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/date-dual-invalid.ged +346 -0
  61. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/enum-ext.ged +26 -0
  62. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/filename-1.ged +26 -0
  63. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/lang-all.ged +112 -0
  64. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/notes-1.ged +23 -0
  65. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/obje-1.ged +25 -0
  66. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/obsolete-1.ged +7 -0
  67. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/pedi-1.ged +13 -0
  68. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/rela_1.ged +19 -0
  69. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/sour-1.ged +50 -0
  70. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/tiny-1.ged +4 -0
  71. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/7/xref-case.ged +12 -0
  72. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/LICENSE +24 -0
  73. gedcomkit-0.1.0/fixtures/vendored/gedcom7code/UPSTREAM-README.md +78 -0
  74. gedcomkit-0.1.0/fixtures/vendored/zip-interop/README.md +28 -0
  75. gedcomkit-0.1.0/fixtures/vendored/zip-interop/python-zip64.gdz +0 -0
  76. gedcomkit-0.1.0/fixtures/vendored/zip-interop/python-zipfile.gdz +0 -0
  77. gedcomkit-0.1.0/pyproject.toml +26 -0
  78. gedcomkit-0.1.0/src/convert.rs +697 -0
  79. gedcomkit-0.1.0/src/dates.rs +1095 -0
  80. gedcomkit-0.1.0/src/decode.rs +665 -0
  81. gedcomkit-0.1.0/src/family.rs +332 -0
  82. gedcomkit-0.1.0/src/gedzip.rs +965 -0
  83. gedcomkit-0.1.0/src/lib.rs +1466 -0
  84. gedcomkit-0.1.0/src/names.rs +243 -0
  85. gedcomkit-0.1.0/src/schema.rs +123 -0
  86. gedcomkit-0.1.0/src/synthetic.rs +347 -0
  87. gedcomkit-0.1.0/src/tags.rs +470 -0
  88. gedcomkit-0.1.0/src/validate.rs +583 -0
  89. gedcomkit-0.1.0/src/view.rs +668 -0
  90. gedcomkit-0.1.0/tests/endurance.rs +191 -0
  91. gedcomkit-0.1.0/tests/external_charset.rs +97 -0
  92. gedcomkit-0.1.0/tests/properties.rs +224 -0
  93. gedcomkit-0.1.0/tests/requirement_corpus.rs +168 -0
  94. gedcomkit-0.1.0/tests/spec_conformance.rs +179 -0
  95. gedcomkit-0.1.0/tests/vendored_corpus.rs +216 -0
  96. gedcomkit-0.1.0/tests/version_conversion.rs +148 -0
@@ -0,0 +1,26 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. The
4
+ format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
5
+ the project uses semantic versioning within the usual pre-1.0 compatibility
6
+ rules.
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2026-09-08
11
+
12
+ ### Added
13
+
14
+ - Archival GEDCOM 5.5 through 7.x parsing, decoding, views, validation, and
15
+ reported version conversion.
16
+ - Bounded GEDZIP reading and writing.
17
+ - Python and JavaScript/WASM bindings over the same Rust core.
18
+ - Byte-exact vendored corpus, conformance, property, interoperability, and
19
+ adversarial test suites.
20
+
21
+ ### Security
22
+
23
+ - Refuse traversal, platform-special, duplicate, and central/local-mismatched
24
+ GEDZIP paths before returning entry bytes.
25
+ - Stage and checksum external fixture downloads before making them visible.
26
+ - Reject line injection through programmatically constructed GEDCOM fields.
@@ -0,0 +1,123 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "adler2"
7
+ version = "2.0.1"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
10
+
11
+ [[package]]
12
+ name = "cfg-if"
13
+ version = "1.0.4"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
16
+
17
+ [[package]]
18
+ name = "crc32fast"
19
+ version = "1.5.1"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550"
22
+ dependencies = [
23
+ "cfg-if",
24
+ ]
25
+
26
+ [[package]]
27
+ name = "flate2"
28
+ version = "1.1.10"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
31
+ dependencies = [
32
+ "crc32fast",
33
+ "miniz_oxide",
34
+ ]
35
+
36
+ [[package]]
37
+ name = "gedcomkit"
38
+ version = "0.1.0"
39
+ dependencies = [
40
+ "flate2",
41
+ "serde",
42
+ ]
43
+
44
+ [[package]]
45
+ name = "miniz_oxide"
46
+ version = "0.9.1"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
49
+ dependencies = [
50
+ "adler2",
51
+ "simd-adler32",
52
+ ]
53
+
54
+ [[package]]
55
+ name = "proc-macro2"
56
+ version = "1.0.107"
57
+ source = "registry+https://github.com/rust-lang/crates.io-index"
58
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
59
+ dependencies = [
60
+ "unicode-ident",
61
+ ]
62
+
63
+ [[package]]
64
+ name = "quote"
65
+ version = "1.0.47"
66
+ source = "registry+https://github.com/rust-lang/crates.io-index"
67
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
68
+ dependencies = [
69
+ "proc-macro2",
70
+ ]
71
+
72
+ [[package]]
73
+ name = "serde"
74
+ version = "1.0.229"
75
+ source = "registry+https://github.com/rust-lang/crates.io-index"
76
+ checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
77
+ dependencies = [
78
+ "serde_core",
79
+ "serde_derive",
80
+ ]
81
+
82
+ [[package]]
83
+ name = "serde_core"
84
+ version = "1.0.229"
85
+ source = "registry+https://github.com/rust-lang/crates.io-index"
86
+ checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
87
+ dependencies = [
88
+ "serde_derive",
89
+ ]
90
+
91
+ [[package]]
92
+ name = "serde_derive"
93
+ version = "1.0.229"
94
+ source = "registry+https://github.com/rust-lang/crates.io-index"
95
+ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
96
+ dependencies = [
97
+ "proc-macro2",
98
+ "quote",
99
+ "syn",
100
+ ]
101
+
102
+ [[package]]
103
+ name = "simd-adler32"
104
+ version = "0.3.10"
105
+ source = "registry+https://github.com/rust-lang/crates.io-index"
106
+ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
107
+
108
+ [[package]]
109
+ name = "syn"
110
+ version = "3.0.5"
111
+ source = "registry+https://github.com/rust-lang/crates.io-index"
112
+ checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
113
+ dependencies = [
114
+ "proc-macro2",
115
+ "quote",
116
+ "unicode-ident",
117
+ ]
118
+
119
+ [[package]]
120
+ name = "unicode-ident"
121
+ version = "1.0.24"
122
+ source = "registry+https://github.com/rust-lang/crates.io-index"
123
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
@@ -0,0 +1,59 @@
1
+ # gedcomkit: the standalone GEDCOM interop library. It deliberately contains
2
+ # no application-specific extension vocabulary or interface state. The name
3
+ # was checked on crates.io, npm, and PyPI before the initial release.
4
+ [package]
5
+ name = "gedcomkit"
6
+ version = "0.1.0"
7
+ description = "A byte-preserving GEDCOM document model: decoding, parsing, readings, version conversion, plausibility checks, and the GEDZIP container, for GEDCOM 5.5 through 7.x."
8
+ edition = "2024"
9
+ # The true minimum, not the workspace's toolchain: a parser library is a leaf
10
+ # dependency people build on older compilers. Raised only when a change
11
+ # actually needs a newer feature (currently: edition 2024, `slice::as_chunks`).
12
+ rust-version = "1.88"
13
+ # The crate carries its own license so it can leave the (unlicensed)
14
+ # application workspace. AGPL-3.0-or-later, the user's call (2026-09-07):
15
+ # the LICENSE text sits beside this file, and the sole copyright holder can
16
+ # always grant other terms separately.
17
+ license = "AGPL-3.0-or-later"
18
+ repository = "https://gitlab.com/timrs2998/gedcomkit"
19
+ keywords = ["gedcom", "genealogy", "parser", "family-tree", "gedzip"]
20
+ categories = ["parser-implementations", "encoding"]
21
+ readme = "README.md"
22
+ include = [
23
+ "/src/**",
24
+ "/tests/**",
25
+ "/fixtures/vendored/**",
26
+ "/Cargo.toml",
27
+ "/Cargo.lock",
28
+ "/README.md",
29
+ "/LICENSE",
30
+ "/CHANGELOG.md",
31
+ ]
32
+
33
+ [package.metadata.docs.rs]
34
+ all-features = true
35
+
36
+ [features]
37
+ # The GEDZIP container. On by default because the format is part of GEDCOM 7;
38
+ # turn it off (`default-features = false`) and the parser core has no
39
+ # dependencies at all.
40
+ default = ["gedzip"]
41
+ gedzip = ["dep:flate2"]
42
+ # Serialization of the read-only views, for callers that send them somewhere —
43
+ # a webview, a JSON API. Off by default: a parser needs no serializer.
44
+ serde = ["dep:serde"]
45
+ # Generates a deterministic synthetic tree of any size, for performance and
46
+ # stress fixtures. Off by default: nothing an application ships needs it.
47
+ fixture = []
48
+
49
+ [dependencies]
50
+ # `rust_backend` keeps deflate in pure Rust, so no system zlib is needed.
51
+ flate2 = { version = "1.1.2", default-features = false, features = ["rust_backend"], optional = true }
52
+ serde = { version = "1", features = ["derive"], optional = true }
53
+
54
+ [lints.rust]
55
+ unsafe_code = "forbid"
56
+
57
+ [lints.clippy]
58
+ pedantic = "warn"
59
+ nursery = "warn"