)]}'
{
  "log": [
    {
      "commit": "ab8949de3a1bf1cf4f6d410bb02ecf93101cdbfb",
      "tree": "1972b4a1b91cf985cae22e95dcf9828cfb461720",
      "parents": [
        "00c3bc8448324eed6f60a34cb01127d2184f09b3"
      ],
      "author": {
        "name": "Cancai Cai",
        "email": "77189278+caicancai@users.noreply.github.com",
        "time": "Wed Mar 25 21:16:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 21:16:23 2026 +0800"
      },
      "message": "chore: update copyright year in NOTICE (#110)"
    },
    {
      "commit": "00c3bc8448324eed6f60a34cb01127d2184f09b3",
      "tree": "f8930a5302b5ba2df4f48fa7d52975093cfafdd9",
      "parents": [
        "b93315ecd52f5d9c0864b9a9d675f9d5b9d62e08"
      ],
      "author": {
        "name": "ZENOTME",
        "email": "43447882+ZENOTME@users.noreply.github.com",
        "time": "Tue Mar 17 22:48:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 14:48:41 2026 +0000"
      },
      "message": "fix(theta): compact should use self.is_empty for consistency (#107)"
    },
    {
      "commit": "b93315ecd52f5d9c0864b9a9d675f9d5b9d62e08",
      "tree": "a09a581eec7c9a4a3e6d6757a846ab3df640013b",
      "parents": [
        "5aef2669ce451bf0f0f508afadd39434200ec6e9"
      ],
      "author": {
        "name": "ZENOTME",
        "email": "43447882+ZENOTME@users.noreply.github.com",
        "time": "Tue Mar 17 09:43:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 09:43:11 2026 +0800"
      },
      "message": "feat(theta): introduce intersection theta set operation (#100)\n\nCo-authored-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "5aef2669ce451bf0f0f508afadd39434200ec6e9",
      "tree": "52365f037a42345739804a1b022e73a7c9667c03",
      "parents": [
        "bf8438f691b10e99fee3a121318efb5f61bcea45"
      ],
      "author": {
        "name": "Yichi Zhang",
        "email": "109252977+YichiZhang0613@users.noreply.github.com",
        "time": "Thu Mar 05 21:34:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 13:34:11 2026 +0000"
      },
      "message": "fix: comment and assertions inconsistency (#106)\n\n"
    },
    {
      "commit": "bf8438f691b10e99fee3a121318efb5f61bcea45",
      "tree": "d22cc53e0c6e89e8f9cb3260777cb9940c640030",
      "parents": [
        "f0d997e2abc24014311e1ee74f54107c6a054c99"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Mar 02 20:29:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 20:29:03 2026 +0800"
      },
      "message": "chore(theta): flatten preamble_longs branches for clippy (#104)\n\n"
    },
    {
      "commit": "f0d997e2abc24014311e1ee74f54107c6a054c99",
      "tree": "52dc624821c1373b674a1aff9b22b059847bea3e",
      "parents": [
        "c41fe90be06a3e5a932a8bbb1696010811ac4e46"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Feb 20 20:24:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 12:24:14 2026 +0000"
      },
      "message": "chore: fine tune binomial_bounds.rs code (#103)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "c41fe90be06a3e5a932a8bbb1696010811ac4e46",
      "tree": "e894145d9c7ef38a2612ffa79cf9736002f02138",
      "parents": [
        "d6cc4bb8d9c46371d36db882d8bbe2945f96a61f"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Feb 20 20:03:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 12:03:42 2026 +0000"
      },
      "message": "chore: simplify codec checks code (#102)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "d6cc4bb8d9c46371d36db882d8bbe2945f96a61f",
      "tree": "51a85127873b7519f11822b879e21bcde7f507e8",
      "parents": [
        "6546d665c629e311b27279c2212a7b92b922fc09"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Feb 20 19:12:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 11:12:57 2026 +0000"
      },
      "message": "feat: impl CpcWrapper (#101)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "6546d665c629e311b27279c2212a7b92b922fc09",
      "tree": "d34f117e4def7875186eaa0505433dd8907a2ec4",
      "parents": [
        "74b2b87d8b54606414d5f5a6e59a52fea4867838"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Feb 19 19:22:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 11:22:24 2026 +0000"
      },
      "message": "refactor: export FrequentItemValue and improve docs (#98)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "74b2b87d8b54606414d5f5a6e59a52fea4867838",
      "tree": "e6bc55c44ad98237dbe9f6cae1ad5fcabb9d0c4f",
      "parents": [
        "761491eff261e5a9f378c3006b71b3986653d5b2"
      ],
      "author": {
        "name": "ZENOTME",
        "email": "43447882+ZENOTME@users.noreply.github.com",
        "time": "Thu Feb 19 11:40:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 11:40:05 2026 +0800"
      },
      "message": "feat(theta): compact sketch serde v3/v4 (#77)\n\nCo-authored-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "761491eff261e5a9f378c3006b71b3986653d5b2",
      "tree": "9e19a0f8e8771d20e78e49c964a3c00682a6b6b3",
      "parents": [
        "434fd5713db405d6eb2a6036df6a4931b115193e"
      ],
      "author": {
        "name": "Filippo",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Sat Feb 14 12:40:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 14 12:40:31 2026 +0100"
      },
      "message": "chore(x): add doc lint (#95)\n\n* chore(x): add doc lint\n\n* chore(x): remove fix variant for make_docs_cmd"
    },
    {
      "commit": "434fd5713db405d6eb2a6036df6a4931b115193e",
      "tree": "3594237c0a0613b8a11f95efdbee31371b65a88d",
      "parents": [
        "be55f8d8fd5a17abcff7d591270916512f57c3b9"
      ],
      "author": {
        "name": "Filippo",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Sat Feb 14 11:26:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 14 11:26:59 2026 +0100"
      },
      "message": "fix(bloom): align builder parameters with java implementation (#93)\n\n* fix(bloom): align MAX_NUM_BITS with java implementation\n* fix(bloom): align builder parameters to java limits\n* fix(bloom): make constants public as member of the builder"
    },
    {
      "commit": "be55f8d8fd5a17abcff7d591270916512f57c3b9",
      "tree": "4b5f2020661e40c83910e4600f132101119bcc53",
      "parents": [
        "921fcd1682b68d5ceeee539f64c9e45636657c0f"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sat Feb 14 16:03:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 14 09:03:32 2026 +0100"
      },
      "message": "chore: Remove early development caution warning (#94)\n\n"
    },
    {
      "commit": "921fcd1682b68d5ceeee539f64c9e45636657c0f",
      "tree": "1247726d7f47e138a18edd3e5c5db0a51ddb87c2",
      "parents": [
        "9a830707410a66823e997b04cfd6e48890904957"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sat Feb 14 08:49:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 14 00:49:10 2026 +0000"
      },
      "message": "refactor: expose codec and add centralized Family  (#91)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "9a830707410a66823e997b04cfd6e48890904957",
      "tree": "e0a9dd21f50fb5470d491e855fb1cc108991a0df",
      "parents": [
        "2fc50aecb709eb8a6dbed99d5d7a548d18a58923"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Feb 11 09:31:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 11 01:31:10 2026 +0000"
      },
      "message": "chore: check seed for CpcSketch and CountMinSketch (#85)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "2fc50aecb709eb8a6dbed99d5d7a548d18a58923",
      "tree": "0fe54ada6fc6738817f4b12aa11fbbf53530ae18",
      "parents": [
        "346f7a2587b2f941dd85fde319db875e4108e077"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Feb 11 08:59:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 11 08:59:03 2026 +0800"
      },
      "message": "chore(tdigest): better handle Centroid adds (#88)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "346f7a2587b2f941dd85fde319db875e4108e077",
      "tree": "aba320f075f6e4196ff531bea352a79c1235b47c",
      "parents": [
        "309b1346cc0ab48fd2e14771da100fbcfc91e44a"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Feb 09 00:11:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 00:11:46 2026 +0800"
      },
      "message": "refactor: sort PairTable values with std sort_unstable (#86)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "309b1346cc0ab48fd2e14771da100fbcfc91e44a",
      "tree": "775264671d9e72a001348fd7ae0ebb152f1ff3c6",
      "parents": [
        "e053fae5178f0ecd3f2fb45323f0f3eb98c81b30"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Feb 06 10:21:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 06 10:21:06 2026 +0800"
      },
      "message": "feat: support cpcsketch serde (#84)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "e053fae5178f0ecd3f2fb45323f0f3eb98c81b30",
      "tree": "9dcfb4fc6ab83cf0e4c4de12aef68679a8d5cd2d",
      "parents": [
        "0bb6c62a025e2d7bf807c33074f06cfa2dc4feab"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Feb 03 22:55:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 14:55:46 2026 +0000"
      },
      "message": "chore: define static lookup table as static variables (#83)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "0bb6c62a025e2d7bf807c33074f06cfa2dc4feab",
      "tree": "cdb3ac8d2185e383e4b2e317e7913bcbc9de595c",
      "parents": [
        "ae13a8308adfef29c20e56a5afd738fef11b8228"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Feb 02 10:56:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 10:56:15 2026 +0800"
      },
      "message": "chore: code tidy for FrequentItems and impl for more value type (#82)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "ae13a8308adfef29c20e56a5afd738fef11b8228",
      "tree": "67e3046c2269eafb0cefc13f2f9e31d10d60fca3",
      "parents": [
        "dd12abfec488097ebcaef761042317f3e46bc0cf"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sun Feb 01 13:16:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 01 13:16:46 2026 +0800"
      },
      "message": "refactor!: rename get_result to to_sketch (#81)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "dd12abfec488097ebcaef761042317f3e46bc0cf",
      "tree": "b94c0823b5218c0989a81a74de0529ed34c52e94",
      "parents": [
        "0fee12c69c8578a07561592ac3aed01b9ae65012"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sun Feb 01 11:18:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 01 03:18:53 2026 +0000"
      },
      "message": "feat: impl CpcSketch (#75)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "0fee12c69c8578a07561592ac3aed01b9ae65012",
      "tree": "058a1a434043a7cb19aa502670f1ee78d1a3adab",
      "parents": [
        "493132cd8f435bd43c8bad7b6859babe5e75c6ad"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Jan 29 11:40:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 03:40:36 2026 +0000"
      },
      "message": "test: use snapshots (#80)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "493132cd8f435bd43c8bad7b6859babe5e75c6ad",
      "tree": "dcb6581d5a93721eb25d2f4eaa29555fc7ee4e53",
      "parents": [
        "d62102d6d7dc5df61f4b22bbd058636655d7ee68"
      ],
      "author": {
        "name": "Cheng-Yang Chou",
        "email": "yphbchou0911@gmail.com",
        "time": "Thu Jan 29 11:19:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 03:19:18 2026 +0000"
      },
      "message": "refactor: remove unnecessary allocations in error formatting (#79)\n\nSigned-off-by: Cheng-Yang Chou \u003cyphbchou0911@gmail.com\u003e"
    },
    {
      "commit": "d62102d6d7dc5df61f4b22bbd058636655d7ee68",
      "tree": "8da19428638eaa67441e3446601626036e37501e",
      "parents": [
        "81e619f3fb37ea1abaf9a8efdd5743d60d3b62e1"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Jan 29 08:10:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 08:10:30 2026 +0800"
      },
      "message": "chore: update README and add CHANGELOG (#78)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "81e619f3fb37ea1abaf9a8efdd5743d60d3b62e1",
      "tree": "37806d6f84b98eb161687a01bd6cf42e29f46c83",
      "parents": [
        "583ac180362a18a4f3f57b651bb99d0000e65729"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Tue Jan 27 17:24:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 09:24:58 2026 +0000"
      },
      "message": "feat: add halve and decay to countmin sketch of unsigned values (#71)\n\nCo-authored-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "583ac180362a18a4f3f57b651bb99d0000e65729",
      "tree": "a6454fb2edcfc56978477c8c0916d887d71bdcf5",
      "parents": [
        "f3481de624936b6c7332ae1037401f2ff837f8d9"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Jan 19 16:47:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 16:47:35 2026 +0800"
      },
      "message": "chore: correct CountMinSketch::suggest_num_hashes panic docs (#73)\n\n"
    },
    {
      "commit": "f3481de624936b6c7332ae1037401f2ff837f8d9",
      "tree": "5de68842c548248f2376d2a9ec0adc94fee32c41",
      "parents": [
        "b2d1238464eef55ccfd6835b71a90fd031b3dc9c"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Jan 19 16:47:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 16:47:21 2026 +0800"
      },
      "message": "chore: enable more convenient GitHub features (#74)\n\n"
    },
    {
      "commit": "b2d1238464eef55ccfd6835b71a90fd031b3dc9c",
      "tree": "be47dfd4ad05dd5a8df1be5f2c5f04609b889df0",
      "parents": [
        "fdb38b85d22e6549ab283bf3b9b133659267d19f"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Thu Jan 15 06:11:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 14 14:11:16 2026 -0800"
      },
      "message": "docs: document build and test workflows (#69)\n\n* docs: document build and test workflows\n\n* docs: polish x task part\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n---------\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e"
    },
    {
      "commit": "fdb38b85d22e6549ab283bf3b9b133659267d19f",
      "tree": "7c293843442a9eec900a21aa07f1f347a3e105d9",
      "parents": [
        "1640af48016eea0d5f8fb242236dd71442f22f4d"
      ],
      "author": {
        "name": "ZENOTME",
        "email": "43447882+ZENOTME@users.noreply.github.com",
        "time": "Fri Jan 09 04:06:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 08 12:06:53 2026 -0800"
      },
      "message": "feat: add theta sketch (part 2) (#59)\n\n* feat: add theta sketch (part 2)\n\n* add binomial_bounds to support calculate lower_bound\u0026\u0026upper_bound\n* add get_lower_bound\u0026\u0026get_upper_bound in ThetaSketch\n\n* refine NumStdDev and some interface\n\n* refine code: remove unnecessary pub\n\n* better common layout\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\nCo-authored-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "1640af48016eea0d5f8fb242236dd71442f22f4d",
      "tree": "0b287a36dfeb1b3c9ec44c273a1ddae85aead1df",
      "parents": [
        "4e9a86dc70bd05b28fdbd0b90f6d4529a9a15be0"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Jan 08 21:10:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 08 21:10:38 2026 +0800"
      },
      "message": "fix: tdigest quantile edge case (#63)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "4e9a86dc70bd05b28fdbd0b90f6d4529a9a15be0",
      "tree": "2588732292b6c35d6c7c34952ffe7ad05cbceadf",
      "parents": [
        "15b1e0e30a6591c67a94c30b331f882350d45921"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Jan 08 21:02:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 08 21:02:53 2026 +0800"
      },
      "message": "chore: Remove required approving review count from PRs (#66)\n\nAdd it back when we have more committers to extend the review bandwidth."
    },
    {
      "commit": "15b1e0e30a6591c67a94c30b331f882350d45921",
      "tree": "31ea2aef6a84b49e13947e4fd9a7741a6d8a474a",
      "parents": [
        "9ade42d639afd013d19c3454a14773b6d54edc25"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Jan 08 20:51:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 08 13:51:59 2026 +0100"
      },
      "message": "ci: generate snaps stably (#65)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "9ade42d639afd013d19c3454a14773b6d54edc25",
      "tree": "a4b851ed37050c9b4f66b83b4008d2b50dd19737",
      "parents": [
        "9a765614ba711017b49f5249473d8767b3de4040"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Mon Jan 05 07:11:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 04 15:11:32 2026 -0800"
      },
      "message": "docs: add rustdoc examples across sketches (#58)\n\n* docs: add rustdoc examples across sketches\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* docs: make docs clean and simple\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* docs: align examples with Rust conventions\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n---------\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e"
    },
    {
      "commit": "9a765614ba711017b49f5249473d8767b3de4040",
      "tree": "277fe77e97f280798ab13c6f86c11f96ebbed098",
      "parents": [
        "22c30bcc2d9e098a2f093c17919d5ef2c498f2d4"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Sun Jan 04 22:21:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 04 13:21:31 2026 -0800"
      },
      "message": "docs: document release process (#61)\n\n* docs: document release process\n\n* chore: simplify release process"
    },
    {
      "commit": "22c30bcc2d9e098a2f093c17919d5ef2c498f2d4",
      "tree": "548bfabe32c8571481e63c6a9a37f760460c9ac0",
      "parents": [
        "819f563c29cfd139a0a69be052591a5aa3368e4d"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Thu Jan 01 01:38:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 16:38:05 2025 -0800"
      },
      "message": "chore: prepare v0.2.0 release (#57)\n\n"
    },
    {
      "commit": "819f563c29cfd139a0a69be052591a5aa3368e4d",
      "tree": "cec62a016372b1e57abd669eff793e33ac40f3dc",
      "parents": [
        "7ff21fc004062b16d9899af2ac0adee38bc9780f"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Wed Dec 31 15:37:07 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 15:37:07 2025 +0100"
      },
      "message": "feat: implement bloom filter (#53)\n\n* checkpoint\n\n* checkpoint\n\n* xxhash\n\n* match cpp hashing logic\n\n* serde\n\n* cleanup\n\n* cleanup\n\n* docs\n\n* comments cleanup\n\n* builder cleanup\n\n* trade 3 loc for 1 loc\n\n* get back 1 loc"
    },
    {
      "commit": "7ff21fc004062b16d9899af2ac0adee38bc9780f",
      "tree": "82f390cac9a387292746d2658ffce54d889a0d57",
      "parents": [
        "c2cbb7c3786fa08e1d0a00ddefa6182105f90c5f"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Dec 31 22:05:27 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 15:05:27 2025 +0100"
      },
      "message": "refactor: use new codec utils in TDigest and Frequencies sketches (#52)\n\n* refactor: use new codec utils in TDigest and Frequencies sketches\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* for frequencies\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fixup\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* simplify code\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "c2cbb7c3786fa08e1d0a00ddefa6182105f90c5f",
      "tree": "a623a46af9303a85a45893c1df823545421cabed",
      "parents": [
        "38fad365f74e49e74085580997c5a6565df4082b"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Dec 31 13:53:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 30 21:53:00 2025 -0800"
      },
      "message": "chore: fine tune frequencies and theta sketches (#51)\n\n* chore: fine tune code\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* rework frequencies codec\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fixup\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* docs\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* resize factor is shared util\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "38fad365f74e49e74085580997c5a6565df4082b",
      "tree": "b377ed89fb231786b9aa9a78fd3fd36b0f19ea2c",
      "parents": [
        "b0e0135abd9a73dd29d2b2520b97b400893cc3b7"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Wed Dec 31 01:52:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 30 09:52:35 2025 -0800"
      },
      "message": "feat: add frequencies sketches (#44)\n\n* feat: add frequencies sketch\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* refactor: align frequencies tests with HLL/TDigest like style\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* test: try to merge more test cases\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* refactor: merge longsketch into itemsketch\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* refactor: align frequencies serde API with project style\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* refactor: align api names\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n* refactor(frequencies): align errors and lower_bound semantics\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n---------\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e"
    },
    {
      "commit": "b0e0135abd9a73dd29d2b2520b97b400893cc3b7",
      "tree": "ff1eac9e384a0376be81579e77474e9b2743647e",
      "parents": [
        "0a8543e304adb7bd741be0c494967b1469bd1861"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Dec 31 00:16:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 30 08:16:42 2025 -0800"
      },
      "message": "refactor: replace byteorder with SketchBytes and SketchSlice  (#49)\n\n* refactor: replace byteorder with SketchBytes and SketchSlice\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* for hll\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* deser hll\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fixup\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fmt\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "0a8543e304adb7bd741be0c494967b1469bd1861",
      "tree": "b2dd1f3956c057c8e12ac0790fc2690afa086c44",
      "parents": [
        "9c0972170c04a9149941181f88050e9966e0d5ff"
      ],
      "author": {
        "name": "ZENOTME",
        "email": "43447882+ZENOTME@users.noreply.github.com",
        "time": "Wed Dec 31 00:15:02 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 30 08:15:02 2025 -0800"
      },
      "message": "feat: add theta sketch (part 1) (#45)\n\n* feat: add theta sketch (part 1)\n\n- add hash table for theta sketch\n- add ThetaSketch\n\n* refine some function name and comment\n\n* refine: use unified default seed DEFAULT_UPDATE_SEED\n\n* refine some style"
    },
    {
      "commit": "9c0972170c04a9149941181f88050e9966e0d5ff",
      "tree": "107ae6c21bc0720b10febc39f4ac2315465fab7c",
      "parents": [
        "f5143c311ae169b9c0bead1e47bd58881526f83e"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Dec 30 18:44:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 30 11:44:29 2025 +0100"
      },
      "message": "chore: centralize default seed (#48)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "f5143c311ae169b9c0bead1e47bd58881526f83e",
      "tree": "f8841d9ba86844a27d8e75dd4f427494a2ecd444",
      "parents": [
        "8855aa6462da50979c0804f0ee63b23b30b79910"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Dec 30 09:53:15 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 29 17:53:15 2025 -0800"
      },
      "message": "feat: add a generic error type  (#47)\n\n* feat: add a generic error type\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* apply\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* convenience constructors\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* more\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* rename error kind\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* no need source for now\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "8855aa6462da50979c0804f0ee63b23b30b79910",
      "tree": "a1d8ced6cf7dcd401248a55da669cfd8730bc963",
      "parents": [
        "f22231e28732a07e94807e3299d01ec6cd43a4d1"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Fri Dec 26 06:01:41 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 25 14:01:41 2025 -0800"
      },
      "message": "feat: implement count-min sketch (#38)\n\n* feat: implement count-min sketch\n\n* test: add count-min cases from rust-count-min-sketch\n\n* fix: move countmin module into datasketches crate\n\n* chore: make lint happy\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e\n\n---------\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e"
    },
    {
      "commit": "f22231e28732a07e94807e3299d01ec6cd43a4d1",
      "tree": "8d8d8bec71cdb380a845d6d2d263b6379612aa9e",
      "parents": [
        "792b4c5a34e3121100ac4d71fa2e8287b90a6244"
      ],
      "author": {
        "name": "Chojan Shang",
        "email": "psiace@apache.org",
        "time": "Fri Dec 26 06:01:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 25 14:01:10 2025 -0800"
      },
      "message": "feat: add xxhash64 (#39)\n\nSigned-off-by: Chojan Shang \u003cpsiace@apache.org\u003e"
    },
    {
      "commit": "792b4c5a34e3121100ac4d71fa2e8287b90a6244",
      "tree": "bbb39e426d4d9a785bf899792db42b9ca642d985",
      "parents": [
        "560b83ea5a7ab7b57a06466277d39048dfa584db"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Dec 25 16:59:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 25 00:59:04 2025 -0800"
      },
      "message": "build: set up workspace layout  (#43)\n\n* build: set up workspace layout\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fixup\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* try fix windows compile\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fix(xtask): exclude xtask binary from build command to avoid file locking on Windows\n\n* workaround windows issue\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* windows runner has no yq\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "560b83ea5a7ab7b57a06466277d39048dfa584db",
      "tree": "1ce52db250db0a3b3567bf8191a7be52606c8918",
      "parents": [
        "51347b3507e02826a37ad3023f43e6453fe4aa1c"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Mon Dec 22 15:21:50 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 22 15:21:50 2025 +0100"
      },
      "message": "chore: fix CI failing on main (#40)\n\n"
    },
    {
      "commit": "51347b3507e02826a37ad3023f43e6453fe4aa1c",
      "tree": "10d395e779c7b5f61acb4a56ffebb0b907e4e765",
      "parents": [
        "a081c458d013c60f05321b45c530b3ec4c98e709"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 22 21:29:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 22 14:29:14 2025 +0100"
      },
      "message": "chore: rustfmt rules on nightly (#33)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "a081c458d013c60f05321b45c530b3ec4c98e709",
      "tree": "b193d32c23639aa56de9f451997403e46b8bcdc8",
      "parents": [
        "a21d7f671d2956823c687ded55b5ad00ed3b890b"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 22 17:22:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 22 10:22:16 2025 +0100"
      },
      "message": "refactor: implement MurmurHash3 internally (#36)\n\n* add tests for murmurhash3\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl murmurhash3\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* test and fix up\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* drop mur3 dep\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* lint\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "a21d7f671d2956823c687ded55b5ad00ed3b890b",
      "tree": "6e40b15872af5d160c3b02992a418a063158d63d",
      "parents": [
        "bb6c191714f9f5e1349bc43ac2ab28ce29a934d3"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sat Dec 20 03:32:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 19 11:32:26 2025 -0800"
      },
      "message": "feat: implement T-Digest (#23)\n\n* feat: implement T-Digest\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl merge and compress\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl get_rank\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl merge and add tests\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* demo iter\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl ser\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl de\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fine tune deserialize tags\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* define code in one place\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* centralize compare logics\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* finish serde\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* enable freeze TDigestMut\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* add serde compat test files\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* support deserialize_compat\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl cdf and pmf\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fine tune docs\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* naming and let  to do the reserve\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* further tidy\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* best effort avoid NaN\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* fixup! best effort avoid NaN\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* concrete tag\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* filter invalid inputs\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* weight nonzero and should not overflow\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* other_mean - self_mean may produce inf\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* no need for checking in sk files now\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* reuse test data loading logics\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "bb6c191714f9f5e1349bc43ac2ab28ce29a934d3",
      "tree": "8f52c462b2d730e620a9ce3cf7d98f6d940db69b",
      "parents": [
        "774fa42a2f5e0ff563ec6518b6ee47c39246c7f1"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Dec 19 17:46:05 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 19 10:46:05 2025 +0100"
      },
      "message": "chore: Prevent compilation on big-endian targets (#31)\n\nAdd compile error for unsupported big-endian targets."
    },
    {
      "commit": "774fa42a2f5e0ff563ec6518b6ee47c39246c7f1",
      "tree": "98576024a55e8483ed571cd7261b0ba369c1c710",
      "parents": [
        "4f5f2665b590be992e75eb5d6d5f8ee6b2cc75b4"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Dec 19 13:04:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 21:04:37 2025 -0800"
      },
      "message": "build: generate snapshots on the fly  (#29)\n\n* build: generate snapshots on the fly\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* impl with docker\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* use a python script\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* for cpp snapshots\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* tidy\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* Add tool to generate serialization test data for Java and C++\n\n* setup jdk 25\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* Enhance snapshot generation script: Windows support and output capturing\n\n* Stream command output to stdout for real-time CI logs\n\n* fine tune\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "4f5f2665b590be992e75eb5d6d5f8ee6b2cc75b4",
      "tree": "f645bae5cf2584e45e46859ea31c4f6c28544595",
      "parents": [
        "9bbe3ff2844684447bad2022e2ce2873404de9cb"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Wed Dec 17 15:52:00 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 17 15:52:00 2025 +0100"
      },
      "message": "test cleanup (#26)\n\n"
    },
    {
      "commit": "9bbe3ff2844684447bad2022e2ce2873404de9cb",
      "tree": "a979d50007587bdd6c33d1e6522595eeecfb0940",
      "parents": [
        "9e89596dfbdcfd028db58ce23ecf463dbe213b54"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Wed Dec 17 15:08:52 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 17 15:08:52 2025 +0100"
      },
      "message": "feat(hll): implement HllUnion (#25)\n\n* bootstrap\n\n* basic\n\n* get_result\n\n* cleanup\n\n* assertions\n\n* cleanup\n\n* api\n\n* docs\n\n* crate to super visibility\n\n* license header"
    },
    {
      "commit": "9e89596dfbdcfd028db58ce23ecf463dbe213b54",
      "tree": "d99c5499a35bfb999852b980e41247416d7d3d79",
      "parents": [
        "c6001128c77c624ad565293a9e2759c35a3d0680"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Dec 16 18:55:08 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 16 11:55:08 2025 +0100"
      },
      "message": "chore: check InsufficientData before index access (#24)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "c6001128c77c624ad565293a9e2759c35a3d0680",
      "tree": "b66cc551f23914a7028709f4211366efcb2ea7fb",
      "parents": [
        "e5dab928d470ee21d0efb6a6876a077de8955c5c"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 15 22:38:45 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 15:38:45 2025 +0100"
      },
      "message": "chore: code tidy integration tests (#20)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "e5dab928d470ee21d0efb6a6876a077de8955c5c",
      "tree": "96a3809ddd58755263741203900128aad768a6d1",
      "parents": [
        "f37288fab5d3d243d0c4f71c06f55853e6b452d5"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 15 20:21:55 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 13:21:55 2025 +0100"
      },
      "message": "chore: fine tune asfyaml settings (#19)\n\n* chore: fixup new typos glossary and linters\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* chore: fine tune asfyaml settings\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "f37288fab5d3d243d0c4f71c06f55853e6b452d5",
      "tree": "df6172a71bb59dafd21a39d04f1010088e5037e0",
      "parents": [
        "4daf84c1a9a784a128965a206df0c25b4c9e96a2"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 15 20:20:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 13:20:54 2025 +0100"
      },
      "message": "chore: fixup new typos glossary and linters (#18)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "4daf84c1a9a784a128965a206df0c25b4c9e96a2",
      "tree": "92d1c666cd73422005a1f7bd4c74d53936aa0541",
      "parents": [
        "dd38076207dbd14bf09cc4cdfc72c6da14c73b2d"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 15 18:53:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 11:53:00 2025 +0100"
      },
      "message": "ci: install rust toolchain without actions (#16)\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "dd38076207dbd14bf09cc4cdfc72c6da14c73b2d",
      "tree": "d16a209c27d6b438c6f6124d433aab981c732b22",
      "parents": [
        "44598b66226bbf754895c9849523610d1194f42d"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Dec 15 18:38:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 11:38:04 2025 +0100"
      },
      "message": "ci: Bootstrap basic Rust CI (#13)\n\n* ci: Bootstrap basic Rust CI\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* Address comments\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n* Simplify find MSRV logic\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e\n\n---------\n\nSigned-off-by: tison \u003cwander4096@gmail.com\u003e"
    },
    {
      "commit": "44598b66226bbf754895c9849523610d1194f42d",
      "tree": "da7b49b58b3b5d16fe3c2d6903d20321efee3b6e",
      "parents": [
        "973f608dd44cc7679a27a65fdf715083afb47e92"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "12383260+notfilippo@users.noreply.github.com",
        "time": "Sun Dec 14 22:02:31 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 14 22:02:31 2025 +0100"
      },
      "message": "feat: HLL backend implementation (#1)\n\n* bootstrap\n\n* list deserialization\n\n* set deserialization\n\n* array serialization\n\n* cleanup\n\n* working\n\n* clippy\n\n* docs\n\n* use local testdata\n\n* frontend\n\n* upper \u0026 lower bound\n\n* testdata\n\n* license header\n\n* docs on sketch\n\n* improve docs\n\n* make clippy happy\n\n* introduce generic serde error\n\n* derive PartialEq when it is trivial\n\n* introduce NumStdDev enum\n\n* make serialize infallible\n\n* fix HllType docs typo\n\n* reword NumStdDev variants\n\n* update crate documentation\n\n* drop SerdeResult\n\n* cleanup unused serialization_test_data files\n\n* clarify aux_map invariants with expect messages\n\n* drop redundant expect\n\n* document invariants\n\n* cleanup \"Panics\" notice"
    },
    {
      "commit": "973f608dd44cc7679a27a65fdf715083afb47e92",
      "tree": "23e543574d4400a37c674333eb4b1f11b26759bb",
      "parents": [
        "5a8728abd6d0ff0f22ac2535bef13d52ba02c058"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Sat Dec 13 23:31:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 13 16:31:24 2025 +0100"
      },
      "message": "chore: Fix formatting and wording in README.md (#9)\n\n"
    },
    {
      "commit": "5a8728abd6d0ff0f22ac2535bef13d52ba02c058",
      "tree": "8cd690fcee5b226f60788aa81cc66c4a9d015b2d",
      "parents": [
        "8d482189e8eaf1a321ad6079b357d946094c0060",
        "acaf79869f061c668a4836aae3bb33f10c1d8e6c"
      ],
      "author": {
        "name": "Pierre Lacave",
        "email": "placave@apache.org",
        "time": "Fri Dec 12 15:53:45 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 12 15:53:45 2025 +0100"
      },
      "message": "Merge pull request #8 from Xuanwo/patch-1\n\nci: Enable squash merge and disable wiki"
    },
    {
      "commit": "acaf79869f061c668a4836aae3bb33f10c1d8e6c",
      "tree": "8cd690fcee5b226f60788aa81cc66c4a9d015b2d",
      "parents": [
        "8d482189e8eaf1a321ad6079b357d946094c0060"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Dec 12 22:43:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 12 22:43:35 2025 +0800"
      },
      "message": "ci: Enable squash merge and disable wiki"
    },
    {
      "commit": "8d482189e8eaf1a321ad6079b357d946094c0060",
      "tree": "2feea3730edaa1ae8b6a0f1ac9963a312d5e063b",
      "parents": [
        "69f73f9f0be0e1c6cc128672bb6d43588dd2930c",
        "a1dc4780a05426240d4056884d769ac55cc4489c"
      ],
      "author": {
        "name": "Pierre Lacave",
        "email": "placave@apache.org",
        "time": "Thu Dec 11 22:32:47 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 11 22:32:47 2025 +0100"
      },
      "message": "Merge pull request #7 from apache/license-rat\n\nchore: Add missing license headers"
    },
    {
      "commit": "a1dc4780a05426240d4056884d769ac55cc4489c",
      "tree": "2feea3730edaa1ae8b6a0f1ac9963a312d5e063b",
      "parents": [
        "69f73f9f0be0e1c6cc128672bb6d43588dd2930c"
      ],
      "author": {
        "name": "Pierre Lacave",
        "email": "pierre.lacave@datadoghq.com",
        "time": "Thu Dec 11 20:19:14 2025 +0100"
      },
      "committer": {
        "name": "Pierre Lacave",
        "email": "pierre.lacave@datadoghq.com",
        "time": "Thu Dec 11 20:19:44 2025 +0100"
      },
      "message": "chore: Add missing license headers\n"
    },
    {
      "commit": "69f73f9f0be0e1c6cc128672bb6d43588dd2930c",
      "tree": "b20e626c51d90d9e1359eadf543c293c2223b630",
      "parents": [
        "ac81f86b4205865e6fdf60facc8206f328635c65",
        "a8956a68871e77b211ed2989520eb0fcf6eb0aac"
      ],
      "author": {
        "name": "Pierre Lacave",
        "email": "placave@apache.org",
        "time": "Thu Dec 11 20:10:12 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 11 20:10:12 2025 +0100"
      },
      "message": "Merge pull request #6 from notfilippo/cargo-bootstrap\n\nchore: Cargo project bootstrap"
    },
    {
      "commit": "a8956a68871e77b211ed2989520eb0fcf6eb0aac",
      "tree": "b20e626c51d90d9e1359eadf543c293c2223b630",
      "parents": [
        "ac81f86b4205865e6fdf60facc8206f328635c65"
      ],
      "author": {
        "name": "Filippo Rossi",
        "email": "git@filippo.dev",
        "time": "Thu Dec 11 10:55:07 2025 +0100"
      },
      "committer": {
        "name": "Filippo Rossi",
        "email": "git@filippo.dev",
        "time": "Thu Dec 11 14:37:55 2025 +0100"
      },
      "message": "chore: Cargo project bootstrap\n"
    },
    {
      "commit": "ac81f86b4205865e6fdf60facc8206f328635c65",
      "tree": "6cc428913d2aaa1ec83dbb163a56412b595335e2",
      "parents": [
        "2044c7f903ec6c9c29b896558976d46ea362d94b"
      ],
      "author": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:43:18 2025 -0800"
      },
      "committer": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:43:18 2025 -0800"
      },
      "message": "fix typo"
    },
    {
      "commit": "2044c7f903ec6c9c29b896558976d46ea362d94b",
      "tree": "3cbb1f7dc8e78cf70a224f2f8e214e2f97a5a358",
      "parents": [
        "ea84469011fb572ec2be7b959a353b1b0575a1f2"
      ],
      "author": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:23:20 2025 -0800"
      },
      "committer": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:23:20 2025 -0800"
      },
      "message": "Fix indentation"
    },
    {
      "commit": "ea84469011fb572ec2be7b959a353b1b0575a1f2",
      "tree": "433f84fae3924f43aa3e5bf78929e78bc6efb58e",
      "parents": [
        "27c840a4387f590bf43b7b461ef9031744a456fd"
      ],
      "author": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:19:13 2025 -0800"
      },
      "committer": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 15:19:13 2025 -0800"
      },
      "message": "Added wiki, issues, projects and discussions to website"
    },
    {
      "commit": "27c840a4387f590bf43b7b461ef9031744a456fd",
      "tree": "95a5ef5d34e4f524daf2672904f7bbe7a4c79058",
      "parents": [
        "f868a1f21d788b379efd46b64d4f33ec4d262e98"
      ],
      "author": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 14:35:00 2025 -0800"
      },
      "committer": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 14:35:00 2025 -0800"
      },
      "message": "Add basic files for an ASF/GitHub project."
    },
    {
      "commit": "f868a1f21d788b379efd46b64d4f33ec4d262e98",
      "tree": "941de084098eda0b795fb062636c79aa2e67b25a",
      "parents": [],
      "author": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 13:54:40 2025 -0800"
      },
      "committer": {
        "name": "Lee Rhodes",
        "email": "leerho@gmail.com",
        "time": "Wed Dec 10 13:54:40 2025 -0800"
      },
      "message": "Commit README.md\n"
    }
  ]
}
