{"_id":"triviumdb","_rev":"26-ef78c4b1ce68298f229e8e255ef47696","name":"triviumdb","dist-tags":{"latest":"0.8.8"},"versions":{"0.3.0":{"name":"triviumdb","version":"0.3.0","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.3.0","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"11fe9001897f616af123eed1dd70eb783856bd66","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.3.0.tgz","fileCount":8,"integrity":"sha512-NDZjI2KsKSiqkz2+qQ9LqFDGFM9DQzUXltYoAdnCuBAHGP41VyW7bbqNh4T4WyAxj/RzJAL6aKilOVn+wCRkdw==","signatures":[{"sig":"MEYCIQDZMhN5jJNHLHLA3IXOCn5LjNOsX7+UjhBIL0/HqhcLaAIhAKlPIMwGyUV68ge2DdpC1Kg8XoZLAdfaMUNhHA0kqGTj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3728749},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"e62cac4087198df798e82cd5d4465873d9b0cd6d","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.3.0_1774535473613_0.4870043261366759","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"triviumdb","version":"0.3.1","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.3.1","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"6528904597ee7a3f1409be1691890a6dc0fdf7a5","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.3.1.tgz","fileCount":8,"integrity":"sha512-U3Uqb/pnFXDB9DahDeuL0D3l19S16w2i5HUdCN3OQV72inZtzy7WbVnTDiFAPuBXynJt07hde3L2BupYojZJKg==","signatures":[{"sig":"MEQCIA/+IsJ1O3Ato4TrEsxRm9twhS7VTHgR7UPkoJSTBT7GAiBy4y9zTvNX1qEp2DIeg1HtFJ86Wp4dOCGeJY7bqmiQ9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3729298},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"942012f7a57e63799d94e1c6bc5ce3d575c22f3e","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.3.1_1774538033983_0.0021881181423100138","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"triviumdb","version":"0.4.1","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.4.1","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"15085a71c44ef5af487e5a5eb454d526f529952e","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.4.1.tgz","fileCount":8,"integrity":"sha512-fv+AgT7QfLevoVGZGKp/QzhKr1Sx2bRjb3Sqy0z/XzU2VKB5Zy1+/AwuCLj81G/a8Goneeveg3I7QprnxWme1g==","signatures":[{"sig":"MEUCIQDfdEh15zdReHpRMClVRXHqWO805I9A0WCp86d7efl4nAIgE1+CCZv7b1XeKWXAg2dBCd7UblT7f7tRqFO9VDO+KU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4192063},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"9b08cd966e7d305642256eee23333205a601315a","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.4.1_1774617035982_0.2557446426086727","host":"s3://npm-registry-packages-npm-production"}},"0.4.41":{"name":"triviumdb","version":"0.4.41","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.4.41","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"4afa31a6946cc3e9f353d361e94abff84ddb9f8c","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.4.41.tgz","fileCount":8,"integrity":"sha512-2onLIrmVxB+Vfjbk5c939dovkP6SKXJnrdQ8ICz2DHdFA9iYW9XBQUvxcz+vRSk/iRdLUDr1ypYb9dV82xi8PQ==","signatures":[{"sig":"MEUCIBma04pwjPYSkaEzsY9SAhhlxyfA9QGwPkC+UB7DL8htAiEAzrPEvt4tNyBoKX3rQRT/cJwKvh+uhXiBkXp5jY67+2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5486667},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"1b29b2e75c437f7f9c7826718ba7d7c0e00ff573","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.4.41_1774793781268_0.231605960519903","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"triviumdb","version":"0.4.6","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.4.6","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"e81eb1146ac453faaaba22448d181af5226c5d70","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.4.6.tgz","fileCount":8,"integrity":"sha512-QnRyH2o23Q49fM5H0/12cj7KEPR2waUo8qWrUOhpD9rNywHV5s5V5MELAHsanXrzA/0yHx8iMr4RQjpE7EeDfQ==","signatures":[{"sig":"MEYCIQCJjurD+M3IdwOctsELpq+oLhwmbN8gRx9bVyR6W7tfewIhAJbwmo4R3xapGrgXAwo2KEKuUpptmIdT+ysg8xh2nPEj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5514276},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"244c3be7524285aed24737ac14e88bbb37ea8b54","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.4.6_1774848631244_0.8661746055649693","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"triviumdb","version":"0.4.8","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.4.8","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"45d6b8f4425d4d38b894640c9eb8afc5017bbd03","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.4.8.tgz","fileCount":8,"integrity":"sha512-EA5sfaOdXhoGVyHwJkERGSBR5620yvaoBTRWoC5qpOrDmuI9YIjxLn0HC04KFlTUueFOhjnjCjJvbzHJ8NsTeA==","signatures":[{"sig":"MEYCIQDdGDbGWVhXJHOpwP5Es9Wmt51LPjsqCkDlL6c1baVxLAIhANGkxglTyAq5uLdQ/qB0GTs5NRm1bJj2ybPoTI2b9Cn8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5816883},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"2f6129e5d5efa69af9d6b0fd80da228bacf06fbe","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.4.8_1774869282543_0.188905260105396","host":"s3://npm-registry-packages-npm-production"}},"0.4.82":{"name":"triviumdb","version":"0.4.82","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.4.82","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"50ab86955ea71e90cc34b64c0cda5d8abffead17","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.4.82.tgz","fileCount":8,"integrity":"sha512-VXaQWg9rLRsPPalLUp2Wo0w9sogGyiHvoRYlS7veu+EKJUYGOrs2IX2/ZQXnXvKM1xQ8MqdC8qxEq5pCgzfTkQ==","signatures":[{"sig":"MEUCIQDIXCx43uWkKpefC9KsZUheiO+CQiRHI7YSm4UhD2oW/wIgcGZ4ef4w3je+uULggdU3V1GuWqxYL+gQYXhPuYhKaCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5858508},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"1473ffe53fcd7a0fbe6c9afc993769e7d5f3d22c","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.4.82_1774887679489_0.5607741072900088","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"triviumdb","version":"0.5.0","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.5.0","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"b3ab95d4d4c635da9337c1a0b2e7c539ca65dbb7","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.5.0.tgz","fileCount":8,"integrity":"sha512-Hoac9RtUpyyAJbzS+pqaS4xd7EvYm0NI0zP3Behtb9lrV4WMMzrU6V1Z1pufTQ282SaecXT6bQrkNiQ5biGkiA==","signatures":[{"sig":"MEYCIQCeGU7R9w1eiyGxNDbe162vlwSMeXX9O1Fy+lYCprWGMgIhAJLCG6snS4kpLnci6OozVo/ANCQlZgsHXusEM0w++q7v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5669169},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"1a45bb1dd8c5d8ea2b57fa1133c60c9d873abf72","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.5.0_1775671422448_0.7361211998035175","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"triviumdb","version":"0.5.1","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.5.1","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"108cd90ca4ee1a370529175a4cabaa1f2910ea13","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.5.1.tgz","fileCount":8,"integrity":"sha512-G0a9O9dgtSAIpDk/TP6F+CzUboJavUUoMeSV8odfGAHdoqHfvbkboa/P7Nuuy67uA1wYJ+eGKQZoZRfY8BTW9Q==","signatures":[{"sig":"MEUCIB8WX4j5nCVDXhIbucJm9xF14kKKxEIgRKGQ/iEaSw5JAiEA+QNE4gLxDDKkFAwgzFp1zs4jWtlJLyEyFpK6r4GmdhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5899121},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"7c3f0e4b4fd9a67177cd40611ee74de06a28e44a","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.5.1_1776633153305_0.3431179581938548","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"triviumdb","version":"0.6.0","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.6.0","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"7c4e7e82ec8060d894acf49e70508a8c3feb2e40","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.6.0.tgz","fileCount":10,"integrity":"sha512-gMBrAtfmJTbnRvBW6uJ/hEXLsOwA+T9gIWB0VaoxZQuq6ZCjKrRyPmzEd4O2IhR2UiQ887mUo0j0JlzKBm0a5Q==","signatures":[{"sig":"MEYCIQDuVypwdQ5gw/Ab3HWFg1HlVOiUt4TpifS9/Puou7SZWAIhALKaZP/qZyuW46PGxUUtQexHoEnEMRUVmgsFe4CZp4hL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12076008},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"a24c9dc9d3ce15a95b9cfbbf86104b01beed0d90","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.6.0_1777365713649_0.6172524388414184","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"triviumdb","version":"0.7.0","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.0","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"feebe25b9497414b504d8d36e0940490e9e82c48","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.0.tgz","fileCount":10,"integrity":"sha512-qoJ/Jvv+RZ08GfMe8qIB86oXSesHhwdwkQ7GPPKv2nj07AqTAhBJiw7NlwoHP9VJWW/kYZvTi957dyIhvaFViQ==","signatures":[{"sig":"MEUCIHOOC0tQq+344JAsFDhqyf6JmzRxTqAZJrWRaEPdjwMvAiEAjLSK9Weq20MPdPwrRjEhu3igUmdPtyHEQpvYw2kmwiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12814865},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"92170e3ee3f0642d4ae39469b4d7f955d4fd0a59","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.0_1777738840425_0.3000925246068544","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"triviumdb","version":"0.7.1","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.1","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"737a2bf26bd631a0a037815b2af03a61152518c1","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.1.tgz","fileCount":10,"integrity":"sha512-PjKQptYiaTNAsSWn4xRqXcdO4qV1SvknZ0QpSs+HnnQEoiug4y0yb3wAnHOsC4rxink26Lb0lgV8At7JpsSaLA==","signatures":[{"sig":"MEYCIQCnoLQVvsrlidKeOYdsY5Yz69l1mNeNXGKZXUpdkHVmswIhALi+setMihkgPpZeewmFV9lpUDhMOaSJD09TJctuqdoc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12962610},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"2f037d571a560c37b639aa6aed22608066465c90","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.1_1778657005206_0.150628047774525","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"triviumdb","version":"0.7.2","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.2","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"c6c7093f3d90895e29704bcc8d423e0dc6e80eb1","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.2.tgz","fileCount":10,"integrity":"sha512-Vtp60gizdokw2jdXMRmpqmCOcvJ133tvQPYR470jJLz6NQ4M2zkivNoQwS0yAjImG1QH42O6BTNKd4nZCJUPjw==","signatures":[{"sig":"MEUCIQCjAJSHbghMqu+PhVIypJlAl5bYE9nWq5XAD5BpmCot6AIgXNbW/jP4QNpgDrW8oMTUdg0NGlzdyIW/MgxHYcfzepc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13395796},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"6554ea733de3741d39d35b6edabedeaa353640ab","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.2_1785490743581_0.17336335204736297","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"triviumdb","version":"0.7.3","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.3","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"d907ccf5ce2ea2dc49843d1afd595c4627d011b6","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.3.tgz","fileCount":10,"integrity":"sha512-b03ZuFrlzskRG+zV3nKWXcpSs/BURTpWc4G3ZKuqSKoFtQOJjPZTLHF8RQAi9IAUk7RlYas7Fea3odLtO8zvTg==","signatures":[{"sig":"MEUCIHunE8LryxgGq1NwWUK+98Xstw3QO8XloDQ7mEIinQc7AiEAl7ENKznmT2tb9jUY56EXncwSXvDby0ZwPJF9GTc1MZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13700872},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"25550a5abab6a7876a657bd47a5ec42bb52aa19f","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.3_1785861396259_0.8643141553101483","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"triviumdb","version":"0.7.4","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.4","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"9eec237b03d64a02501449805057935fc05c262b","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.4.tgz","fileCount":10,"integrity":"sha512-+tLzrBN5nM+61+uLy1+WMhbam/AwTANT/uN/VkULE9HDbENGyluT9hxn7YxqRaSyyvdqolzvRya733+gP9l+PA==","signatures":[{"sig":"MEYCIQC8zHye5qp80YjP8qs7N1YFZfvVuADspI9eJej7EZ07TQIhANVj5e12LYJXU5EmMm14NT3h2gdpuco6Vm45Hactzm+Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14053290},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"3d173b48eac3ca029bd8a5943f1215caf400c228","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.4_1786830513952_0.9999346114876004","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"triviumdb","version":"0.7.5","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.5","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"8fbaa5e07d46c9ca4566fb92a84e238addc918d1","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.5.tgz","fileCount":10,"integrity":"sha512-ikYsf6mHFdqJd0MARldxbTiDnzXyeOEnOpbMwGiJge+s2Qj1UNZxm4kwNd4ztcA8bgVTAZPQnMe7Cn71WJX86w==","signatures":[{"sig":"MEQCIB/3nqOgrxYN+D31kwCTKN1gv6qTCEqu3lUJ+TRrrHJ4AiBkuyXj+lJZYI3bED+zj0EvXiVgtAM2nZIBWvFAJ58uZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFjrEXhv7PNisPlrH+eVuZQRJo3hn2JQRcG1JADWm61EAiBZCpXM2+Uaki9+RXNuria+mBqzZNiaoDCkY1Ze2aQ1Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15954228},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"67817657c60f67d4a8d03753953cec8df666c8ae","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.5_1787313567726_0.7534970660881595","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"triviumdb","version":"0.7.6","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.7.6","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"0a282c4f76c9fbd9c8b5dd4dae499cfa300b1949","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.7.6.tgz","fileCount":10,"integrity":"sha512-iuAMJTMRM5ikLdDi3ecZ7TjD25AvJnUW4S0GFn3iKykPiC6qhM7CRXB8gWtM7CcstSIjODwBDY9ivkI8fGuozw==","signatures":[{"sig":"MEQCIHh1kCJ8udMdQtj7QFgQqnfDZEOn4ThWrUR9sA88RElYAiAV3ArIwiKqTaNikc/KJzm5PcAQb4F3OQW348DwUGecnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG05azkJgxZhLjXsmc8lWeaaZi4i9bHZ6a2rEETFnly7AiEAnZOlJNhnasK22pwDD5Z8Gl6+OCBG6lIcbHtGA6lg2RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16869481},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"ff3b69110a967244f03e03a19893a053a8a84586","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.7.6_1787413910603_0.7143148700755309","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"triviumdb","version":"0.8.0","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.0","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"62626674014246eb3991bb472abb2f42dd52a025","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.0.tgz","fileCount":10,"integrity":"sha512-m/W5wUfYqpqkqvlqGl9hEUaV8CIKi3Lgt/FrRt/yxl/gq/wydLSkwHFqHWProfURMjSm15+LmOIkG4POvTUsaA==","signatures":[{"sig":"MEUCIQDGf/PHaD5xb6MbA7M2tPnQtQYJs5FSeydzRlHN8C7z/AIgWq6iWzz8X26vtKGojV7+bGFL8lhdpcfYujw8KmSlrgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICK1aYstvUSQNJWGrpZ0gvtKSMpqNo/3gdxQ+b6eYPOoAiBrfTp0/li+4aySLei1ktLtQFEpWtK2Kblffnps17uOcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17486203},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"cdbcc35cf5268d3fe73802d8169ed45ac17af726","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.0_1787664439378_0.6727173581765253","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"triviumdb","version":"0.8.1","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.1","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"f365baaebbbc3117ef0abdee7e6f0eb87ed43822","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.1.tgz","fileCount":10,"integrity":"sha512-1mlehGADGOgAZmh+QX/IAh02HrA1FckM/whKfVjIKenfs+0cDKsLuWsv/6CPObITYa00b+ugAyPtXZUY/rHNkA==","signatures":[{"sig":"MEUCIQDjDfSrkdmzgr9zVLmhw8Ju5bP4HcQBfE1iYxJ8HmLTAgIgXwA0AfLxJkHeA0KE8YrFNuQY3e8h2AR5qy9CPMGiiEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD/XwBPKk0fVDHrflL7qMP+D7PI8HcI8DmQRB6zX8z1qQIhANQ24iMqPcMg7+HmkVFW7bGvxKnQVPpptPHVaxMihN+N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17640505},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"e8823878a0513d0f4342356522cc21361db80899","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node_lifecycle.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.1_1787732052323_0.5664083774080777","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"triviumdb","version":"0.8.2","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.2","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"97e253d485a5947e079583be207d0c5a84be0e29","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.2.tgz","fileCount":10,"integrity":"sha512-9M4YWLU88QGL2zIazOsh/wQOkP8d27unhLaYwPfAFC8po7THj21sd12+PYutDji3pBYh8TCYkQHDi1IXfpsU9A==","signatures":[{"sig":"MEUCIQDzxdas9D5kKpZH26IidSl0rket8YYBQ+lzh/yTZBYFOwIgG0IIeFzEXpXzKvZ3fVUHfpC4FoKcPqRhjgb58PwGXIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBQCV8rkpZVakZxH3nh4VtNocbkgjOOYVAFAGAQCTAbVAiAMUhUFIAajBJnN0eaT9GvoI1m9y6TqDQvI0Z0ga5DESw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18840911},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"e1201af53aaf4ca8bed666c2d60424c260b1992a","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node_lifecycle.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.2_1787803533294_0.6787268801706647","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"triviumdb","version":"0.8.3","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.3","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"11979db8f2a3f9cc614eedb1746942d6a6281ecb","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.3.tgz","fileCount":10,"integrity":"sha512-x499m0V2BR75T7B5/AK4tp4IC9XRKr7jaYRxiwPwCscibdIG46ZJJ+Wo24bkhuYdmQh5O4OSfqM6edhmWfxHgQ==","signatures":[{"sig":"MEUCIQCYd4v3+l85kyMOek327KkcOU4snislRuQdqv1OpPeHNAIgEuqjPuByUWW3S3wX/gcckst7sDm1O/CKtDNf3WKOoHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF9ahVLqd6H/Qjnen2OqiP+mMxNP+vlI33hlKE/tuStNAiA54uqVou6RDtqNAVAWvJLYJOXSBiWP8ocZlU5+OkK+Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31446436},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"3d7c34eca2fb48f6175ee53ddc6788bcd3529d09","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node_lifecycle.js","test:public-api":"node tests/node_public_api.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.3_1788182063785_0.44554118863348835","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"triviumdb","version":"0.8.4","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.4","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"f5b817e7b75399d8d713dc7a93e9047a78baa308","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.4.tgz","fileCount":10,"integrity":"sha512-WkyFRoiTgmyZxdXGu6Q03oO7oEI0tR3msst0V3awnS1cbWduh1RdodiQrZU5DPMMBPkTEfspfIlXBCoE9TCOGw==","signatures":[{"sig":"MEUCICEOtWroIFtQc4+fB860qaDKPZjwzRJAG1SY2aWvheCxAiEA7Zx/ZJjSa5e1FJzNFbqSs+q20Kk2kirM63qSEIl9cHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC6caXyr6pA+2ds1CS+kzJ1S83rBiAWaxH5PiB9Oul68QIhAIDfLk/r5ATN12xJ/4TJ76mn4SeGeeKyGq2WaFUE0gcI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32577512},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"3c53bf82b6a232ca1a8b98d0c0fbcc8f28bf5b15","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node/lifecycle.js","test:public-api":"node tests/node/public_api.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.4_1788280709226_0.5676779124767817","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"triviumdb","version":"0.8.5","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.5","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"c21374914a0e556ca336d34655169ce591a84198","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.5.tgz","fileCount":10,"integrity":"sha512-qofTMI5Y8J8dbbJmV5oTozl3t9JCn2VZx6Ka7NZQqluPI4cgna84VgSqBPdK3jz4kNTpfS5El5R5wjKFV+jOAg==","signatures":[{"sig":"MEUCIEDVVRl8Z9yMdK9l3uMkNCeruKaOL3mV2i7tYXQX67ARAiEAxuWx/FXsdu2Mu8ool7gGz5ewOmnrEPtBmv/AUjzkzP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAEXsYr8ver1XZq7/okWopL/DhSnBx6Jt3y+r+oNr8SWAiEA2vQPwaGmWrHrGa/0Vf9EUt8nMvzo5IZzODRFV4Tvkms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32704143},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"406a948b44d535efae1ef755367b2ee074b9cc12","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node/lifecycle.js","test:public-api":"node tests/node/public_api.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.5_1788324277820_0.5398427763459819","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"triviumdb","version":"0.8.6","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.6","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"bf9b81e25ed6260dfd4ce2938b2855c46ad245e5","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.6.tgz","fileCount":10,"integrity":"sha512-Q5oZnSEFZSOPW+9NYyzdyr+E0k23RVoken2OBfQo5znLoTEVMYxugFkO+L4+XiNsIswx6tvyHRhcOtOb8/4a7w==","signatures":[{"sig":"MEUCIDa+D1kFb90bRr+jfPQ7Xm4glv2uAo6pmCW4Ypt7MOPtAiEAoYYZ7bDwdUDRz4xvM6K9CX+RFMT7i0K5LhCd73F3ogM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCNKBROooM/KBofQDisTflMUu5Uswg/OUM93GxonVgtsgIhAIRomNkJ2Cj+1LC0z0rNT9ZwN5NgnTUwFEv+Jk1XW1Ar","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36666630},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"2b840d0a05142f91e57d46bf30ebbde143440fa4","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node/lifecycle.js","test:public-api":"node tests/node/public_api.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.6_1788620194047_0.7996845038240887","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"triviumdb","version":"0.8.7","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"author":{"name":"YoKONCy"},"license":"Apache-2.0","_id":"triviumdb@0.8.7","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"homepage":"https://github.com/YoKONCy/TriviumDB#readme","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"c2daa05f1f25bab796d83b9f15dd48c9795cdb0c","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.7.tgz","fileCount":10,"integrity":"sha512-hlI3SeZSw+RWOc3z2eqF/Eq5MX0gZO3po6UMh7QFdLf+wmsAWfeXwlKHb3cYaOnrwT5EdBuUIOzVRcT4D3FYiw==","signatures":[{"sig":"MEQCIGUzkpBKm+0pL5oyLlTVCncI2IROu72yg929FTvzb3wjAiA4Qs/5Ek1hmx3DYBJWIDfzMehzDQheIXQoON7FhRwJkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDaVlhD8XuyecklCXTLBwG8iokloj03MZchgsZr/s9TYwIga5mHwrQsWjXqntwJl6+2+ENlVrh0WCf4BejAZ828rQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36914065},"main":"index.js","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","gitHead":"7beb3237d0b14fcf6715b29aad3d44b7d8b1dc83","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node/lifecycle.js","test:public-api":"node tests/node/public_api.js"},"_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/triviumdb_0.8.7_1788979588037_0.8672737736003997","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"_id":"triviumdb@0.8.8","bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"dist":{"shasum":"ff04cd2e28026b3d53ada601d9458a3585922e7c","tarball":"https://registry.npmjs.org/triviumdb/-/triviumdb-0.8.8.tgz","fileCount":10,"integrity":"sha512-zYXws1W5rsUzg/rW+sUZg7B751fqolqwlWXEXEmSEYtJrN1ti1Uj54Kemm96szDln440ZK0JOCb80ZBP6uQKfw==","signatures":[{"sig":"MEQCIBobUgTp01fo1nQuU9RJuuqR3a7NB8+AdZtPg/0fbyjSAiAR9eEBNw4E8YiSwdFPTUznWWNxvC3mce2XIJ3Z4qNMsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBEc8+P7dHHiqbhy6BWJz50EZvvV0q1t2rqYbfQbdnkHAiEApN6KUV8RUMKPt0RDkjQVdd+dVVHj6FYPhckPYjoYu7o="}],"unpackedSize":36911329},"main":"index.js","name":"triviumdb","napi":{"binaryName":"triviumdb"},"types":"triviumdb.d.ts","author":{"name":"YoKONCy"},"gitHead":"f4bdfe35e9a3b7c0587da798886ce29380976cfe","license":"Apache-2.0","scripts":{"build":"napi build --platform --release --features nodejs","build:debug":"napi build --platform --features nodejs","prepublishOnly":"napi build --platform --release --features nodejs","test:lifecycle":"node tests/node/lifecycle.js","test:public-api":"node tests/node/public_api.js"},"version":"0.8.8","_npmUser":{"name":"yokoncy","email":"2752026184@qq.com"},"homepage":"https://github.com/YoKONCy/TriviumDB#readme","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native embedded database: Vector + Graph + Relational in one file","directories":{},"maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@napi-rs/cli":"^3.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/triviumdb_0.8.8_1789053240999_0.5270661985352505"}}},"time":{"created":"2026-03-26T14:31:13.612Z","modified":"2026-09-10T15:14:01.480Z","0.3.0":"2026-03-26T14:31:13.905Z","0.3.1":"2026-03-26T15:13:54.187Z","0.4.1":"2026-03-27T13:10:36.253Z","0.4.41":"2026-03-29T14:16:21.524Z","0.4.6":"2026-03-30T05:30:31.469Z","0.4.8":"2026-03-30T11:14:42.907Z","0.4.82":"2026-03-30T16:21:19.738Z","0.5.0":"2026-04-08T18:03:42.701Z","0.5.1":"2026-04-19T21:12:33.514Z","0.6.0":"2026-04-28T08:41:54.058Z","0.7.0":"2026-05-02T16:20:40.744Z","0.7.1":"2026-05-13T07:23:25.773Z","0.7.2":"2026-07-31T09:39:03.807Z","0.7.3":"2026-08-04T16:36:36.546Z","0.7.4":"2026-08-15T21:48:34.226Z","0.7.5":"2026-08-21T11:59:28.067Z","0.7.6":"2026-08-22T15:51:50.864Z","0.8.0":"2026-08-25T13:27:19.567Z","0.8.1":"2026-08-26T08:14:12.564Z","0.8.2":"2026-08-27T04:05:33.484Z","0.8.3":"2026-08-31T13:14:24.018Z","0.8.4":"2026-09-01T16:38:29.586Z","0.8.5":"2026-09-02T04:44:38.100Z","0.8.6":"2026-09-05T14:56:34.281Z","0.8.7":"2026-09-09T18:46:28.332Z","0.8.8":"2026-09-10T15:14:01.246Z"},"bugs":{"url":"https://github.com/YoKONCy/TriviumDB/issues"},"author":{"name":"YoKONCy"},"license":"Apache-2.0","homepage":"https://github.com/YoKONCy/TriviumDB#readme","keywords":["database","vector","graph","embedding","ai","sqlite","rust"],"repository":{"url":"git+https://github.com/YoKONCy/TriviumDB.git","type":"git"},"description":"AI-native embedded database: Vector + Graph + Relational in one file","maintainers":[{"name":"yokoncy","email":"2752026184@qq.com"}],"readme":"![TriviumDB Banner](banner.jpg)\n\n<br/><br/>\n\n<div align=\"center\">\n\n<!-- 动态打字效果 Slogan -->\n<a href=\"https://github.com/YoKONCy/TriviumDB\">\n  <img src=\"https://readme-typing-svg.demolab.com?font=Noto+Serif+SC&weight=600&size=24&duration=4000&pause=1000&color=1E90FF&center=true&vCenter=true&multiline=true&repeat=false&width=800&height=70&lines=%E4%B8%89%E4%BD%8D%E4%B8%80%E4%BD%93%E7%9A%84+AI+%E5%8E%9F%E7%94%9F%E5%B5%8C%E5%85%A5%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93;%E5%90%91%E9%87%8F+%C3%97+%E5%9B%BE%E8%B0%B1+%C3%97+%E5%85%B3%E7%B3%BB%E5%9E%8B;%E4%B8%BA+Agent+%E6%89%93%E9%80%A0%E7%9A%84%E9%AB%98%E6%80%A7%E8%83%BD%E8%AE%B0%E5%BF%86%E6%A0%B8%E5%BF%83\" alt=\"Slogan\" />\n</a>\n\n<br/>\n\n# TriviumDB\n\n**向量 × 图谱 × 文档 —— 三位一体的 AI 原生嵌入式数据库**\n\n**Battle-tested in mission-critical, air-gapped environments.**\n\n> _Trivium_：拉丁语，意为\"三条道路的交汇\"。\n\n> “_TriviumDB_ 定位是 AI 应用领域的嵌入式数据库，旨在解决单机环境下 Agent 复杂上下文和多模态记忆编织的痛点。如果是需要支撑千万并发的高可用分布式后端，请依然选择大型集群化组件！”\n\n[![Rust](https://img.shields.io/badge/Rust-stable-orange?logo=rust)](https://www.rust-lang.org/)\n[![Python](https://img.shields.io/badge/Python-3.9+-blue?logo=python)](https://pypi.org/)\n[![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)\n[![arXiv](https://img.shields.io/badge/arXiv-2605.02171-b31b1b.svg)](https://arxiv.org/abs/2605.02171)\n\n**中文** | [**English**](README_EN.md)\n\n</div>\n\n---\n\n## 一句话介绍\n\nTriviumDB 是一个用纯 Rust 编写的**嵌入式三模数据库引擎**，将**向量检索（Vector）**、**属性图谱（Graph）**和**文档型元数据（Document）**原生融合在同一个存储内核中。Rom 模式保持单个 `*.tdb` 的便携性；默认 Mmap 模式使用受同一 generation 协议保护的分离 sidecar。\n\n我们的目标是成为 **AI 应用领域的 SQLite**：\n\n- 🧪 **自由 DIY 混合查询管线** —— TQL 把向量召回、属性索引、图扩展、图算法、路径、集合代数、迭代、聚合与重排变成可自由编排的算子，由确定性 Cascades 优化器统一规划\n- 📊 **四类持久化属性索引** —— Hash / Ordered ART / Composite ART / Roaring Bitmap，等值、范围、前缀、复合条件与低基数集合运算全部索引加速\n- 🧮 **内嵌图算法库** —— PageRank / WCC / SCC / K-Core / Articulation Points / Triangle Count / Local Clustering Coefficient / HITS / Harmonic Centrality / Node Similarity / Leiden / Betweenness / Degree / Label Propagation / SA-PPR 可在查询内直接调用，并支持 Weighted Dijkstra、Yen K-Shortest Paths、PairSet 与有界路径/集合算子\n- 🗃️ **Rom/Mmap 双引擎切换** —— Rom 支持单文件 `*.tdb` 复制走人；Mmap 将向量和已发布 Payload 分离到 `.vec` 与 generation 化 `.pld.<generation>`，按需映射\n- ❄️ **Payload 冷热分层** —— 已发布 raw JSON 留在 mmap 冷基础层，新写入/更新进入内存 delta，解析结果进入有硬字节上限的 LRU Cache；ANN/BQ/Exact 候选阶段零 Payload 解析\n- 🔗 **节点即一切** —— 每个节点天然同时拥有限定长度的稠密向量、稀疏文本倒排词频、元数据和图关系，ID 全局唯一，绝不错位\n- 🧠 **为 AI 而生** —— 可选启用“AC自动机+BM25稀疏文本”与“Dense Vector稠密向量”的**多路召回**来触发图谱扩散检索，并内置多层认知管线（FISTA / DPP / PPR）\n- 🛡️ **四层数据安全保障** —— 原子替换 + WAL日志 + 事务干跑验证（Dry-Run）+ Mmap COW 隔离，`.flush_ok` v3 将 `.tdb/.vec/.pld` 的 generation、大小和整文件 CRC 绑定为同一提交，损坏或混代输入 fail-closed\n- 🐍 **Python / Node.js 原生** —— `pip install` 或 `npm install` 后直接使用，类 MongoDB 查询语法\n- ⚡ **高性能检索** —— rayon 并行暴力搜索（小规模 100% 精确）+ 自研 SOTA 级 ANN 索引 **QuIVer**；按约 800 万向量分量工作量动态触发（2,500–10,000 节点），无需手动配置\n- 💾 **SSD 友好** —— Append-Only WAL + 后台 Compaction 线程 + QuIVer 索引独立持久化，杜绝随机写入磨损\n- 🔒 **共享只读打开** —— 多进程 Reader 共享锁并发查询已完成代际，Writer 继续保持排他锁与 WAL 安全边界\n- 🧩 **类型化访问能力** —— Rust `DatabaseReader` 在编译期隐藏写 API，`DatabaseWriter` 保留完整嵌入式写能力\n- 🔄 **不可变代际切换** —— `GenerationStore` 原子发布 current，跨进程 Reader 租约保护旧代安全回收，且不写入只读制品目录\n\n---\n\n<div align=\"center\">\n\n<!-- 动态分隔线 -->\n<img src=\"https://user-images.githubusercontent.com/73097560/115834477-dbab4500-a447-11eb-908a-139a6edaec5c.gif\" width=\"100%\">\n\n<br/>\n\n  <img src=\"https://count.getloli.com/get/@TriviumDB?theme=rule34\" alt=\"TriviumDB Count\" />\n</div>\n\n<br/>\n\n## 为什么需要 TriviumDB？\n\n### 当前 AI 应用的「三库割裂」困境\n\n几乎所有的 AI 应用（Agent / RAG / 推荐系统）都同时需要三种数据能力，但市面上没有一个引擎能同时原生支持它们：\n\n```mermaid\nflowchart TD\n    classDef old fill:#ffebee,stroke:#ff5252,stroke-width:2px,color:#000;\n    classDef new fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000;\n    classDef app fill:#e3f2fd,stroke:#2196f3,stroke-width:2px,color:#000;\n    classDef warning fill:#fff3e0,stroke:#ff9800,stroke-width:2px,color:#000;\n\n    subgraph 现状 [\"❌ 现状：三库系统缝合\"]\n        direction TB\n        App1((Agent App)):::app\n        DB1[(SQL DB<br/>文本/属性)]:::old\n        DB2[(Vector DB<br/>稠密向量)]:::old\n        DB3[(Graph DB<br/>知识图谱)]:::old\n\n        App1 <-.网路 / 跨库 JOIN.-> DB1\n        App1 <-.RPC / 独立服务.-> DB2\n        App1 <-.另一套重运行时.-> DB3\n    end\n\n    subgraph 痛点 [\"⚠️ 核心痛点\"]\n        direction TB\n        P1[1. 三组独立的 ID 空间，需手写胶水代码同步]:::warning\n        P2[2. 删一条记录要操作三个库，极易数据不一致]:::warning\n        P3[3. 先向量检索再图扩散需跨库聚合，延迟爆炸]:::warning\n        P4[4. 部署笨重，分享模型状态需打包三份独立文件]:::warning\n    end\n\n    现状 --> 痛点\n\n    subgraph 解决 [\"✨ TriviumDB：一库横扫\"]\n        direction TB\n        App2((Agent App)):::app\n        TV[(TriviumDB<br/>单一引擎 / 单一文件 / 单一 ID 空间)]:::new\n\n        App2 ==`insert()` 向量+文本+元数据+图关系原子写入==> TV\n        TV ==`search_hybrid()` 双路混合归一锚定+图谱扩散一次返回==> App2\n        TV -.`flush()` Mmap零拷贝极速热启动.-> TV\n    end\n\n    痛点 --> 解决\n```\n\n### 一个具体的例子\n\n假设你在做一个 **AI 对话记忆系统**，用户说了一句「我昨天和小红去了咖啡馆」：\n\n| 步骤         | 传统三库方案                 | TriviumDB                          |\n| ------------ | ---------------------------- | ---------------------------------- |\n| ① 存语义向量 | 调 Qdrant API 写入 embedding | `db.insert(vec, payload)` 一步完成 |\n| ② 存数据     | 调 SQLite 写入时间、场景     | ↑ 同一步，payload 里就是 JSON      |\n| ③ 存关系     | 调 Neo4j: 用户→地点→人物     | `db.link(user, cafe, \"went_to\")`   |\n| ④ 后续召回   | 3 次跨库查询 + 手写合并      | `db.search(vec, expand_depth=2)`   |\n| ⑤ 迁移数据   | 导出 3 份 + 写转换脚本       | Rom 复制 `memory.tdb`；Mmap 复制同代 `.tdb/.vec/.pld/.flush_ok` |\n\n### 适用场景\n\n| 场景                     | 怎么用 TriviumDB                                                                                      |\n| ------------------------ | ----------------------------------------------------------------------------------------------------- |\n| 🤖 **AI Agent 长期记忆** | 每条对话存为节点（embedding + 原文 + 时间戳），人物/地点/事件之间建边，召回时先向量匹配再沿关系链扩散 |\n| 🎮 **游戏 NPC 认知引擎** | NPC 观察到的事件存为带向量的节点，NPC 之间的关系用图谱表达，对话时检索相关记忆自动生成回应            |\n| 📚 **个人知识库**        | Markdown 笔记切片后存入，概念之间手动或自动连边，语义搜索 + 知识图谱导航双模式浏览                    |\n| 🔬 **小型推荐系统**      | 用户和物品各为节点，交互行为存为带权边，混合检索实现「相似用户喜欢的 + 你的社交圈在看的」             |\n| 🧬 **生物信息学**        | 基因/蛋白质序列的 embedding + 互作关系网络，一库搜到相似序列并自动追溯代谢通路                        |\n\n---\n\n## 快速上手\n\n### 安装\n\n> 💡 TriviumDB 核心使用 Rust 编写，但我们已经在云端为您提前交叉编译了所有平台的二进制，**无需在本地安装任何编译环境即可秒速安装！**\n>\n> **Linux ARM64 / 鲲鹏支持：** TriviumDB 支持 Linux AArch64，包含 ARM NEON 优化、ARM64 CI、Python manylinux ARM64 wheel 和 Node.js ARM64 addon 构建链路，可运行于基于 Linux AArch64 的鲲鹏服务器系统。\n\n### 🐍 Python 用户\n\n推荐使用超快的 [uv](https://github.com/astral-sh/uv) （只需毫秒级）：\n\n```bash\nuv pip install triviumdb\n```\n\n或者使用传统 pip：\n\n```bash\npip install triviumdb\n```\n\n### 🌐 Node.js / 前端用户\n\n跨平台包已自带 `*.node` 预编译拓展，并含有完整的 TypeScript 补全：\n\n```bash\nnpm install triviumdb\n# 或者\npnpm add triviumdb\n```\n\n### 🦀 Rust 原生用户\n\n直接把我们当成 Library 依赖：\n\n```bash\ncargo add triviumdb\n```\n\n> 🧪 **尝鲜：HTTP 服务端版（nightly）** —— TriviumDB 的正式产品形态始终是**嵌入式数据库**（进程内 Library，即装即用，无需部署）。仓库中的 `triviumdb-server` 提供了一个可选的 HTTP 壳（多客户端并发读写、OCC、流式 NDJSON 等），目前处于 **nightly 预览状态**，仅供尝鲜和跟踪演进方向，协议随时可能变更，请勿用于生产。详见 [Server 说明（nightly）](docs/server.md)；一切 API 与用法说明仍以嵌入式版本为准。\n\n### 30 秒入门\n\n```python\nimport triviumdb\n\nwith triviumdb.TriviumDB(\"memory.tdb\", dim=3) as db:\n    id1 = db.insert([0.12, -0.45, 0.78], {\"text\": \"小明喜欢吃苹果\"})\n    id2 = db.insert([0.08, -0.52, 0.81], {\"text\": \"小红送了小明一箱苹果\"})\n    db.link(id1, id2, label=\"caused_by\", weight=0.95)\n\n    results = db.search([0.10, -0.48, 0.80], top_k=5, expand_depth=2, min_score=0.6)\n    for hit in results:\n        print(f\"[{hit.id}] score={hit.score:.3f} | {hit.payload}\")\n```\n\n批量 ANN 查询由 Rust 共享线程池并行执行；Python 整批释放 GIL，Node.js 返回 Promise 且不阻塞事件循环。同一路径只需打开一个数据库实例：\n\n```python\nbatch_results = db.search_batch(\n    [[0.10, -0.48, 0.80], [0.72, 0.11, -0.35]],\n    top_k=10,\n    parallelism=0,\n)\n```\n\n```javascript\nconst batchResults = await db.searchBatch(queryVectors, 10, 0, 0.0)\n```\n\n`parallelism=0` 表示自动选择并发度，最大允许值为 64；结果外层顺序严格对应输入查询。批量 API 仅支持无状态查询，不允许 fatigue 语义。\n\n> 📖 完整 API 参考、高级用法和 Rust 示例请查看 **[API 参考文档](docs/api-reference.md)**。\n\n---\n\n## 一次存储，多种查询\n\nTriviumDB 中的一个节点可以同时拥有**向量、JSON 文档、稀疏文本和图关系**。这些数据共享同一个 NodeId、事务、WAL 与生命周期，因此无需在向量库、文档库和图库之间同步副本。同一份数据写入一次，即可按业务问题选择不同的查询路径。\n\n### TQL：自由 DIY 的统一查询语言\n\n**TQL（Trivium Query Language）** 不只是把三种查询语法拼在一起，而是一条**可自由编排的三模执行管线**：每个 `WITH` 阶段产出命名 NodeSet，向量、BM25/AC 文本召回、属性索引、图扩展、图算法、FISTA、DPP、NMF、路径与集合代数都可按业务语义自由串联，最后由 Cascades 优化器在预算内选择物理计划：\n\n```sql\n-- 文档查询：按 JSON 字段过滤（命中属性索引则跳过全表扫描）\nFIND {type: \"paper\", year: {$gte: 2024}} RETURN * LIMIT 10\n\n-- 图查询：边可绑定为一等值并返回真实方向、标签、权重和 metadata\nMATCH (author)-[relation:wrote]->(paper)\nWHERE author.name == \"Alice\"\nRETURN paper, relation\n\n-- 向量锚定后，沿入边与出边做确定性结构扩展\nSEARCH VECTOR [0.12, -0.45, 0.78] TOP 5\nEXPAND BOTH [:cites|related*1..2]\nRETURN *\n\n-- GraphFirst：先由图模式限定合法候选，再在候选集内精确向量排名\nMATCH (paper)-[:belongs_to]->(topic)\nWHERE topic.name == \"Database\"\nRANK paper BY VECTOR [0.12, -0.45, 0.78] TOP 10\nRETURN paper\n\n-- 🧪 自由 DIY：向量种子 → 图扩展 → 图算法打分 → 相似度过滤 → 重排\nSEARCH VECTOR [0.12, -0.45, 0.78] TOP 100 AS seed\nWITH seed\nEXPAND seed [:cites*1..2] AS related\nWITH related\npagerank related AS scored\nWITH scored\nWHERE similarity(scored) > 0.5\nRETURN scored, similarity(scored) AS sim\nORDER BY sim DESC LIMIT 10\n\n-- 🧠 文本锚定 → 参数化 SA-PPR → DPP 多样化\nTEXT HYBRID \"vector database\" TOP 100 K1 1.2 B 0.75 AC_WEIGHT 1 AS text_seed\nWITH text_seed\nSA_PPR_CONFIG text_seed DEPTH 3 ALPHA 0.15 MAX_EDGES 64 MIN_WEIGHT 0 AS expanded\nWITH expanded\nDIVERSIFY expanded TOP 10 QUALITY_WEIGHT 1 AS diverse\nWITH diverse\nRETURN diverse, graph_score(diverse) AS relevance, diversity_score(diverse) AS diversity\n\n-- 🛰️ 路径查询：从语义锚点出发的有界最短路径\nSEARCH VECTOR [1, 0] TOP 1 AS seed\nWITH seed\nSHORTEST_PATHS seed TO [42] LABEL cites AS route\nWITH route\nRETURN path(route) AS nodes, path_length(route) AS hops\n```\n\n一条查询内还能使用 `TEXT BM25/AC/HYBRID` 做稀疏召回，`RESIDUAL` 做 FISTA 残差召回，`DIVERSIFY` 做 DPP 多样化，`TOPICS` 做有界 NMF 主题分配，`SA_PPR_CONFIG` 控制扩散参数；也可使用 `union` / `intersect` / `except` 做多路候选集合运算、`iterate` 做定点迭代扩散、`COUNT/SUM/AVG/MIN/MAX/COLLECT` 做聚合。`text_score()`、`residual_score()`、`diversity_score()`、`topic()` 与 `topic_score()` 均是一等表达式。`EXPLAIN` 会暴露 Cascades 选出的物理算子、预计行数、临时字节与预算切片。\n\n`search_advanced()` 不会被 TQL 取代：它仍通过 `SearchConfig` 自由启停文本混合、FISTA、SA-PPR、DPP 与疲劳不应期，并按官方固定顺序执行；TQL 则复用同一底层算法，让高级用户自由安排无状态算子的顺序。\n\n```python\n# Prepared TQL：同一管线安全地重复绑定业务参数\nprepared = db.prepare_tql('FIND {kind: \"note\"} RETURN $bonus + 1 AS score')\nprint(prepared.parameter_names())          # ['bonus']\nrows = db.execute_prepared_tql(prepared, {\"bonus\": 4})\n```\n\nRust / Python / Node.js 三语言共享同一套 TQL、Prepared、四类属性索引与一等查询值；HTTP Server 另提供有界邻域子图、方向化边分页、批量节点读取和带逐跳边信息的路径端点。详细语法参见 **[TQL 查询语言参考](docs/tql-reference.md)**。\n\n### 多种图谱与混合查询\n\n| 查询方式 | 核心语义 | 典型用途 |\n| -------- | -------- | -------- |\n| **图模式匹配（MATCH）** | 按节点属性、边方向、label 和路径模式匹配结构 | 知识图谱查询、关系筛选、结构化联结 |\n| **Reachability** | 按方向、label 和深度执行 BFS，返回确定性最短路径与逐跳 label | 依赖链、权限链、数据血缘、可达性分析 |\n| **GraphFirst（MATCH + RANK）** | 先由图结构产生合法 anchor，再在候选集合内精确向量 Top-K | “只在某类关系约束内找最相似对象” |\n| **向量 + 结构扩展（SEARCH + EXPAND）** | 先用向量定位语义锚点，再沿 `OUTGOING`、`INCOMING` 或 `BOTH` 收集结构候选 | 语义检索后补充上下游上下文 |\n| **SA-PPR 图谱扩散** | 从向量/文本锚点沿带权边传播相关性能量，可启用抑制、疲劳和重启 | Agent 联想记忆、RAG 上下文扩展、推荐召回 |\n| **文本与认知算子（TQL）** | `TEXT BM25/AC/HYBRID`、`RESIDUAL`、`SA_PPR_CONFIG`、`DIVERSIFY`、`TOPICS` 可独立编排，并投影各自分数 | 自定义 RAG、Agent 记忆、主题分析与多样化检索 |\n| **混合检索（search_hybrid）** | AC 自动机 + BM25 稀疏文本 + Dense Vector 多路召回，再进行图扩散与重排 | 专有名词与语义兼顾的生产级检索 |\n| **图算法管线（WITH + 算子）** | `pagerank` / `wcc` / `degree` / `leiden` / `label_propagation` / `sa_ppr` 对 NodeSet 打分，`graph_score()` 直接投影 | 影响力排序、社区发现、图谱分析 |\n| **路径查询（ALL_PATHS / SHORTEST_PATHS）** | 有界全路径与批量最短路径，支持标签序列、避让节点与路径聚合 | 血缘追踪、依赖分析、权限链 |\n| **集合代数（UNION / INTERSECT / EXCEPT）** | 多路候选 NodeSet 的确定性并 / 交 / 差 | 多路召回融合、候选收敛 |\n| **Prepared TQL** | 参数化查询，缺参 / 多参 / 非法值一律 fail-closed | 高频业务查询的安全复用 |\n\n这些能力不是互相替代的查询模式：**Reachability 回答“结构上能否到达”**，**GraphFirst 回答“结构约束内谁最相似”**，**SA-PPR 回答“哪些关联节点应获得更高相关性”**。应用可以在同一份 `.tdb` 数据上按场景自由选择，也可以通过 TQL 将文档、图和向量条件组合在一次查询中。\n\n---\n\n## 核心特性\n\n| 特性                   | 说明                                                                                                                             |\n| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| 🧪 **自由 DIY 混合查询** | TQL `WITH` 管线：向量 / BM25 / AC / 属性 / 图扩展 / FISTA / DPP / NMF / 路径 / 集合 / 聚合自由编排，确定性 Cascades 优化器 + `EXPLAIN` 成本透明 |\n| 📊 **四类属性索引**    | Hash / Ordered ART / Composite ART / Roaring Bitmap，持久化 `.pidx`，等值 / 范围 / 前缀 / 复合 / 低基数集合运算全索引加速        |\n| 🧮 **内嵌图算法库**    | PageRank / WCC / Leiden / Betweenness / Degree / Label Propagation / SA-PPR，在查询内直接调用                                    |\n| 🛰️ **路径与集合代数**  | `ALL_PATHS` / `SHORTEST_PATHS` / `UNION` / `INTERSECT` / `EXCEPT` / `ITERATE`，Prepared TQL 三语言参数化                        |\n| 🔍 **混合检索**        | 向量锚定 → Top-K → 图谱扩散（Spreading Activation）→ 最终排序                                                                    |\n| 🧠 **认知管线**        | `search_advanced()` 提供组件可开关、顺序固定的官方模板；TQL 提供 FISTA / 参数化 SA-PPR / DPP / NMF 无状态算子的自由编排，疲劳不应期仍仅属有状态 API |\n| 🔌 **Hook 扩展系统**   | 6 个管线关键阶段的自定义注入点：查询预处理 / 自定义召回 / 召回后处理 / 图扩散前 / 重排序 / 最终后处理，支持 C/C++ FFI 动态库插件 |\n| 📦 **三位一体 O(1)**   | 自动增量 O(1) FreeList 墓碑空洞复用；删节点 O(1) 反向边哈希表（本项目称 Reverse Hash Net），彻底杜绝盘面膨胀与图谱雪崩           |\n| ⚡ **QuIVer ANN 索引** | 自研 SOTA 级近似最近邻图索引：BQ 签名 + Vamana 图导航，冷热分离架构，增量 Insert/Delete/Update 无需重建                          |\n| 💾 **双模式存储**      | Mmap（大模型极速分体冷启动） / Rom（传统 SQLite 级单文件打包携带），无缝热切换                                                   |\n| 🛡️ **四层灾备防御**    | 预写日志(WAL) + 写入原子替换 + 事务预检干跑(Dry-Run) + OS 内存写时复制隔离                                                       |\n| 🔄 **零开销事务**      | `begin_tx()` 验证前置架构，中途报错绝不污染内存，实现真正的零代价原子回滚；QuIVer 索引事务安全（分离时间线架构）                 |\n| 🔎 **高级过滤**        | 类 MongoDB 语法：`$eq/$ne/$gt/$lt/$in/$and/$or` + 行级布隆特征阵列（Parallel Bit-Tag Array）硬件级加速                           |\n| 📝 **图谱查询**        | 内置类 Cypher 查询引擎：`MATCH (a)-[:knows]->(b) WHERE b.age > 18 RETURN b`                                                      |\n| 🐍 **Python 原生**     | PyO3 绑定，`pip install` 后直接 `import triviumdb`                                                                               |\n| 🌐 **Node.js 原生**    | napi-rs 绑定，`npm install` 后直接 `require('triviumdb')`                                                                        |\n\n> 📖 深入了解架构设计和技术细节请查看 **[支持特性详解](docs/features.md)**。\n\n---\n\n## 向量索引策略：QuIVer\n\n**QuIVer**（**Qu**antized **I**ndexed **Ve**ctor **R**etrieval）是 TriviumDB 自研的 SOTA 级近似最近邻（ANN）图索引，融合 **BQ 二进制量化**与 **Vamana 图导航**，在保持极高召回率的同时实现数量级的检索加速。\n\n> 📄 **学术论文**: [QuIVer: Rethinking ANN Graph Topology via Training-Free Binary Quantization](https://arxiv.org/abs/2605.02171)\n>\n> 🔬 **实验复现**: 完整的数据集准备、基准测试和复现指南请参阅 **[README_QUIVER.md](README_QUIVER.md)**\n>\n> 在 12 个百万级数据集（384-d 至 3072-d）上验证，QuIVer 以 \\<1.3 GB 热内存实现 ≥88% Recall@10 @ 13-41K QPS，多线程吞吐量超 DiskANN Rust 2.5-3.3×、hnswlib 3.6-4.7×、FAISS HNSW 3.8-4.9×。\n\n> ⚠️ **维度建议：强烈建议数据库向量维度不超过 3072。** TriviumDB 的通用存储与精确 BruteForce 检索允许更高维度，但 QuIVer 的 BQ 签名安全上限是 3072 维。超过该维度时引擎不会自动构建 QuIVer，检索会稳定回退到 BruteForce；手动构建 QuIVer 会返回明确错误。高维数据库仍可使用，但无法获得 QuIVer ANN 加速，内存和计算开销也会显著增加。\n\nTriviumDB 采用**智能自适应双引擎**向量索引。自动 QuIVer 阈值按 `ceil(8,000,000 / dim)` 计算，并限制在 2,500–10,000 节点；低维数据保留更久的精确 BruteForce，高维数据更早切换 ANN：\n\n| 阶段 | 引擎 | 激活条件 | 特点 |\n|---|---|---|---|\n| **小规模热区** | BruteForce | 节点数低于当前维度的动态阈值，或 QuIVer 未就绪 | 100% 精确召回，rayon 多核 |\n| **大规模冷区** | **QuIVer** | 维度 ≤ 3072 且达到动态阈值（2,500–10,000 节点） | BQ 签名 + Vamana 图导航 + f32 精排，独立持久化 |\n\n例如 384/768 维仍在 10,000 节点触发，1024 维约 7,813，1536 维约 5,209，3072 维约 2,605。\n\n### QuIVer 的核心创新\n\n**冷热分离架构**：QuIVer 内部仅存储 BQ 签名（hot）和图拓扑，f32 原始向量留在 MemTable 中（cold），精排时按需读取，**内存占用减半**。\n\n> Mmap 消除的是全量载入和重复拷贝，并不会消除磁盘 I/O。冷向量页未驻留时仍会产生 Major Page Fault；当随机查询工作集超过物理内存时，吞吐和尾延迟取决于 PageCache 命中率、存储设备随机读能力及系统回收压力。QuIVer 热索引位于匿名堆内存，并非文件 PageCache；当前内存预算统计也不包含 OS PageCache。\n\n**增量图维护**：与传统 HNSW 不同，QuIVer 支持真正的增量操作：\n\n- ✅ **增量 Insert**：新节点实时插入图中，无需全量重建\n- ✅ **增量 Delete**：Tombstone 软删除，25% 退化阈值触发重建\n- ✅ **增量 Update**：soft_delete + incremental_insert，原子替换\n- ✅ **事务安全**：分离时间线架构，事务 commit 不可失败，QuIVer 同步无需回滚\n\n**独立持久化**：QuIVer 索引以 `.tdb.quiver` 独立文件存储，POD 数据 memcpy 极速序列化，重启后零开销恢复。\n\n---\n\n## 研究前线：TSNG 三信号导航\n\n**TSNG（Tri-Signal Navigation Graph）** 是 TriviumDB 的混合检索研究线：在一个查询里同时声明**向量信号、属性信号与图信号**，用 `TsngWeights` 控制三路权重，得到统一打分的候选集——\"既语义相似、又满足过滤条件、还在图结构上可达\"。\n\n```rust\nuse triviumdb::tsng::{TsngQuery, TsngWeights, GraphSignalQuery};\n\nlet query = TsngQuery {\n    vector: &query_embedding,\n    payload_filter: Some(&Filter::eq(\"kind\", \"note\")),   // 属性信号\n    graph: Some(GraphSignalQuery {                        // 图信号\n        anchor_id: seed_id,\n        direction: ReachabilityDirection::Outgoing,\n        labels: Some(vec![\"cites\".into()]),\n        min_edge_weight: 0.2,\n        max_hops: 2,\n    }),\n    top_k: 10,\n    weights: TsngWeights { vector: 1.0, property: 1.0, graph: 0.5 },\n    budget: Default::default(),\n};\n\nlet result = db.search_tsng(&query, config)?;   // 每个命中都带三路信号分解\n```\n\n研究价值在于**可度量的检索质量**：\n\n- **多条执行策略**：`search_tsng_post_filter` / `search_tsng_graph_union` / `search_tsng_industrial`，六条混合搜索 AccessPath 按预算与统计选择\n- **信号可解释**：`TsngHit` 返回 `vector_similarity` / `property_signal` / `graph_signal` 分解，不是黑盒分数\n- **内置 Ground Truth**：`tsng_ground_truth` 生成精确答案，配套 Recall@K / NDCG@K 质量指标，论文级实验可直接复现\n- **有界预算**：候选数、访问节点、扫描边与前沿大小四维预算全部 fail-closed\n\n> ⚠️ TSNG 当前定位为**实验性研究轨道**（experimental research track）：生产默认路径仍是 TQL 与 `search*` 家族；TSNG API 可能随研究结论调整，不承诺语义冻结。\n\n```toml\n# 启用 Python 绑定\nmaturin develop --features python\n```\n\n---\n\n## 项目结构\n\n```\nTriviumDB/\n├── src/\n│   ├── lib.rs              # 库入口 + 公开 API\n│   ├── database/           # 数据库核心模块（v0.7.0 模块化重构）\n│   │   ├── mod.rs          # Database 结构体、CRUD、生命周期管理\n│   │   ├── config.rs       # StorageMode / Config / SearchConfig 配置\n│   │   ├── pipeline.rs     # 混合检索管线（L0-L9 + 6 个 Hook 注入点）\n│   │   └── transaction.rs  # 事务系统（TxOp / Transaction / WAL 回放 + QuIVer 分离时间线）\n│   ├── hook.rs             # 🔌 Hook 扩展系统（SearchHook trait + FFI 动态库加载）\n│   ├── cognitive.rs        # 认知算子（FISTA / DPP / NMF）\n│   ├── node.rs             # Node / Edge / SearchHit 数据结构\n│   ├── vector.rs           # VectorType Trait（f32 / f16 / u64）\n│   ├── filter.rs           # 高级过滤引擎 ($gt/$lt/$in/$and/$or)\n│   ├── tsng.rs             # 🔬 TSNG 三信号混合检索研究线（六条 AccessPath + Ground Truth）\n│   ├── error.rs            # 统一错误类型（含 ApiMigrationRequired / Sidecar 版本门禁）\n│   ├── query/              # 🧪 TQL 查询子系统（v0.8 查询引擎重构）\n│   │   ├── tql_lexer.rs    #   词法分析（Token / 参数 / 位置诊断）\n│   │   ├── tql_parser.rs   #   递归下降解析 + 作用域与语义校验\n│   │   ├── tql_ast.rs      #   查询 / 管线 / 表达式 / 聚合 / Path AST\n│   │   ├── cascades.rs     #   Cascades 优化器（Memo + 成本 + 预算切片）\n│   │   ├── pipeline.rs     #   NodeSet 物理算子（图算法 / 路径 / 集合 / 迭代）\n│   │   ├── tql_executor.rs #   一等值执行、聚合与结果投影\n│   │   └── tql_prepared.rs #   Prepared TQL 严格参数绑定\n│   ├── storage/\n│   │   ├── memtable.rs     # 内存工作区 (SoA 向量池 + HashMap + QuIVer 集成)\n│   │   ├── wal.rs          # Write-Ahead Log（崩溃恢复）\n│   │   ├── file_format.rs  # .tdb 单文件读写（含 BQ Metadata + QuIVer 持久化）\n│   │   ├── vec_pool.rs     # 分层向量池（mmap 基础层 + delta 增量层）\n│   │   └── compaction.rs   # 后台 Compaction 守护线程（含 BQ 自动重建）\n│   ├── index/\n│   │   ├── brute_force.rs  # rayon 并行暴力精确搜索\n│   │   ├── bq.rs           # BQ 二进制量化签名（QuIVer 基础层）\n│   │   ├── quiver.rs       # 🚀 QuIVer ANN 索引（BQ + Vamana 图导航 + 冷热分离）\n│   │   ├── property.rs     # 📊 四类属性索引（Hash / Ordered ART / Composite ART / Roaring Bitmap）\n│   │   ├── text.rs         # 📝 TextIndex（Aho-Corasick + BM25 2-Gram 持久化）\n│   │   └── graph_blocks.rs # 🔗 业务图块索引 .gidx（出边块 / 入边目录 / Label 目录）\n│   ├── graph/\n│   │   ├── traversal.rs    # SA-PPR 有限深度图扩散\n│   │   ├── reachability.rs # 确定性可达性（方向 / 标签 / 深度 / 预算）\n│   │   ├── pathfinding.rs  # 有界 ALL_PATHS / 批量最短路径\n│   │   └── leiden.rs       # Leiden 社区发现算法\n│   └── bindings/           # FFI 绑定层（公共逻辑已提取至核心模块）\n│       ├── mod.rs          # 统一入口（feature-gated）\n│       ├── python.rs       # PyO3 绑定（含 Hook 管理接口）\n│       └── nodejs.rs       # napi-rs 绑定（含 Hook 管理接口）\n├── crates/\n│   ├── triviumdb-cli/      # 🖥️ CLI & TUI 工具（命令 `tdb`）\n│   │   ├── Cargo.toml\n│   │   ├── README.md\n│   │   └── src/\n│   │       ├── main.rs             # clap 参数解析 + 模式分发\n│   │       ├── db_handle.rs        # DbHandle dtype 动态分发（dispatch! 宏）\n│   │       ├── formatter.rs        # table / json / csv 输出格式化\n│   │       ├── tql_highlight.rs    # TQL 语法高亮（REPL ANSI + TUI Span）\n│   │       ├── config.rs           # ~/.triviumdb.toml 配置加载\n│   │       ├── commands/           # 非交互子命令（info/exec/export/import/repair/compact）\n│   │       ├── repl/               # REPL 模式（rustyline + Tab 补全 + 多行输入）\n│   │       └── tui/                # TUI 模式（ratatui + crossterm 全屏可视化）\n│   └── triviumdb-server/   # 🌐 HTTP Server（并发读、Writer Actor、OCC、Group Commit）\n├── benches/                # 性能基准套件（查询 / 索引与图基线 / 内存压力 / TSNG / Cohere1M）\n├── tests/\n│   ├── unit/               # 单元测试（集中管理，~311 用例）\n│   ├── proptest_core.rs    # 属性测试（~2650 随机用例）\n│   ├── proptest_query.rs   # TQL 解析器属性测试\n│   ├── public_api_alignment.rs  # 三语言公共 API 对齐门禁\n│   └── ...                 # 集成测试（并发/恢复/安全/压力/管线差分/图算法等）\n├── docs/\n│   ├── api-reference.md    # 完整 API 参考文档\n│   ├── features.md         # 支持特性详解\n│   ├── best-practices.md   # 最佳实践指南\n│   ├── hook-guide.md       # Hook 开发指南（C++ FFI / Rust Hook）\n│   ├── tql-reference.md    # TQL 查询语言参考\n│   ├── testing.md          # 测试实践说明\n│   └── security.md         # 安全设计说明\n├── Cargo.toml\n├── pyproject.toml          # Maturin 构建配置\n└── README.md\n```\n\n---\n\n## 路线图\n\n### v0.1 — 核心引擎 MVP ✅\n\n- [x] Node / Edge 数据结构 + 内存 MemTable + BruteForce 向量检索\n- [x] 单文件 `.tdb` 序列化 + `insert` / `link` / `search` / `delete` API\n\n### v0.2 — 持久化与生态 ✅\n\n- [x] WAL 崩溃恢复 + 后台 Compaction + mmap 零拷贝\n- [x] PyO3 Python 绑定 + rayon 并行扫描 + 高级 Payload 过滤\n\n### v0.3 — 性能与跨平台 ✅\n\n- [x] Node.js 绑定 (napi-rs)\n- [x] AVX2 + FMA SIMD 加速余弦相似度\n\n### v0.4 — 认知管线 + BQ 索引 ✅\n\n- [x] Mmap / Rom 双引擎 + 验证前置事务 (Dry-Run)\n- [x] 认知检索管线（FISTA / PPR / DPP）\n- [x] BQ 二进制量化索引（自动激活 + 自动重建）\n\n### v0.5 — 千万级架构 + Hook 系统 ✅\n\n- [x] Parallel Bit-Tag Array 硬件级布隆过滤 + Zero-Ghost 墓碑复用\n- [x] O(1) Reverse Hash Net 反向边查找\n- [x] 检索管线 6 阶段 Hook 注入 + FFI 动态库插件\n- [x] CI/CD 管线 + ASan + LibFuzzer 模糊测试\n\n### v0.6 — TQL 查询语言 + 跨架构适配 ✅\n\n- [x] TQL 统一查询语言（MATCH 图遍历 / FIND 文档过滤 / SEARCH 向量检索）\n- [x] TQL DML 写操作（CREATE / SET / DELETE / DETACH DELETE）\n- [x] 属性二级索引（O(1) 倒排查找 + TQL 自动加速）\n- [x] ARM NEON SIMD 适配 + 跨平台 CI（Apple Silicon / Linux ARM64 via QEMU）\n- [x] Python / Node.js 绑定 API 补全（tql_mut / create_index / get_payload 等）\n\n### v0.7 — QuIVer SOTA ANN 索引 ✅\n\n- [x] 自研 **QuIVer** 近似最近邻图索引（BQ 签名 + Vamana 图导航 + 冷热分离）\n- [x] 增量图维护：Insert / Delete(Tombstone) / Update 全部增量，无需全量重建\n- [x] QuIVer 独立持久化（`.tdb.quiver` 文件，POD memcpy 极速序列化）\n- [x] 事务安全的分离时间线架构（Phase 5 QuIVer Sync）\n- [x] CLI 工具 `triviumdb-cli`（命令 `tdb`）：非交互命令 + REPL（Tab 补全 / 语法高亮 / 多行输入）+ 配置文件\n- [x] 数据库可视化工具：终端 TUI（`tdb ui`，图谱力导向布局 / k-hop 展开 / 向量搜索 Playground）\n\n### v0.8 — 自由 DIY 混合查询与工程化时代 ✅（当前）\n\n- [x] **统一 TQL 查询系统**：`FIND` / `MATCH` / `SEARCH`、`WITH` 可组合管线、Prepared 参数、表达式/聚合/路径/集合代数、科学计数法和原子 `SET VECTOR`\n- [x] **有界 Cascades 与图计算**：确定性、统计感知的物理计划，内嵌 PageRank / WCC / Leiden / Betweenness / Degree / Label Propagation / SA-PPR，并通过 `EXPLAIN ANALYZE` 暴露估算与实际指标\n- [x] **完整持久化索引体系**：Hash / Ordered ART / Composite ART / Bitmap、业务图块、AC+BM25 与 QuIVer sidecar；动态 QuIVer 阈值按向量工作量在 2,500–10,000 节点间自动选择\n- [x] **生产级存储与安全保证**：`.flush_ok` v3 绑定 `.tdb/.vec/.pld` generation、大小与 CRC；无生产可达 panic、ReadOnly/Immutable 字节级零写、WAL/代际原子发布、查询/遍历/内存/Payload 预算 fail-closed 与真实小型故障注入\n- [x] **Payload 冷热分离一期**：generation 化 `.pld` mmap raw base、内存 delta/tombstone、有界 LRU Parsed Cache、Late Materialization、ColdPayloadScan 与跨端 cache 配置\n- [x] **Rust/Python/Node 能力对齐**：一等 TQL 值、四类属性索引、Prepared TQL、六阶段 Hook 与 FFI ABI v2，清理静默历史兼容并提供稳定迁移错误\n- [x] **工具与 Server nightly**：CLI/REPL/TUI，以及隔离于 Embedded 依赖树的 HTTP Server，提供 Writer Actor、Group Commit、OCC/幂等、健康监管、索引管理、NDJSON 导入、二进制向量和跨平台发布\n\n---\n\n## 与现有方案对比\n\n| 维度             | SQLite       | pgvector    | Kùzu        | Qdrant      | Neo4j       | SurrealDB    | LanceDB     | **TriviumDB**                   |\n| ---------------- | ------------ | ----------- | ----------- | ----------- | ----------- | ------------ | ----------- | ------------------------------- |\n| 并发多写模型     | ⚠️ 单写多读（WAL） | ✅ MVCC 多写 | ⚠️ 单进程单写 | ✅ 服务端并发写 | ✅ 并发事务写 | ✅ 分布式多写节点 | ✅ MVCC+OCC 并发写 | ⚠️ 单写多读 + 共享只读/不可换代际 |\n| 文档型数据       | ✅ SQL       | ✅ SQL+JSONB | ⚠️ 需预定义表 Schema | ❌ 仅过滤 | ⚠️ 属性键值 | ✅ SurrealQL | ✅ Arrow Schema | ✅ 自由 JSON + `$op` 全家桶 |\n| 向量检索         | ⚠️ 需外挂    | ✅ HNSW/IVFFlat | ✅ HNSW 扩展 | ✅ HNSW | ✅ 原生 HNSW | ✅ MTree/HNSW | ✅ IVF+量化 | ✅ 自研 QuIVer (BQ+Vamana) |\n| 图谱遍历         | ⚠️ JOIN 模拟 | ⚠️ 递归 CTE | ✅ Cypher   | ❌ 无图原语 | ✅ Cypher   | ✅ 图查询    | ❌ 无图原语 | ✅ 原生邻接表 + `.gidx`         |\n| 嵌入式便携存储 | ✅ 单文件    | ❌ PG 服务  | ✅ 单文件    | ⚠️ 内存/目录嵌入式 | ❌ JVM 服务 | ✅ 可切换    | ⚠️ 目录嵌入式 | ✅ Rom 单 `.tdb` / Mmap 同代文件集 |\n| 混合查询自由度   | ❌           | ⚠️ SQL JOIN 组合 | ⚠️ 过滤式向量搜索 | ❌ 单模向量 | ⚠️ SEARCH 过滤式 | ⚠️ 手动实现 | ⚠️ 向量+FTS+SQL | ✅ WITH 管线自由编排 |\n| 属性索引体系     | ✅ B+Tree    | ✅ B/GIN/BRIN 全家桶 | ⚠️ 表 Schema 内索引 | ⚠️ Payload 索引 | ⚠️ Label+属性 Range/Text | ⚠️ Unique/全文/ANN 为主 | ⚠️ 标量索引 | ✅ Hash/ART/复合/Bitmap 四类 |\n| 查询优化器       | ✅           | ✅          | ✅          | ❌ API 调用式 | ✅          | ⚠️ EXPLAIN 有限 | ⚠️ DataFusion SQL | ✅ Cascades + EXPLAIN           |\n| 图算法库         | ❌           | ⚠️ 外部扩展  | ⚠️ algo 扩展 | ❌          | ⚠️ GDS 插件 | ❌           | ❌          | ✅ 7 种查询内直调               |\n| 路径 / 集合查询  | ⚠️ 递归 CTE  | ⚠️ 递归 CTE | ✅ `*SHORTEST` + UNION | ❌ | ✅ shortestPath | ⚠️ 无路径原语 | ❌          | ✅ ALL/SHORTEST_PATHS + 集合    |\n| 零外部依赖       | ✅           | ✅          | ✅          | ✅          | ❌ JVM      | ❌ RocksDB   | ⚠️ Arrow/对象存储生态 | ✅ 纯 Rust                      |\n\n> **并发多写模型**是 TriviumDB 当前明确的短板：Writer 通过进程级排他文件锁独占写路径，多读并发依赖 ReadOnly 共享锁，跨进程无锁读依赖 Immutable 不可换代际。这与 SQLite（WAL 单写）和原版 Kùzu（单进程写）同为嵌入式架构的常见取舍；需要高并发多写的场景，应选择服务端（Qdrant/Neo4j/pgvector）或分布式（SurrealDB）/MVCC 表格式（LanceDB）方案。\n>\n> 对比基于各家 2026-08 公开文档与官方仓库：pgvector 为 PostgreSQL C 扩展（v0.8.2，HNSW/IVFFlat + 迭代扫描过滤）；Qdrant 支持嵌入式本地模式（`QdrantClient(\":memory:\")` 或 `path=`，存储为目录而非单文件），并有 Rust/Python 的 Qdrant Edge 嵌入库；LanceDB 为 Rust 内核嵌入式多模态 Lakehouse（向量+FTS+SQL，无图遍历）；Kùzu 主仓库已于 2025-10 归档（团队加入 Apple，0.11.3 为最终版本），其 Cypher 支持 `*SHORTEST` 递归路径与 algo 扩展；Neo4j 自 5.13 起提供原生向量索引（Lucene HNSW，Cypher 25 `SEARCH` 子句支持索引内过滤）；SurrealDB 向量索引用 MTree/HNSW；SQLite 可用 sqlite-vec 扩展与递归 CTE 模拟部分能力。**\"混合查询自由度\"** 指能否把向量、属性过滤、图遍历、图算法、路径与集合运算在同一查询中作为可编排算子交给统一优化器——这正是 TQL `WITH` 管线 + Cascades 的定位。\n\n---\n\n## 设计哲学\n\n1. **三合一原子性**：一个 `u64` ID 同时映射到向量、Payload、边表。插入原子、删除原子，永不出现 ID 不一致。\n2. **嵌入式优先**：没有 Server、没有端口、没有配置文件。`import triviumdb` 就是全部。\n3. **全自动性能路由**：按约 800 万向量分量工作量在 2,500–10,000 节点间动态选择阈值；低于阈值使用精确 BruteForce，达到阈值后自动构建并切换 QuIVer。\n4. **可预测的性能**：顺序 I/O only（WAL 追加写 + Compaction 顺序重写），SSD 寿命安全。\n5. **索引即加速层**：QuIVer 是可丢弃的派生数据（`.tdb.quiver` 独立文件），丢失后首次查询时自动重建，不依赖也不污染 WAL 真相源。\n6. **Rust 安全边界**：所有公开 API 均为安全代码。内部仅存在少量经过严格审计的 `unsafe`（主要分布在 mmap 零拷贝与 SIMD 硬件加速），且附有明确的 SAFETY 安全契约注释。\n7. **安全至上**：全引擎零 `panic!` / 零 `unreachable!()` 策略。数千个测试用例（单元 / 属性 / 模糊 / 变异 / 三语言公共 API 对齐），CI 强制 80% 行覆盖率门禁（实测值以 coverage artifact 为准），涵盖 EMI 比特翻转、WAL 截断恢复、事务预检失败等极端场景，确保在断网、断电、内存污染等恶劣条件下数据库引擎绝不崩溃。\n\n---\n\n## 📖 文档\n\n| 文档                                          | 说明                                                   |\n| --------------------------------------------- | ------------------------------------------------------ |\n| **[API 完整参考](docs/api-reference.md)**     | 全部 Python / Node.js / Rust API、参数说明、返回值类型 |\n| **[支持特性详解](docs/features.md)**          | 架构设计、存储引擎、索引策略、崩溃恢复等技术细节       |\n| **[最佳实践](docs/best-practices.md)**        | 数据建模范式、性能调优、Hook 使用指南、避坑指南        |\n| **[TQL 查询语言参考](docs/tql-reference.md)** | MATCH / FIND / SEARCH 语法、DML 写操作、属性索引       |\n| **[Hook 开发指南](docs/hook-guide.md)**       | C/C++ FFI 插件编写、Rust Hook 实现、管线诊断实战       |\n| **[测试实践](docs/testing.md)**               | 四层测试体系、属性测试、变异测试、覆盖率度量与 CI 建议 |\n| **[安全设计说明](docs/security.md)**          | 并发安全、数据完整性、unsafe 审计、FFI 安全边界        |\n| **[CLI 工具指南](crates/triviumdb-cli/README.md)** | `tdb` 命令行工具安装、用法、REPL/TUI 模式、配置文件   |\n| **[Server 说明（nightly）](docs/server.md)**   | HTTP 服务端版预览：并发模型、OCC、幂等、指标与限制    |\n\n---\n\n## 学术引用说明\n\nTriviumDB 的认知检索管线借鉴并实现了以下学术成果（均为本项目基于原始论文的独立 Rust 实现，非调用第三方库）：\n\n1. **FISTA** (Fast Iterative Shrinkage-Thresholding Algorithm)：Beck & Teboulle, 2009, _\"A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems\"_, SIAM J. Imaging Sciences\n2. **DPP** (Determinantal Point Process)：Kulesza & Taskar, 2012, _\"Determinantal Point Processes for Machine Learning\"_, Foundations and Trends in Machine Learning\n3. **SA-PPR**（有限深度 Spreading Activation with Personalized Restart）：结合个性化重启思想与扩散激活；本实现不迭代至 PageRank 收敛\n4. **Spreading Activation**：灵感来源于 Anderson, 1983, _\"The Architecture of Cognition\"_ 中的扩散激活理论\n5. **BM25**：Robertson & Zaragoza, 2009, _\"The Probabilistic Relevance Framework: BM25 and Beyond\"_\n6. **Vamana Graph**：Subramanya et al., 2019, _\"DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node\"_, NeurIPS 2019（QuIVer 的图导航层基于 Vamana 剪枝策略的独立 Rust 实现）\n7. **Binary Quantization**：Gong et al., 2012, _\"Iterative Quantization: A Procrustean Approach to Learning Binary Codes\"_, CVPR（QuIVer 的 BQ 签名层基于符号位量化思想）\n\n以下为本项目自研的数据结构与算法命名：\n\n- **QuIVer**（Quantized Indexed Vector Retrieval）：自研 SOTA 级 ANN 图索引，融合 BQ 二进制量化与 Vamana 图导航，冷热分离架构\n- **TSNG**（Tri-Signal Navigation Graph）：三信号（向量 / 属性 / 图）联合导航的混合检索研究线，提供多 AccessPath 执行策略与 exact ground truth 评测\n- **Parallel Bit-Tag Array**（行级布隆特征阵列）：基于布隆过滤器思想的 JSON 快速过滤机制\n- **Reverse Hash Net**（双向哈希边表）：O(1) 反向边查找的哈希索引结构\n- **Zero-Ghost Node**：基于 FreeList 的墓碑复用策略，消除删除节点的幽灵引用\n- **边特异性强化 / 不应期机制**：自研的图扩散能量调控策略\n- **分离时间线架构**（Separated Timeline）：QuIVer 事务安全策略，利用 Infallible Apply 特性避免图索引回滚\n\n### 📝 引用 QuIVer\n\n如果您在研究中使用了 QuIVer 或 TriviumDB，请引用我们的论文：\n\n```bibtex\n@article{quiver2026,\n  title   = {QuIVer: Rethinking ANN Graph Topology via Training-Free Binary Quantization},\n  author  = {Xiao, Wenxuan and Wang, Zhiyou and Li, Chengcheng},\n  journal = {arXiv preprint arXiv:2605.02171},\n  year    = {2026},\n  url     = {https://arxiv.org/abs/2605.02171}\n}\n```\n\n---\n\n## 许可证\n\nApache-2.0\n\n**创造者**: [YoKONCy](https://github.com/YoKONCy)\n\n---\n\n## 社区\n\n本项目已链接并认可 [LINUX DO 社区](https://linux.do/)。\n\n<br/>\n\n## 🌟 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=YoKONCy/TriviumDB&type=Date)](https://star-history.com/#YoKONCy/TriviumDB&Date)\n\n<br/>\n\n<div align=\"center\">\n  <img src=\"https://capsule-render.vercel.app/api?type=waving&color=1E90FF&height=50&section=footer\" width=\"100%\"/>\n</div>\n","readmeFilename":"README.md"}