diff --git a/0.7.4/actions-overview/index.html b/0.7.4/actions-overview/index.html index 11e021359..e74689432 100644 --- a/0.7.4/actions-overview/index.html +++ b/0.7.4/actions-overview/index.html @@ -4,7 +4,7 @@ Actions and Querying | Skytable - + diff --git a/0.7.4/actions/auth/index.html b/0.7.4/actions/auth/index.html index d1b11b11b..cc4c66775 100644 --- a/0.7.4/actions/auth/index.html +++ b/0.7.4/actions/auth/index.html @@ -4,7 +4,7 @@ AUTH | Skytable - + diff --git a/0.7.4/actions/dbsize/index.html b/0.7.4/actions/dbsize/index.html index 6607574fb..a5019e5c8 100644 --- a/0.7.4/actions/dbsize/index.html +++ b/0.7.4/actions/dbsize/index.html @@ -4,7 +4,7 @@ DBSIZE | Skytable - + diff --git a/0.7.4/actions/del/index.html b/0.7.4/actions/del/index.html index ed9a56fd3..eacda7cbf 100644 --- a/0.7.4/actions/del/index.html +++ b/0.7.4/actions/del/index.html @@ -4,7 +4,7 @@ DEL | Skytable - + diff --git a/0.7.4/actions/exists/index.html b/0.7.4/actions/exists/index.html index 7a7ac964d..5021640f4 100644 --- a/0.7.4/actions/exists/index.html +++ b/0.7.4/actions/exists/index.html @@ -4,7 +4,7 @@ EXISTS | Skytable - + diff --git a/0.7.4/actions/flushdb/index.html b/0.7.4/actions/flushdb/index.html index 27e591e92..a91c4d74d 100644 --- a/0.7.4/actions/flushdb/index.html +++ b/0.7.4/actions/flushdb/index.html @@ -4,7 +4,7 @@ FLUSHDB | Skytable - + diff --git a/0.7.4/actions/get/index.html b/0.7.4/actions/get/index.html index 6697cda54..4fbe4679b 100644 --- a/0.7.4/actions/get/index.html +++ b/0.7.4/actions/get/index.html @@ -4,7 +4,7 @@ GET | Skytable - + diff --git a/0.7.4/actions/heya/index.html b/0.7.4/actions/heya/index.html index 016d9eb6b..8e1b9f672 100644 --- a/0.7.4/actions/heya/index.html +++ b/0.7.4/actions/heya/index.html @@ -4,7 +4,7 @@ HEYA | Skytable - + diff --git a/0.7.4/actions/keylen/index.html b/0.7.4/actions/keylen/index.html index d1b6a96cd..bee98f024 100644 --- a/0.7.4/actions/keylen/index.html +++ b/0.7.4/actions/keylen/index.html @@ -4,7 +4,7 @@ KEYLEN | Skytable - + diff --git a/0.7.4/actions/lget/index.html b/0.7.4/actions/lget/index.html index 874e803d9..fd910be8c 100644 --- a/0.7.4/actions/lget/index.html +++ b/0.7.4/actions/lget/index.html @@ -4,7 +4,7 @@ LGET | Skytable - + diff --git a/0.7.4/actions/lmod/index.html b/0.7.4/actions/lmod/index.html index ebbd0e451..928028e97 100644 --- a/0.7.4/actions/lmod/index.html +++ b/0.7.4/actions/lmod/index.html @@ -4,7 +4,7 @@ LMOD | Skytable - + diff --git a/0.7.4/actions/lset/index.html b/0.7.4/actions/lset/index.html index e1f6d1c8c..4fa78d351 100644 --- a/0.7.4/actions/lset/index.html +++ b/0.7.4/actions/lset/index.html @@ -4,7 +4,7 @@ LSET | Skytable - + diff --git a/0.7.4/actions/lskeys/index.html b/0.7.4/actions/lskeys/index.html index 3d1cb9f5f..b3294735e 100644 --- a/0.7.4/actions/lskeys/index.html +++ b/0.7.4/actions/lskeys/index.html @@ -4,7 +4,7 @@ LSKEYS | Skytable - + diff --git a/0.7.4/actions/mget/index.html b/0.7.4/actions/mget/index.html index 40afdc0a8..6b42b452b 100644 --- a/0.7.4/actions/mget/index.html +++ b/0.7.4/actions/mget/index.html @@ -4,7 +4,7 @@ MGET | Skytable - + diff --git a/0.7.4/actions/mksnap/index.html b/0.7.4/actions/mksnap/index.html index 7a358768a..1f0722a9f 100644 --- a/0.7.4/actions/mksnap/index.html +++ b/0.7.4/actions/mksnap/index.html @@ -4,7 +4,7 @@ MKSNAP | Skytable - + diff --git a/0.7.4/actions/mpop/index.html b/0.7.4/actions/mpop/index.html index 9fee57125..d7b6ec7fa 100644 --- a/0.7.4/actions/mpop/index.html +++ b/0.7.4/actions/mpop/index.html @@ -4,7 +4,7 @@ MPOP | Skytable - + diff --git a/0.7.4/actions/mset/index.html b/0.7.4/actions/mset/index.html index 973fca0a1..394ab34ad 100644 --- a/0.7.4/actions/mset/index.html +++ b/0.7.4/actions/mset/index.html @@ -4,7 +4,7 @@ MSET | Skytable - + diff --git a/0.7.4/actions/mupdate/index.html b/0.7.4/actions/mupdate/index.html index 1fbe3a552..e21e1ddfb 100644 --- a/0.7.4/actions/mupdate/index.html +++ b/0.7.4/actions/mupdate/index.html @@ -4,7 +4,7 @@ MUPDATE | Skytable - + diff --git a/0.7.4/actions/pop/index.html b/0.7.4/actions/pop/index.html index d255a25f2..5d3a750d0 100644 --- a/0.7.4/actions/pop/index.html +++ b/0.7.4/actions/pop/index.html @@ -4,7 +4,7 @@ POP | Skytable - + diff --git a/0.7.4/actions/sdel/index.html b/0.7.4/actions/sdel/index.html index 3ab841251..349b197d9 100644 --- a/0.7.4/actions/sdel/index.html +++ b/0.7.4/actions/sdel/index.html @@ -4,7 +4,7 @@ SDEL | Skytable - + diff --git a/0.7.4/actions/set/index.html b/0.7.4/actions/set/index.html index 611b615f3..15a2515e9 100644 --- a/0.7.4/actions/set/index.html +++ b/0.7.4/actions/set/index.html @@ -4,7 +4,7 @@ SET | Skytable - + diff --git a/0.7.4/actions/sset/index.html b/0.7.4/actions/sset/index.html index 0df135e7b..ccf3e0a6b 100644 --- a/0.7.4/actions/sset/index.html +++ b/0.7.4/actions/sset/index.html @@ -4,7 +4,7 @@ SSET | Skytable - + diff --git a/0.7.4/actions/supdate/index.html b/0.7.4/actions/supdate/index.html index 812323520..a93fd6a34 100644 --- a/0.7.4/actions/supdate/index.html +++ b/0.7.4/actions/supdate/index.html @@ -4,7 +4,7 @@ SUPDATE | Skytable - + diff --git a/0.7.4/actions/update/index.html b/0.7.4/actions/update/index.html index 035c0ed8f..9fdbaae29 100644 --- a/0.7.4/actions/update/index.html +++ b/0.7.4/actions/update/index.html @@ -4,7 +4,7 @@ UPDATE | Skytable - + diff --git a/0.7.4/actions/uset/index.html b/0.7.4/actions/uset/index.html index bee5e7e4d..8d383310f 100644 --- a/0.7.4/actions/uset/index.html +++ b/0.7.4/actions/uset/index.html @@ -4,7 +4,7 @@ USET | Skytable - + diff --git a/0.7.4/actions/whereami/index.html b/0.7.4/actions/whereami/index.html index c5be13099..400892d8b 100644 --- a/0.7.4/actions/whereami/index.html +++ b/0.7.4/actions/whereami/index.html @@ -4,7 +4,7 @@ WHEREAMI | Skytable - + diff --git a/0.7.4/all-actions/index.html b/0.7.4/all-actions/index.html index 94ba8b6b0..3f36b5b63 100644 --- a/0.7.4/all-actions/index.html +++ b/0.7.4/all-actions/index.html @@ -4,7 +4,7 @@ Index of actions | Skytable - + diff --git a/0.7.4/auth/index.html b/0.7.4/auth/index.html index d93beb0f6..8f5cc6c55 100644 --- a/0.7.4/auth/index.html +++ b/0.7.4/auth/index.html @@ -4,7 +4,7 @@ Authentication and authorization | Skytable - + diff --git a/0.7.4/benchmarking/index.html b/0.7.4/benchmarking/index.html index 796d0b871..917a6349f 100644 --- a/0.7.4/benchmarking/index.html +++ b/0.7.4/benchmarking/index.html @@ -4,7 +4,7 @@ Benchmarking | Skytable - + diff --git a/0.7.4/building-from-source/index.html b/0.7.4/building-from-source/index.html index bc74a1de2..47fc3d46f 100644 --- a/0.7.4/building-from-source/index.html +++ b/0.7.4/building-from-source/index.html @@ -4,7 +4,7 @@ Building from source | Skytable - + diff --git a/0.7.4/clients/index.html b/0.7.4/clients/index.html index fda1b2506..4098848d2 100644 --- a/0.7.4/clients/index.html +++ b/0.7.4/clients/index.html @@ -4,7 +4,7 @@ Client drivers | Skytable - + diff --git a/0.7.4/config-cmd/index.html b/0.7.4/config-cmd/index.html index 2bbdc4cfd..4f5caa434 100644 --- a/0.7.4/config-cmd/index.html +++ b/0.7.4/config-cmd/index.html @@ -4,7 +4,7 @@ Command-line configuration | Skytable - + diff --git a/0.7.4/config-env/index.html b/0.7.4/config-env/index.html index c2757cfef..9ad926fbd 100644 --- a/0.7.4/config-env/index.html +++ b/0.7.4/config-env/index.html @@ -4,7 +4,7 @@ Environment Variables | Skytable - + diff --git a/0.7.4/config-files/index.html b/0.7.4/config-files/index.html index 0b5009081..07ea72cdb 100644 --- a/0.7.4/config-files/index.html +++ b/0.7.4/config-files/index.html @@ -4,7 +4,7 @@ Configuration Files | Skytable - + diff --git a/0.7.4/config/index.html b/0.7.4/config/index.html index 01dcbb363..6780e80e7 100644 --- a/0.7.4/config/index.html +++ b/0.7.4/config/index.html @@ -4,7 +4,7 @@ Configuration basics | Skytable - + diff --git a/0.7.4/containers/index.html b/0.7.4/containers/index.html index 0dfbe8246..4ba56f884 100644 --- a/0.7.4/containers/index.html +++ b/0.7.4/containers/index.html @@ -4,7 +4,7 @@ Containers | Skytable - + diff --git a/0.7.4/ddl/index.html b/0.7.4/ddl/index.html index 1247d1502..a64a9f442 100644 --- a/0.7.4/ddl/index.html +++ b/0.7.4/ddl/index.html @@ -4,7 +4,7 @@ DDL | Skytable - + diff --git a/0.7.4/deployment-notes/index.html b/0.7.4/deployment-notes/index.html index d0d47f25a..8bcc61ebd 100644 --- a/0.7.4/deployment-notes/index.html +++ b/0.7.4/deployment-notes/index.html @@ -4,7 +4,7 @@ Deployment notes | Skytable - + diff --git a/0.7.4/examples/index.html b/0.7.4/examples/index.html index fe020c2bd..bdb270507 100644 --- a/0.7.4/examples/index.html +++ b/0.7.4/examples/index.html @@ -4,7 +4,7 @@ Examples | Skytable - + diff --git a/0.7.4/getting-started/index.html b/0.7.4/getting-started/index.html index dd08b4ad3..486dd3db3 100644 --- a/0.7.4/getting-started/index.html +++ b/0.7.4/getting-started/index.html @@ -4,7 +4,7 @@ Getting Started | Skytable - + diff --git a/0.7.4/index.html b/0.7.4/index.html index e35bae7e9..a0cf451e7 100644 --- a/0.7.4/index.html +++ b/0.7.4/index.html @@ -4,7 +4,7 @@ Introduction | Skytable - + diff --git a/0.7.4/perf-guide/index.html b/0.7.4/perf-guide/index.html index bc9b9abd3..5ca0358a3 100644 --- a/0.7.4/perf-guide/index.html +++ b/0.7.4/perf-guide/index.html @@ -4,7 +4,7 @@ Performance Guide | Skytable - + diff --git a/0.7.4/persistence/index.html b/0.7.4/persistence/index.html index 0ac13f56e..95a85ebbf 100644 --- a/0.7.4/persistence/index.html +++ b/0.7.4/persistence/index.html @@ -4,7 +4,7 @@ Persistence | Skytable - + diff --git a/0.7.4/protocol/data-types/index.html b/0.7.4/protocol/data-types/index.html index 65b1aa91d..42e5a826f 100644 --- a/0.7.4/protocol/data-types/index.html +++ b/0.7.4/protocol/data-types/index.html @@ -4,7 +4,7 @@ Data Types | Skytable - + diff --git a/0.7.4/protocol/errors/index.html b/0.7.4/protocol/errors/index.html index e1fe304b9..e121d766a 100644 --- a/0.7.4/protocol/errors/index.html +++ b/0.7.4/protocol/errors/index.html @@ -4,7 +4,7 @@ Error Strings | Skytable - + diff --git a/0.7.4/protocol/response-codes/index.html b/0.7.4/protocol/response-codes/index.html index ab1022422..c99296f03 100644 --- a/0.7.4/protocol/response-codes/index.html +++ b/0.7.4/protocol/response-codes/index.html @@ -4,7 +4,7 @@ Response Codes | Skytable - + diff --git a/0.7.4/protocol/skyhash/index.html b/0.7.4/protocol/skyhash/index.html index 519cb2219..b47c0c902 100644 --- a/0.7.4/protocol/skyhash/index.html +++ b/0.7.4/protocol/skyhash/index.html @@ -4,7 +4,7 @@ Skyhash Protocol 1.0 | Skytable - + diff --git a/0.7.4/snapshots/index.html b/0.7.4/snapshots/index.html index a723f4f78..37e0208b0 100644 --- a/0.7.4/snapshots/index.html +++ b/0.7.4/snapshots/index.html @@ -4,7 +4,7 @@ Snapshots | Skytable - + diff --git a/0.7.4/ssl/index.html b/0.7.4/ssl/index.html index 77cbe07e3..a1f1b412b 100644 --- a/0.7.4/ssl/index.html +++ b/0.7.4/ssl/index.html @@ -4,7 +4,7 @@ TLS configuration | Skytable - + diff --git a/0.7.5/actions-overview/index.html b/0.7.5/actions-overview/index.html index 5ea64f218..c7b979d3a 100644 --- a/0.7.5/actions-overview/index.html +++ b/0.7.5/actions-overview/index.html @@ -4,7 +4,7 @@ Actions and Querying | Skytable - + diff --git a/0.7.5/actions/auth/index.html b/0.7.5/actions/auth/index.html index fe3ad5a8b..2ac67d1d5 100644 --- a/0.7.5/actions/auth/index.html +++ b/0.7.5/actions/auth/index.html @@ -4,7 +4,7 @@ AUTH | Skytable - + diff --git a/0.7.5/actions/dbsize/index.html b/0.7.5/actions/dbsize/index.html index d331c006a..9bbf10eda 100644 --- a/0.7.5/actions/dbsize/index.html +++ b/0.7.5/actions/dbsize/index.html @@ -4,7 +4,7 @@ DBSIZE | Skytable - + diff --git a/0.7.5/actions/del/index.html b/0.7.5/actions/del/index.html index e5a6545d1..76013f07d 100644 --- a/0.7.5/actions/del/index.html +++ b/0.7.5/actions/del/index.html @@ -4,7 +4,7 @@ DEL | Skytable - + diff --git a/0.7.5/actions/exists/index.html b/0.7.5/actions/exists/index.html index 527c46502..c22278d73 100644 --- a/0.7.5/actions/exists/index.html +++ b/0.7.5/actions/exists/index.html @@ -4,7 +4,7 @@ EXISTS | Skytable - + diff --git a/0.7.5/actions/flushdb/index.html b/0.7.5/actions/flushdb/index.html index c34dc37f6..f4728b517 100644 --- a/0.7.5/actions/flushdb/index.html +++ b/0.7.5/actions/flushdb/index.html @@ -4,7 +4,7 @@ FLUSHDB | Skytable - + diff --git a/0.7.5/actions/get/index.html b/0.7.5/actions/get/index.html index 4bbec3d44..3f604b602 100644 --- a/0.7.5/actions/get/index.html +++ b/0.7.5/actions/get/index.html @@ -4,7 +4,7 @@ GET | Skytable - + diff --git a/0.7.5/actions/heya/index.html b/0.7.5/actions/heya/index.html index f839688ff..85ae8a6de 100644 --- a/0.7.5/actions/heya/index.html +++ b/0.7.5/actions/heya/index.html @@ -4,7 +4,7 @@ HEYA | Skytable - + diff --git a/0.7.5/actions/keylen/index.html b/0.7.5/actions/keylen/index.html index 455644e03..7bb4211e8 100644 --- a/0.7.5/actions/keylen/index.html +++ b/0.7.5/actions/keylen/index.html @@ -4,7 +4,7 @@ KEYLEN | Skytable - + diff --git a/0.7.5/actions/lget/index.html b/0.7.5/actions/lget/index.html index 47752e073..16cf8a8e4 100644 --- a/0.7.5/actions/lget/index.html +++ b/0.7.5/actions/lget/index.html @@ -4,7 +4,7 @@ LGET | Skytable - + diff --git a/0.7.5/actions/lmod/index.html b/0.7.5/actions/lmod/index.html index 313a14819..c20e065b9 100644 --- a/0.7.5/actions/lmod/index.html +++ b/0.7.5/actions/lmod/index.html @@ -4,7 +4,7 @@ LMOD | Skytable - + diff --git a/0.7.5/actions/lset/index.html b/0.7.5/actions/lset/index.html index d57fbcad7..0ea3fa4b8 100644 --- a/0.7.5/actions/lset/index.html +++ b/0.7.5/actions/lset/index.html @@ -4,7 +4,7 @@ LSET | Skytable - + diff --git a/0.7.5/actions/lskeys/index.html b/0.7.5/actions/lskeys/index.html index c4ec37108..020583494 100644 --- a/0.7.5/actions/lskeys/index.html +++ b/0.7.5/actions/lskeys/index.html @@ -4,7 +4,7 @@ LSKEYS | Skytable - + diff --git a/0.7.5/actions/mget/index.html b/0.7.5/actions/mget/index.html index 602b341ae..ae729d85e 100644 --- a/0.7.5/actions/mget/index.html +++ b/0.7.5/actions/mget/index.html @@ -4,7 +4,7 @@ MGET | Skytable - + diff --git a/0.7.5/actions/mksnap/index.html b/0.7.5/actions/mksnap/index.html index a042eeea4..3025cf96d 100644 --- a/0.7.5/actions/mksnap/index.html +++ b/0.7.5/actions/mksnap/index.html @@ -4,7 +4,7 @@ MKSNAP | Skytable - + diff --git a/0.7.5/actions/mpop/index.html b/0.7.5/actions/mpop/index.html index 0b7e4cd62..4830b3dbd 100644 --- a/0.7.5/actions/mpop/index.html +++ b/0.7.5/actions/mpop/index.html @@ -4,7 +4,7 @@ MPOP | Skytable - + diff --git a/0.7.5/actions/mset/index.html b/0.7.5/actions/mset/index.html index c4dc257b0..f3e1bdef0 100644 --- a/0.7.5/actions/mset/index.html +++ b/0.7.5/actions/mset/index.html @@ -4,7 +4,7 @@ MSET | Skytable - + diff --git a/0.7.5/actions/mupdate/index.html b/0.7.5/actions/mupdate/index.html index 4d9976e4a..d60c5391d 100644 --- a/0.7.5/actions/mupdate/index.html +++ b/0.7.5/actions/mupdate/index.html @@ -4,7 +4,7 @@ MUPDATE | Skytable - + diff --git a/0.7.5/actions/pop/index.html b/0.7.5/actions/pop/index.html index 6777f6ca8..701ad2f5c 100644 --- a/0.7.5/actions/pop/index.html +++ b/0.7.5/actions/pop/index.html @@ -4,7 +4,7 @@ POP | Skytable - + diff --git a/0.7.5/actions/sdel/index.html b/0.7.5/actions/sdel/index.html index 3c0338638..4ea44d0aa 100644 --- a/0.7.5/actions/sdel/index.html +++ b/0.7.5/actions/sdel/index.html @@ -4,7 +4,7 @@ SDEL | Skytable - + diff --git a/0.7.5/actions/set/index.html b/0.7.5/actions/set/index.html index 83ea4986e..2be788caa 100644 --- a/0.7.5/actions/set/index.html +++ b/0.7.5/actions/set/index.html @@ -4,7 +4,7 @@ SET | Skytable - + diff --git a/0.7.5/actions/sset/index.html b/0.7.5/actions/sset/index.html index 58bbf35a8..524feca62 100644 --- a/0.7.5/actions/sset/index.html +++ b/0.7.5/actions/sset/index.html @@ -4,7 +4,7 @@ SSET | Skytable - + diff --git a/0.7.5/actions/supdate/index.html b/0.7.5/actions/supdate/index.html index 100ca4936..601b37286 100644 --- a/0.7.5/actions/supdate/index.html +++ b/0.7.5/actions/supdate/index.html @@ -4,7 +4,7 @@ SUPDATE | Skytable - + diff --git a/0.7.5/actions/sys/index.html b/0.7.5/actions/sys/index.html index 7eb358e1b..ff468678c 100644 --- a/0.7.5/actions/sys/index.html +++ b/0.7.5/actions/sys/index.html @@ -4,7 +4,7 @@ SYS | Skytable - + diff --git a/0.7.5/actions/update/index.html b/0.7.5/actions/update/index.html index e669a22d1..cfc4d3e7c 100644 --- a/0.7.5/actions/update/index.html +++ b/0.7.5/actions/update/index.html @@ -4,7 +4,7 @@ UPDATE | Skytable - + diff --git a/0.7.5/actions/uset/index.html b/0.7.5/actions/uset/index.html index d65850f22..162dd8e76 100644 --- a/0.7.5/actions/uset/index.html +++ b/0.7.5/actions/uset/index.html @@ -4,7 +4,7 @@ USET | Skytable - + diff --git a/0.7.5/actions/whereami/index.html b/0.7.5/actions/whereami/index.html index 777216930..00a9180c5 100644 --- a/0.7.5/actions/whereami/index.html +++ b/0.7.5/actions/whereami/index.html @@ -4,7 +4,7 @@ WHEREAMI | Skytable - + diff --git a/0.7.5/all-actions/index.html b/0.7.5/all-actions/index.html index f2fcf1d98..8e5125b21 100644 --- a/0.7.5/all-actions/index.html +++ b/0.7.5/all-actions/index.html @@ -4,7 +4,7 @@ Index of actions | Skytable - + diff --git a/0.7.5/auth/index.html b/0.7.5/auth/index.html index d8acb0fb6..8c7efe61c 100644 --- a/0.7.5/auth/index.html +++ b/0.7.5/auth/index.html @@ -4,7 +4,7 @@ Authentication and authorization | Skytable - + diff --git a/0.7.5/benchmarking/index.html b/0.7.5/benchmarking/index.html index 99deb2a72..aa5595d32 100644 --- a/0.7.5/benchmarking/index.html +++ b/0.7.5/benchmarking/index.html @@ -4,7 +4,7 @@ Benchmarking | Skytable - + diff --git a/0.7.5/building-from-source/index.html b/0.7.5/building-from-source/index.html index 224975b7f..cfc7d7692 100644 --- a/0.7.5/building-from-source/index.html +++ b/0.7.5/building-from-source/index.html @@ -4,7 +4,7 @@ Building from source | Skytable - + diff --git a/0.7.5/clients/index.html b/0.7.5/clients/index.html index deb2503fc..f463aee20 100644 --- a/0.7.5/clients/index.html +++ b/0.7.5/clients/index.html @@ -4,7 +4,7 @@ Client drivers | Skytable - + diff --git a/0.7.5/config-cmd/index.html b/0.7.5/config-cmd/index.html index f770dd683..1243db4f3 100644 --- a/0.7.5/config-cmd/index.html +++ b/0.7.5/config-cmd/index.html @@ -4,7 +4,7 @@ Command-line configuration | Skytable - + diff --git a/0.7.5/config-env/index.html b/0.7.5/config-env/index.html index 7839b723b..a0a502b32 100644 --- a/0.7.5/config-env/index.html +++ b/0.7.5/config-env/index.html @@ -4,7 +4,7 @@ Environment Variables | Skytable - + diff --git a/0.7.5/config-files/index.html b/0.7.5/config-files/index.html index e4b00828a..ae3db3e41 100644 --- a/0.7.5/config-files/index.html +++ b/0.7.5/config-files/index.html @@ -4,7 +4,7 @@ Configuration Files | Skytable - + diff --git a/0.7.5/config/index.html b/0.7.5/config/index.html index f1b356c4c..b4ebbf8b2 100644 --- a/0.7.5/config/index.html +++ b/0.7.5/config/index.html @@ -4,7 +4,7 @@ Configuration basics | Skytable - + diff --git a/0.7.5/containers/index.html b/0.7.5/containers/index.html index 41bb2d736..84f60d423 100644 --- a/0.7.5/containers/index.html +++ b/0.7.5/containers/index.html @@ -4,7 +4,7 @@ Containers | Skytable - + diff --git a/0.7.5/ddl/index.html b/0.7.5/ddl/index.html index d00b4509c..9f291c922 100644 --- a/0.7.5/ddl/index.html +++ b/0.7.5/ddl/index.html @@ -4,7 +4,7 @@ DDL | Skytable - + diff --git a/0.7.5/deployment-notes/index.html b/0.7.5/deployment-notes/index.html index 6927f74b2..5e4787f34 100644 --- a/0.7.5/deployment-notes/index.html +++ b/0.7.5/deployment-notes/index.html @@ -4,7 +4,7 @@ Deployment notes | Skytable - + diff --git a/0.7.5/examples/index.html b/0.7.5/examples/index.html index 6d5ea3a41..edf64fae1 100644 --- a/0.7.5/examples/index.html +++ b/0.7.5/examples/index.html @@ -4,7 +4,7 @@ Examples | Skytable - + diff --git a/0.7.5/getting-started/index.html b/0.7.5/getting-started/index.html index d4198a721..ec2eb1517 100644 --- a/0.7.5/getting-started/index.html +++ b/0.7.5/getting-started/index.html @@ -4,7 +4,7 @@ Getting Started | Skytable - + diff --git a/0.7.5/index.html b/0.7.5/index.html index c70bbbdb9..ea4f95634 100644 --- a/0.7.5/index.html +++ b/0.7.5/index.html @@ -4,7 +4,7 @@ Introduction | Skytable - + diff --git a/0.7.5/perf-guide/index.html b/0.7.5/perf-guide/index.html index a94439760..247a725cd 100644 --- a/0.7.5/perf-guide/index.html +++ b/0.7.5/perf-guide/index.html @@ -4,7 +4,7 @@ Performance Guide | Skytable - + diff --git a/0.7.5/persistence/index.html b/0.7.5/persistence/index.html index 5c484bf0f..a5aa6c405 100644 --- a/0.7.5/persistence/index.html +++ b/0.7.5/persistence/index.html @@ -4,7 +4,7 @@ Persistence | Skytable - + diff --git a/0.7.5/protocol/data-types/index.html b/0.7.5/protocol/data-types/index.html index ffa682c90..91c17053d 100644 --- a/0.7.5/protocol/data-types/index.html +++ b/0.7.5/protocol/data-types/index.html @@ -4,7 +4,7 @@ Data Types | Skytable - + diff --git a/0.7.5/protocol/errors/index.html b/0.7.5/protocol/errors/index.html index 73957266d..d9688632a 100644 --- a/0.7.5/protocol/errors/index.html +++ b/0.7.5/protocol/errors/index.html @@ -4,7 +4,7 @@ Error Strings | Skytable - + diff --git a/0.7.5/protocol/response-codes/index.html b/0.7.5/protocol/response-codes/index.html index 85e949dc7..1a647ecc7 100644 --- a/0.7.5/protocol/response-codes/index.html +++ b/0.7.5/protocol/response-codes/index.html @@ -4,7 +4,7 @@ Response Codes | Skytable - + diff --git a/0.7.5/protocol/skyhash/index.html b/0.7.5/protocol/skyhash/index.html index 8a5a3e581..051b2aac9 100644 --- a/0.7.5/protocol/skyhash/index.html +++ b/0.7.5/protocol/skyhash/index.html @@ -4,7 +4,7 @@ Skyhash Protocol 1.0 | Skytable - + diff --git a/0.7.5/snapshots/index.html b/0.7.5/snapshots/index.html index cff2bf3f4..44ba6e019 100644 --- a/0.7.5/snapshots/index.html +++ b/0.7.5/snapshots/index.html @@ -4,7 +4,7 @@ Snapshots | Skytable - + diff --git a/0.7.5/ssl/index.html b/0.7.5/ssl/index.html index 6bdb68d4f..ede16648a 100644 --- a/0.7.5/ssl/index.html +++ b/0.7.5/ssl/index.html @@ -4,7 +4,7 @@ TLS configuration | Skytable - + diff --git a/0.8.0/architecture/index.html b/0.8.0/architecture/index.html index cf6c08de9..7af509108 100644 --- a/0.8.0/architecture/index.html +++ b/0.8.0/architecture/index.html @@ -4,7 +4,7 @@ Architecture | Skytable - + diff --git a/0.8.0/benchmarking/index.html b/0.8.0/benchmarking/index.html index 0e3aa5c22..c26240678 100644 --- a/0.8.0/benchmarking/index.html +++ b/0.8.0/benchmarking/index.html @@ -4,7 +4,7 @@ Benchmarking | Skytable - + diff --git a/0.8.0/blueql/dcl/index.html b/0.8.0/blueql/dcl/index.html index 691dfbe5b..436d32d6f 100644 --- a/0.8.0/blueql/dcl/index.html +++ b/0.8.0/blueql/dcl/index.html @@ -4,7 +4,7 @@ DCL | Skytable - + diff --git a/0.8.0/blueql/ddl/index.html b/0.8.0/blueql/ddl/index.html index 7acfa854d..8776b0c3c 100644 --- a/0.8.0/blueql/ddl/index.html +++ b/0.8.0/blueql/ddl/index.html @@ -4,7 +4,7 @@ DDL | Skytable - + diff --git a/0.8.0/blueql/dml/index.html b/0.8.0/blueql/dml/index.html index 316b16822..0710a0af7 100644 --- a/0.8.0/blueql/dml/index.html +++ b/0.8.0/blueql/dml/index.html @@ -4,7 +4,7 @@ DML | Skytable - + diff --git a/0.8.0/blueql/overview/index.html b/0.8.0/blueql/overview/index.html index b67dd061e..68d90aa29 100644 --- a/0.8.0/blueql/overview/index.html +++ b/0.8.0/blueql/overview/index.html @@ -4,7 +4,7 @@ Overview | Skytable - + diff --git a/0.8.0/category/blueql/index.html b/0.8.0/category/blueql/index.html index f90604324..5a71d1a2e 100644 --- a/0.8.0/category/blueql/index.html +++ b/0.8.0/category/blueql/index.html @@ -4,7 +4,7 @@ BlueQL | Skytable - + diff --git a/0.8.0/category/system-management/index.html b/0.8.0/category/system-management/index.html index c1deaae2b..a79855b15 100644 --- a/0.8.0/category/system-management/index.html +++ b/0.8.0/category/system-management/index.html @@ -4,7 +4,7 @@ System Management | Skytable - + diff --git a/0.8.0/deployment/index.html b/0.8.0/deployment/index.html index 89dfec204..095fe3c1e 100644 --- a/0.8.0/deployment/index.html +++ b/0.8.0/deployment/index.html @@ -4,7 +4,7 @@ Deployment | Skytable - + diff --git a/0.8.0/index.html b/0.8.0/index.html index 252c7f6df..a8ecfd073 100644 --- a/0.8.0/index.html +++ b/0.8.0/index.html @@ -4,7 +4,7 @@ Introduction | Skytable - + diff --git a/0.8.0/installation/index.html b/0.8.0/installation/index.html index 302b0bfbe..ec555c5df 100644 --- a/0.8.0/installation/index.html +++ b/0.8.0/installation/index.html @@ -4,7 +4,7 @@ Installation | Skytable - + diff --git a/0.8.0/libraries/index.html b/0.8.0/libraries/index.html index d26e7b9a4..30a69011d 100644 --- a/0.8.0/libraries/index.html +++ b/0.8.0/libraries/index.html @@ -4,7 +4,7 @@ Client drivers | Skytable - + diff --git a/0.8.0/limits/index.html b/0.8.0/limits/index.html index 553faeb68..69c2a5228 100644 --- a/0.8.0/limits/index.html +++ b/0.8.0/limits/index.html @@ -4,7 +4,7 @@ Limits | Skytable - + diff --git a/0.8.0/protocol/errors/index.html b/0.8.0/protocol/errors/index.html index 085211204..b63b3a67f 100644 --- a/0.8.0/protocol/errors/index.html +++ b/0.8.0/protocol/errors/index.html @@ -4,7 +4,7 @@ Errors | Skytable - + diff --git a/0.8.0/protocol/networking/index.html b/0.8.0/protocol/networking/index.html index dfcc77e7f..9a4eb919d 100644 --- a/0.8.0/protocol/networking/index.html +++ b/0.8.0/protocol/networking/index.html @@ -4,7 +4,7 @@ Networking | Skytable - + diff --git a/0.8.0/protocol/overview/index.html b/0.8.0/protocol/overview/index.html index 3d7bb7c0a..adb4fb16f 100644 --- a/0.8.0/protocol/overview/index.html +++ b/0.8.0/protocol/overview/index.html @@ -4,7 +4,7 @@ Skyhash 2 — Protocol Overview | Skytable - + diff --git a/0.8.0/resources/migration/index.html b/0.8.0/resources/migration/index.html index 5b8598623..7004bbb0b 100644 --- a/0.8.0/resources/migration/index.html +++ b/0.8.0/resources/migration/index.html @@ -4,7 +4,7 @@ Migrating from an older release | Skytable - + diff --git a/0.8.0/resources/overview/index.html b/0.8.0/resources/overview/index.html index 362cbc612..0493707ef 100644 --- a/0.8.0/resources/overview/index.html +++ b/0.8.0/resources/overview/index.html @@ -4,7 +4,7 @@ Resources | Skytable - + diff --git a/0.8.0/system/administration/index.html b/0.8.0/system/administration/index.html index 0655f5b0f..22b8b952c 100644 --- a/0.8.0/system/administration/index.html +++ b/0.8.0/system/administration/index.html @@ -4,7 +4,7 @@ Administration | Skytable - + diff --git a/0.8.0/system/configuration/index.html b/0.8.0/system/configuration/index.html index 18a123024..7fdc95d28 100644 --- a/0.8.0/system/configuration/index.html +++ b/0.8.0/system/configuration/index.html @@ -4,7 +4,7 @@ Configuration | Skytable - + diff --git a/0.8.0/using-the-repl/index.html b/0.8.0/using-the-repl/index.html index ca5ee7ca4..cbeead04e 100644 --- a/0.8.0/using-the-repl/index.html +++ b/0.8.0/using-the-repl/index.html @@ -4,7 +4,7 @@ Using the REPL | Skytable - + diff --git a/404.html b/404.html index b76df5de9..8aff6b0f8 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Skytable - + diff --git a/architecture/index.html b/architecture/index.html index 306c1cfb4..9ba750441 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -4,7 +4,7 @@ Architecture | Skytable - + diff --git a/assets/js/5a648b40.0ef1df25.js b/assets/js/5a648b40.0ef1df25.js new file mode 100644 index 000000000..827ea14fc --- /dev/null +++ b/assets/js/5a648b40.0ef1df25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5717],{5218:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var i=s(4848),r=s(8453);const t={id:"specification",title:"Specification"},l="Skyhash 2: Specification",o={id:"protocol/specification",title:"Specification",description:"Network layer",source:"@site/docs/protocol/specification.md",sourceDirName:"protocol",slug:"/protocol/specification",permalink:"/protocol/specification",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"specification",title:"Specification"},sidebar:"docs",previous:{title:"Skyhash 2: Overview",permalink:"/protocol/"},next:{title:"Error Index",permalink:"/protocol/errors"}},c={},d=[{value:"Network layer",id:"network-layer",level:2},{value:"Exchange modes",id:"exchange-modes",level:3},{value:"Query-time exchange",id:"query-time-exchange",level:2},{value:"Client data types",id:"client-data-types",level:3},{value:"Server data types",id:"server-data-types",level:3},{value:"Simple query/response",id:"simple-queryresponse",level:3},{value:"Simple query",id:"simple-query",level:4},{value:"Simple response",id:"simple-response",level:4}];function h(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"skyhash-2-specification",children:"Skyhash 2: Specification"}),"\n",(0,i.jsx)(n.h2,{id:"network-layer",children:"Network layer"}),"\n",(0,i.jsx)(n.p,{children:"As noted earlier, Skyhash is a client/server protocol built on top of TCP, that enables communication between a Skytable database server and a Skytable client. The Skyhash protocol uses a very simple data exchange model with the following three connection stages:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Connection stage:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Client handshake"}),": The client sends a handshake packet","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The handshake contains all necessary information to successfully establish a connection"}),"\n",(0,i.jsx)(n.li,{children:"The structure of the client handshake depends on the authentication plugin in use (since authentication data has to be exchanged before the connection can be established)"}),"\n",(0,i.jsxs)(n.li,{children:["For the ",(0,i.jsx)(n.code,{children:"pwd"})," plugin the client handshake looks like this:","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"H0000\\n\\n\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["For the protocol compatibility code, ",(0,i.jsx)(n.a,{href:"/protocol/#version-matrix",children:"see the version matrix"})]}),"\n",(0,i.jsxs)(n.li,{children:["Please note that ",(0,i.jsx)(n.code,{children:"0"})," means integer value ",(0,i.jsx)(n.code,{children:"0"})," (",(0,i.jsx)(n.code,{children:"0x00"}),") and NOT the ASCII digit 0"]}),"\n",(0,i.jsxs)(n.li,{children:["Both the ",(0,i.jsx)(n.code,{children:""})," and ",(0,i.jsx)(n.code,{children:""})," are the respective lengths encoded as ASCII strings"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Server handshake"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Accepted:"})," If the server accepts the handshake information then it will respond with: ",(0,i.jsx)(n.code,{children:"H000"})," (all the numeric values are integers and NOT ASCII digits)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Rejected"}),": If the server rejects the handshake information then it will respond with ",(0,i.jsx)(n.code,{children:"H01<8-bit error code>"})," (all the numeric values are integers and NOT ASCII digits). You can find out what happened using ",(0,i.jsx)(n.a,{href:"errors",children:"the error code index"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Data exchange stage: This is where the client and server send and receive data. A client and server will spend the majority of their time in this stage."}),"\n",(0,i.jsx)(n.li,{children:"Termination stage: Once the connection is no longer needed, the client (or in exceptional cases, the server) will close the connection using a simple TCP FIN."}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{title:"Is my client compatible?",type:"tip",children:(0,i.jsxs)(n.p,{children:["If the server has accepted your connection then you can be sure that the protocol version and other extensions that your client intends to use is supported by the server. If this isn't the case, then the server will respond with a handshake error code indicating why the connection was rejected. ",(0,i.jsx)(n.a,{href:"errors#handshake-errors",children:"See all the handshake error codes here"}),"."]})}),"\n",(0,i.jsx)(n.h3,{id:"exchange-modes",children:"Exchange modes"}),"\n",(0,i.jsx)(n.p,{children:"The Skyhash/2.0 specification defines the following exchange mode:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Query-time"}),": This works like a request/response action where the client sends a request and the server responds with a response to the query (or an error)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Expect other exchange modes (bi-directional) to be added in future protocol revisions."}),"\n",(0,i.jsx)(n.h2,{id:"query-time-exchange",children:"Query-time exchange"}),"\n",(0,i.jsxs)(n.p,{children:['In query-time exchange, the protocol works like a "request-response" action where queries are sent by the client and the server sends a repsonse. Queries can be simple queries or pipelines (specification to be finalized',(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),")."]}),"\n",(0,i.jsx)(n.h3,{id:"client-data-types",children:"Client data types"}),"\n",(0,i.jsx)(n.p,{children:"The client side needs to send encoded data types to the server (in the form of parameters) so that the server can process them. The following types are defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Null: Encoded as ",(0,i.jsx)(n.code,{children:"0"})]}),"\n",(0,i.jsxs)(n.li,{children:["Bool: Encoded as ",(0,i.jsx)(n.code,{children:"1<0 or 1>\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Unsigned integer: A 64-bit unsigned integer. Encoded as ",(0,i.jsx)(n.code,{children:"2\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Signed integer: A 64-bit unsigned integer. Encoded as ",(0,i.jsx)(n.code,{children:"3\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Float: A 64-bit (double precision) floating point value. Encoded as ",(0,i.jsx)(n.code,{children:"4\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Binary: A binary blob. Encoded as ",(0,i.jsx)(n.code,{children:"5\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["String: An UTF-8 string. Encoded as ",(0,i.jsx)(n.code,{children:"6\\n"})]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"server-data-types",children:"Server data types"}),"\n",(0,i.jsx)(n.p,{children:"The server will respond with different data types, depending on the context. The following types are defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Null: Encoded as ",(0,i.jsx)(n.code,{children:"0"})]}),"\n",(0,i.jsxs)(n.li,{children:["Bool: encoded as ",(0,i.jsx)(n.code,{children:"1<0 or 1>\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Unsigned integers:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 2 -> 8-bit, 3 -> 16-bit, 4 -> 32-bit, 5 -> 64-bit"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Signed integers:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 6 -> 8-bit, 7 -> 16-bit, 8 -> 32-bit, 9 -> 64-bit"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Simple collections:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 10 -> binary, 11 -> string"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Complex collections:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 11 -> list"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"simple-queryresponse",children:"Simple query/response"}),"\n",(0,i.jsx)(n.h4,{id:"simple-query",children:"Simple query"}),"\n",(0,i.jsxs)(n.p,{children:["A simple query sends a single BlueQL query to the server to which the server responds with a ",(0,i.jsx)(n.a,{href:"#simple-response",children:"simple response"}),". It has three sections:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The metaframe:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Contains metadata about the query"}),"\n",(0,i.jsxs)(n.li,{children:["Encoded as: ",(0,i.jsx)(n.code,{children:"S\\n"})," (total size of the other two sections)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["The dataframe header: Encoded as ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["The dataframe:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["First part contains the query body, encoded as: ",(0,i.jsx)(n.code,{children:""})," (the query body is simply appended here)"]}),"\n",(0,i.jsxs)(n.li,{children:["Second part contains the payload body with all the parameters, encoded end-on as: ",(0,i.jsx)(n.code,{children:"..."})," (repeat for all parameters). See ",(0,i.jsx)(n.a,{href:"#client-data-types",children:"the data types for parameters above"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"simple-response",children:"Simple response"}),"\n",(0,i.jsxs)(n.p,{children:["When the client sends a ",(0,i.jsx)(n.a,{href:"#simple-query",children:"simple query"}),", the server will respond with a simple response using any of the ",(0,i.jsx)(n.a,{href:"#server-data-types",children:"response data types"}),", or it can respond with any of the following response structures:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Error"}),": Encoded as ",(0,i.jsx)(n.code,{children:"0x10<16-bit error code>"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Row"}),": The server has returned a row. Encoded as ",(0,i.jsx)(n.code,{children:"0x11\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Empty"}),": This indicates that the query ran successfully but nothing appropriate can be returned (like HTTP's 200 status). Encoded as ",(0,i.jsx)(n.code,{children:"0x12"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multirow"}),": The server has returned multiple rows. Encoded as ",(0,i.jsx)(n.code,{children:"0x13\\n"})]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," or ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n","\n",(0,i.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,i.jsxs)(n.p,{children:["See the ",(0,i.jsx)(n.a,{href:"https://github.com/skytable/skytable/issues/332",children:"discussion here"})," ",(0,i.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var i=s(6540);const r={},t=i.createContext(r);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a648b40.17a21ca1.js b/assets/js/5a648b40.17a21ca1.js deleted file mode 100644 index e9dffc48c..000000000 --- a/assets/js/5a648b40.17a21ca1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5717],{5218:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var i=s(4848),r=s(8453);const t={id:"specification",title:"Specification"},o="Skyhash 2: Specification",l={id:"protocol/specification",title:"Specification",description:"Network layer",source:"@site/docs/protocol/specification.md",sourceDirName:"protocol",slug:"/protocol/specification",permalink:"/protocol/specification",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"specification",title:"Specification"},sidebar:"docs",previous:{title:"Skyhash 2: Overview",permalink:"/protocol/"},next:{title:"Error Index",permalink:"/protocol/errors"}},c={},d=[{value:"Network layer",id:"network-layer",level:2},{value:"Exchange modes",id:"exchange-modes",level:3},{value:"Query-time exchange",id:"query-time-exchange",level:2},{value:"Client data types",id:"client-data-types",level:3},{value:"Server data types",id:"server-data-types",level:3},{value:"Simple query/response",id:"simple-queryresponse",level:3},{value:"Simple query",id:"simple-query",level:4},{value:"Simple response",id:"simple-response",level:4}];function h(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"skyhash-2-specification",children:"Skyhash 2: Specification"}),"\n",(0,i.jsx)(n.h2,{id:"network-layer",children:"Network layer"}),"\n",(0,i.jsx)(n.p,{children:"As noted earlier, Skyhash is a client/server protocol built on top of TCP, that enables communication between a Skytable database server and a Skytable client. The Skyhash protocol uses a very simple data exchange model with the following three connection stages:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Connection stage:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Client handshake"}),": The client sends a handshake packet","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The handshake contains all necessary information to successfully establish a connection"}),"\n",(0,i.jsx)(n.li,{children:"The structure of the client handshake depends on the authentication plugin in use (since authentication data has to be exchanged before the connection can be established)"}),"\n",(0,i.jsxs)(n.li,{children:["For the ",(0,i.jsx)(n.code,{children:"pwd"})," plugin the client handshake looks like this (split into lines for convenience):","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"H0\n\n000\n\\n\\n\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["For the protocol compatibility code, ",(0,i.jsx)(n.a,{href:"/protocol/#version-matrix",children:"see the version matrix"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Server handshake"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Accepted:"})," If the server accepts the handshake information then it will respond with: ",(0,i.jsx)(n.code,{children:"H000"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Rejected"}),": If the server rejects the handshake information then it will respond with ",(0,i.jsx)(n.code,{children:"H01<8-bit error code>"}),". You can find out what happened using ",(0,i.jsx)(n.a,{href:"errors",children:"the error code index"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Data exchange stage: This is where the client and server send and receive data. A client and server will spend the majority of their time in this stage."}),"\n",(0,i.jsx)(n.li,{children:"Termination stage: Once the connection is no longer needed, the client (or in exceptional cases, the server) will close the connection using a simple TCP FIN."}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{title:"Is my client compatible?",type:"tip",children:(0,i.jsxs)(n.p,{children:["If the server has accepted your connection then you can be sure that the protocol version and other extensions that your client intends to use is supported by the server. If this isn't the case, then the server will respond with a handshake error code indicating why the connection was rejected. ",(0,i.jsx)(n.a,{href:"errors#handshake-errors",children:"See all the handshake error codes here"}),"."]})}),"\n",(0,i.jsx)(n.h3,{id:"exchange-modes",children:"Exchange modes"}),"\n",(0,i.jsx)(n.p,{children:"The Skyhash/2.0 specification defines the following exchange mode:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Query-time"}),": This works like a request/response action where the client sends a request and the server responds with a response to the query (or an error)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Expect other exchange modes (bi-directional) to be added in future protocol revisions."}),"\n",(0,i.jsx)(n.h2,{id:"query-time-exchange",children:"Query-time exchange"}),"\n",(0,i.jsxs)(n.p,{children:['In query-time exchange, the protocol works like a "request-response" action where queries are sent by the client and the server sends a repsonse. Queries can be simple queries or pipelines (specification to be finalized',(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),")."]}),"\n",(0,i.jsx)(n.h3,{id:"client-data-types",children:"Client data types"}),"\n",(0,i.jsx)(n.p,{children:"The client side needs to send encoded data types to the server (in the form of parameters) so that the server can process them. The following types are defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Null: Encoded as ",(0,i.jsx)(n.code,{children:"0"})]}),"\n",(0,i.jsxs)(n.li,{children:["Bool: Encoded as ",(0,i.jsx)(n.code,{children:"1<0 or 1>\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Unsigned integer: A 64-bit unsigned integer. Encoded as ",(0,i.jsx)(n.code,{children:"2\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Signed integer: A 64-bit unsigned integer. Encoded as ",(0,i.jsx)(n.code,{children:"3\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Float: A 64-bit (double precision) floating point value. Encoded as ",(0,i.jsx)(n.code,{children:"4\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Binary: A binary blob. Encoded as ",(0,i.jsx)(n.code,{children:"5\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["String: An UTF-8 string. Encoded as ",(0,i.jsx)(n.code,{children:"6\\n"})]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"server-data-types",children:"Server data types"}),"\n",(0,i.jsx)(n.p,{children:"The server will respond with different data types, depending on the context. The following types are defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Null: Encoded as ",(0,i.jsx)(n.code,{children:"0"})]}),"\n",(0,i.jsxs)(n.li,{children:["Bool: encoded as ",(0,i.jsx)(n.code,{children:"1<0 or 1>\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["Unsigned integers:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 2 -> 8-bit, 3 -> 16-bit, 4 -> 32-bit, 5 -> 64-bit"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Signed integers:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 6 -> 8-bit, 7 -> 16-bit, 8 -> 32-bit, 9 -> 64-bit"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Simple collections:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 10 -> binary, 11 -> string"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Complex collections:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"First byte: 11 -> list"}),"\n",(0,i.jsxs)(n.li,{children:["Payload: ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"simple-queryresponse",children:"Simple query/response"}),"\n",(0,i.jsx)(n.h4,{id:"simple-query",children:"Simple query"}),"\n",(0,i.jsxs)(n.p,{children:["A simple query sends a single BlueQL query to the server to which the server responds with a ",(0,i.jsx)(n.a,{href:"#simple-response",children:"simple response"}),". It has three sections:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The metaframe:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Contains metadata about the query"}),"\n",(0,i.jsxs)(n.li,{children:["Encoded as: ",(0,i.jsx)(n.code,{children:"S\\n"})," (total size of the other two sections)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["The dataframe header: Encoded as ",(0,i.jsx)(n.code,{children:"\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:["The dataframe:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["First part contains the query body, encoded as: ",(0,i.jsx)(n.code,{children:""})," (the query body is simply appended here)"]}),"\n",(0,i.jsxs)(n.li,{children:["Second part contains the payload body with all the parameters, encoded end-on as: ",(0,i.jsx)(n.code,{children:"..."})," (repeat for all parameters). See ",(0,i.jsx)(n.a,{href:"#client-data-types",children:"the data types for parameters above"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"simple-response",children:"Simple response"}),"\n",(0,i.jsxs)(n.p,{children:["When the client sends a ",(0,i.jsx)(n.a,{href:"#simple-query",children:"simple query"}),", the server will respond with a simple response using any of the ",(0,i.jsx)(n.a,{href:"#server-data-types",children:"response data types"}),", or it can respond with any of the following response structures:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Error"}),": Encoded as ",(0,i.jsx)(n.code,{children:"0x10<16-bit error code>"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Row"}),": The server has returned a row. Encoded as ",(0,i.jsx)(n.code,{children:"0x11\\n"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Empty"}),": This indicates that the query ran successfully but nothing appropriate can be returned (like HTTP's 200 status). Encoded as ",(0,i.jsx)(n.code,{children:"0x12"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multirow"}),": The server has returned multiple rows. Encoded as ",(0,i.jsx)(n.code,{children:"0x13\\n"})]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"}),": A ",(0,i.jsx)(n.code,{children:""})," or ",(0,i.jsx)(n.code,{children:""})," is the value of the length in question converted to an ASCII string."]}),"\n"]}),"\n","\n",(0,i.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,i.jsxs)(n.p,{children:["See the ",(0,i.jsx)(n.a,{href:"https://github.com/skytable/skytable/issues/332",children:"discussion here"})," ",(0,i.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(6540);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.151e1d78.js b/assets/js/runtime~main.48503210.js similarity index 99% rename from assets/js/runtime~main.151e1d78.js rename to assets/js/runtime~main.48503210.js index f0e8c2cac..29f4fccbf 100644 --- a/assets/js/runtime~main.151e1d78.js +++ b/assets/js/runtime~main.48503210.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,r),c.exports}r.m=d,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(f,d),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({168:"0f669020",204:"43cf645b",284:"0886eaad",295:"b34fd168",322:"b1d9ab1e",329:"55771474",503:"2ef51344",623:"670c12fe",649:"dfcc6ccf",651:"f6ca6b97",698:"bef7336c",705:"d03628f5",832:"362a08a0",1245:"588b3e90",1288:"1573eefc",1312:"85c21da9",1313:"b8a88df5",1511:"3e753cd6",1535:"733fd614",1648:"1b355885",1691:"d0914994",1807:"859ae2ee",1969:"7232540e",2020:"7535d00c",2340:"e22dd37b",2355:"1136c95f",2372:"8ba0b14e",2726:"c95b781b",2811:"3e90d946",2881:"2773c291",2885:"bf5678db",2893:"e82058ca",2954:"c414bc73",3017:"6abe9687",3213:"8cfdc86d",3239:"b73968e4",3276:"d8d94b5c",3487:"13dac574",3582:"5edea9bf",3701:"88f07c05",3823:"efd8aafa",3839:"6b8fde54",3922:"894aac81",4100:"5fb694b3",4167:"6bbf3746",4244:"f7fdec3a",4391:"d95065c8",4423:"1f1a3550",4426:"b572c5af",4525:"ad301c44",4709:"2e44b5ea",4757:"a21738db",4810:"72032a86",4835:"6b87b92b",4846:"ec707320",4963:"fd615c45",5023:"ea31ac95",5035:"a36d89ba",5044:"b5a8c0e1",5046:"22fdb0f7",5059:"bccbf329",5256:"ddd45ac8",5289:"92b9ac0d",5296:"5e3fdd1e",5333:"45483604",5385:"a1d1dd1b",5418:"760c21a9",5423:"f9345a93",5452:"5c02a21c",5468:"333ace74",5545:"39643f54",5548:"247783bb",5659:"735f4e8b",5682:"ffee4076",5717:"5a648b40",5718:"791af571",5723:"796c6854",5742:"c377a04b",5839:"f000fa6c",5981:"45cfda70",6043:"10598b0c",6054:"20310182",6082:"077e182c",6084:"49313f96",6209:"be23a2ab",6349:"655ebc95",6466:"ba4c4c42",6715:"2673cc66",6728:"41cfe910",6776:"61483c77",6827:"49eba915",6969:"14eb3368",6972:"73bb290b",6980:"4748fea8",7098:"a7bd4aaa",7174:"59841b15",7181:"398ec6ec",7185:"3aec8d28",7296:"1190ec46",7328:"7f1a228f",7391:"bcc493bb",7444:"4575aa6b",7466:"283abc1e",7476:"0e046e27",7491:"6315f7a9",7500:"1eebf554",7533:"fa4df832",7538:"63e7d659",7606:"7041e121",7670:"45762ba8",7702:"b478df71",7740:"38c0e729",7765:"0eed62d0",7783:"5499eab5",7823:"acaa9510",7826:"c9ef35f2",7853:"393ba31b",7900:"a377b775",8024:"b213ac14",8029:"1d32a22a",8152:"38b1a18c",8316:"df871b03",8362:"718e3846",8401:"17896441",8581:"935f2afb",8792:"a482deb9",8804:"4cacf3e6",8847:"413b7f27",8898:"16d48d9c",8937:"858b8f4c",8958:"93201ccf",9048:"a94703ab",9191:"e6557b6f",9202:"3b39eb61",9256:"bf95a5e0",9338:"95f524cc",9350:"e9725e38",9357:"453d2cf9",9366:"0fe8a02a",9502:"72ce6c4c",9519:"17721d7a",9538:"f0a0c15c",9552:"cbe58da9",9624:"70010fe2",9647:"5e95c892",9659:"77510a09",9665:"a97a69dc",9745:"0eadbdf8",9757:"105374d0",9762:"698dac37",9770:"1cd70b93",9840:"82b53ec7",9864:"bcf25bf9",9947:"9c1c0c58"}[e]||e)+"."+{168:"eb3a0135",204:"6d0719ad",284:"9f4e29bb",295:"b95deb92",322:"2736a0bf",329:"c2ef3bf6",503:"73f7efbe",623:"5727b5ab",649:"77f22673",651:"12ec0fbc",698:"478d5db8",705:"0896e077",832:"ecbe60db",1245:"4d9190b7",1288:"fbec144f",1312:"6e4d99f1",1313:"d5a4f49e",1511:"658ee4b8",1535:"d08c473a",1648:"1d6c8e37",1691:"986cf88b",1807:"04b589bf",1969:"823ff0bb",2020:"42e99283",2237:"56c57425",2340:"19206a13",2355:"5e3a8fd9",2372:"74c605e9",2726:"9ce72428",2811:"9fb65596",2881:"e1ebac0b",2885:"1c43843f",2893:"d7c4ac33",2954:"fae52e5b",3017:"c9950a84",3213:"bc3a249c",3239:"d49e2292",3276:"ff1a5062",3487:"daf6e862",3582:"ca72daf8",3701:"b26f6a07",3823:"e804b589",3839:"78657e34",3922:"fc23a3cf",4100:"31405584",4167:"5733d97c",4244:"bc638d19",4391:"d1dc66b8",4423:"2f88c29c",4426:"8f597a4b",4525:"9423364f",4709:"69e76e37",4757:"cf081221",4810:"9e420044",4835:"9fad4cc5",4846:"45b9078a",4963:"603007d7",5023:"21d13568",5035:"37b230cd",5044:"6031ece2",5046:"0ee8b3ef",5059:"5385f3de",5256:"ea3d4855",5289:"156ed7f1",5296:"e6f10877",5333:"e25930e5",5385:"e8f9dc35",5418:"7e2de53b",5423:"808c88ec",5452:"61eb0821",5468:"affc7e23",5545:"faf63b34",5548:"54c9fe51",5659:"06aa74a0",5682:"10735fc1",5717:"17a21ca1",5718:"646450f7",5723:"ba30c1eb",5742:"9d86a74b",5839:"1770a000",5981:"17316b39",6043:"27cbc116",6054:"e233df35",6082:"f3270a2f",6084:"828d5ebd",6209:"35117bc1",6349:"a7187bac",6466:"5b4bd9b9",6715:"8266847d",6728:"87142b16",6776:"f7f01557",6827:"ab2890f2",6969:"49b9290d",6972:"87148cd4",6980:"ea2b079d",7098:"73b0e486",7174:"d3bdc064",7181:"caab080d",7185:"54919abd",7296:"11a82728",7328:"545e29e3",7391:"6a7ab078",7444:"bc536c5a",7466:"241237c6",7476:"14302ccf",7491:"0d25d100",7500:"2de66a94",7533:"79525a68",7538:"e33294e7",7606:"f6133330",7670:"91351fac",7702:"23230679",7740:"e6dd4322",7765:"1c43382a",7783:"08510a3b",7823:"a7db7a6c",7826:"50541758",7853:"e25ded6e",7900:"54b73ddf",8024:"b52a79c6",8029:"962140b1",8152:"78ed6345",8316:"a6f28121",8362:"b8f2f4a0",8401:"2b7f0af5",8581:"42280d4b",8792:"139720dc",8804:"4203f59c",8847:"101c59a4",8898:"90f8e37b",8937:"32fefbd3",8958:"b18c4589",9048:"843131cf",9191:"5bca9125",9202:"272b661f",9256:"fa00b990",9338:"55e91be4",9350:"cbb5fc84",9357:"9db04445",9366:"2d3d5fed",9502:"1753f4a2",9519:"60e7734e",9538:"2a057da4",9552:"8afdd6ab",9624:"136b1ac5",9647:"aa1c8caa",9659:"bd44937e",9665:"8a0a63ee",9745:"7bcbb3f5",9757:"97c5a343",9762:"882c7d14",9770:"07920571",9840:"c3079b27",9864:"85955067",9947:"f7640411"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="docs:",r.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",20310182:"6054",45483604:"5333",55771474:"329","0f669020":"168","43cf645b":"204","0886eaad":"284",b34fd168:"295",b1d9ab1e:"322","2ef51344":"503","670c12fe":"623",dfcc6ccf:"649",f6ca6b97:"651",bef7336c:"698",d03628f5:"705","362a08a0":"832","588b3e90":"1245","1573eefc":"1288","85c21da9":"1312",b8a88df5:"1313","3e753cd6":"1511","733fd614":"1535","1b355885":"1648",d0914994:"1691","859ae2ee":"1807","7232540e":"1969","7535d00c":"2020",e22dd37b:"2340","1136c95f":"2355","8ba0b14e":"2372",c95b781b:"2726","3e90d946":"2811","2773c291":"2881",bf5678db:"2885",e82058ca:"2893",c414bc73:"2954","6abe9687":"3017","8cfdc86d":"3213",b73968e4:"3239",d8d94b5c:"3276","13dac574":"3487","5edea9bf":"3582","88f07c05":"3701",efd8aafa:"3823","6b8fde54":"3839","894aac81":"3922","5fb694b3":"4100","6bbf3746":"4167",f7fdec3a:"4244",d95065c8:"4391","1f1a3550":"4423",b572c5af:"4426",ad301c44:"4525","2e44b5ea":"4709",a21738db:"4757","72032a86":"4810","6b87b92b":"4835",ec707320:"4846",fd615c45:"4963",ea31ac95:"5023",a36d89ba:"5035",b5a8c0e1:"5044","22fdb0f7":"5046",bccbf329:"5059",ddd45ac8:"5256","92b9ac0d":"5289","5e3fdd1e":"5296",a1d1dd1b:"5385","760c21a9":"5418",f9345a93:"5423","5c02a21c":"5452","333ace74":"5468","39643f54":"5545","247783bb":"5548","735f4e8b":"5659",ffee4076:"5682","5a648b40":"5717","791af571":"5718","796c6854":"5723",c377a04b:"5742",f000fa6c:"5839","45cfda70":"5981","10598b0c":"6043","077e182c":"6082","49313f96":"6084",be23a2ab:"6209","655ebc95":"6349",ba4c4c42:"6466","2673cc66":"6715","41cfe910":"6728","61483c77":"6776","49eba915":"6827","14eb3368":"6969","73bb290b":"6972","4748fea8":"6980",a7bd4aaa:"7098","59841b15":"7174","398ec6ec":"7181","3aec8d28":"7185","1190ec46":"7296","7f1a228f":"7328",bcc493bb:"7391","4575aa6b":"7444","283abc1e":"7466","0e046e27":"7476","6315f7a9":"7491","1eebf554":"7500",fa4df832:"7533","63e7d659":"7538","7041e121":"7606","45762ba8":"7670",b478df71:"7702","38c0e729":"7740","0eed62d0":"7765","5499eab5":"7783",acaa9510:"7823",c9ef35f2:"7826","393ba31b":"7853",a377b775:"7900",b213ac14:"8024","1d32a22a":"8029","38b1a18c":"8152",df871b03:"8316","718e3846":"8362","935f2afb":"8581",a482deb9:"8792","4cacf3e6":"8804","413b7f27":"8847","16d48d9c":"8898","858b8f4c":"8937","93201ccf":"8958",a94703ab:"9048",e6557b6f:"9191","3b39eb61":"9202",bf95a5e0:"9256","95f524cc":"9338",e9725e38:"9350","453d2cf9":"9357","0fe8a02a":"9366","72ce6c4c":"9502","17721d7a":"9519",f0a0c15c:"9538",cbe58da9:"9552","70010fe2":"9624","5e95c892":"9647","77510a09":"9659",a97a69dc:"9665","0eadbdf8":"9745","105374d0":"9757","698dac37":"9762","1cd70b93":"9770","82b53ec7":"9840",bcf25bf9:"9864","9c1c0c58":"9947"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",t.name="ChunkLoadError",t.type=f,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,r),c.exports}r.m=d,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(f,d),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({168:"0f669020",204:"43cf645b",284:"0886eaad",295:"b34fd168",322:"b1d9ab1e",329:"55771474",503:"2ef51344",623:"670c12fe",649:"dfcc6ccf",651:"f6ca6b97",698:"bef7336c",705:"d03628f5",832:"362a08a0",1245:"588b3e90",1288:"1573eefc",1312:"85c21da9",1313:"b8a88df5",1511:"3e753cd6",1535:"733fd614",1648:"1b355885",1691:"d0914994",1807:"859ae2ee",1969:"7232540e",2020:"7535d00c",2340:"e22dd37b",2355:"1136c95f",2372:"8ba0b14e",2726:"c95b781b",2811:"3e90d946",2881:"2773c291",2885:"bf5678db",2893:"e82058ca",2954:"c414bc73",3017:"6abe9687",3213:"8cfdc86d",3239:"b73968e4",3276:"d8d94b5c",3487:"13dac574",3582:"5edea9bf",3701:"88f07c05",3823:"efd8aafa",3839:"6b8fde54",3922:"894aac81",4100:"5fb694b3",4167:"6bbf3746",4244:"f7fdec3a",4391:"d95065c8",4423:"1f1a3550",4426:"b572c5af",4525:"ad301c44",4709:"2e44b5ea",4757:"a21738db",4810:"72032a86",4835:"6b87b92b",4846:"ec707320",4963:"fd615c45",5023:"ea31ac95",5035:"a36d89ba",5044:"b5a8c0e1",5046:"22fdb0f7",5059:"bccbf329",5256:"ddd45ac8",5289:"92b9ac0d",5296:"5e3fdd1e",5333:"45483604",5385:"a1d1dd1b",5418:"760c21a9",5423:"f9345a93",5452:"5c02a21c",5468:"333ace74",5545:"39643f54",5548:"247783bb",5659:"735f4e8b",5682:"ffee4076",5717:"5a648b40",5718:"791af571",5723:"796c6854",5742:"c377a04b",5839:"f000fa6c",5981:"45cfda70",6043:"10598b0c",6054:"20310182",6082:"077e182c",6084:"49313f96",6209:"be23a2ab",6349:"655ebc95",6466:"ba4c4c42",6715:"2673cc66",6728:"41cfe910",6776:"61483c77",6827:"49eba915",6969:"14eb3368",6972:"73bb290b",6980:"4748fea8",7098:"a7bd4aaa",7174:"59841b15",7181:"398ec6ec",7185:"3aec8d28",7296:"1190ec46",7328:"7f1a228f",7391:"bcc493bb",7444:"4575aa6b",7466:"283abc1e",7476:"0e046e27",7491:"6315f7a9",7500:"1eebf554",7533:"fa4df832",7538:"63e7d659",7606:"7041e121",7670:"45762ba8",7702:"b478df71",7740:"38c0e729",7765:"0eed62d0",7783:"5499eab5",7823:"acaa9510",7826:"c9ef35f2",7853:"393ba31b",7900:"a377b775",8024:"b213ac14",8029:"1d32a22a",8152:"38b1a18c",8316:"df871b03",8362:"718e3846",8401:"17896441",8581:"935f2afb",8792:"a482deb9",8804:"4cacf3e6",8847:"413b7f27",8898:"16d48d9c",8937:"858b8f4c",8958:"93201ccf",9048:"a94703ab",9191:"e6557b6f",9202:"3b39eb61",9256:"bf95a5e0",9338:"95f524cc",9350:"e9725e38",9357:"453d2cf9",9366:"0fe8a02a",9502:"72ce6c4c",9519:"17721d7a",9538:"f0a0c15c",9552:"cbe58da9",9624:"70010fe2",9647:"5e95c892",9659:"77510a09",9665:"a97a69dc",9745:"0eadbdf8",9757:"105374d0",9762:"698dac37",9770:"1cd70b93",9840:"82b53ec7",9864:"bcf25bf9",9947:"9c1c0c58"}[e]||e)+"."+{168:"eb3a0135",204:"6d0719ad",284:"9f4e29bb",295:"b95deb92",322:"2736a0bf",329:"c2ef3bf6",503:"73f7efbe",623:"5727b5ab",649:"77f22673",651:"12ec0fbc",698:"478d5db8",705:"0896e077",832:"ecbe60db",1245:"4d9190b7",1288:"fbec144f",1312:"6e4d99f1",1313:"d5a4f49e",1511:"658ee4b8",1535:"d08c473a",1648:"1d6c8e37",1691:"986cf88b",1807:"04b589bf",1969:"823ff0bb",2020:"42e99283",2237:"56c57425",2340:"19206a13",2355:"5e3a8fd9",2372:"74c605e9",2726:"9ce72428",2811:"9fb65596",2881:"e1ebac0b",2885:"1c43843f",2893:"d7c4ac33",2954:"fae52e5b",3017:"c9950a84",3213:"bc3a249c",3239:"d49e2292",3276:"ff1a5062",3487:"daf6e862",3582:"ca72daf8",3701:"b26f6a07",3823:"e804b589",3839:"78657e34",3922:"fc23a3cf",4100:"31405584",4167:"5733d97c",4244:"bc638d19",4391:"d1dc66b8",4423:"2f88c29c",4426:"8f597a4b",4525:"9423364f",4709:"69e76e37",4757:"cf081221",4810:"9e420044",4835:"9fad4cc5",4846:"45b9078a",4963:"603007d7",5023:"21d13568",5035:"37b230cd",5044:"6031ece2",5046:"0ee8b3ef",5059:"5385f3de",5256:"ea3d4855",5289:"156ed7f1",5296:"e6f10877",5333:"e25930e5",5385:"e8f9dc35",5418:"7e2de53b",5423:"808c88ec",5452:"61eb0821",5468:"affc7e23",5545:"faf63b34",5548:"54c9fe51",5659:"06aa74a0",5682:"10735fc1",5717:"0ef1df25",5718:"646450f7",5723:"ba30c1eb",5742:"9d86a74b",5839:"1770a000",5981:"17316b39",6043:"27cbc116",6054:"e233df35",6082:"f3270a2f",6084:"828d5ebd",6209:"35117bc1",6349:"a7187bac",6466:"5b4bd9b9",6715:"8266847d",6728:"87142b16",6776:"f7f01557",6827:"ab2890f2",6969:"49b9290d",6972:"87148cd4",6980:"ea2b079d",7098:"73b0e486",7174:"d3bdc064",7181:"caab080d",7185:"54919abd",7296:"11a82728",7328:"545e29e3",7391:"6a7ab078",7444:"bc536c5a",7466:"241237c6",7476:"14302ccf",7491:"0d25d100",7500:"2de66a94",7533:"79525a68",7538:"e33294e7",7606:"f6133330",7670:"91351fac",7702:"23230679",7740:"e6dd4322",7765:"1c43382a",7783:"08510a3b",7823:"a7db7a6c",7826:"50541758",7853:"e25ded6e",7900:"54b73ddf",8024:"b52a79c6",8029:"962140b1",8152:"78ed6345",8316:"a6f28121",8362:"b8f2f4a0",8401:"2b7f0af5",8581:"42280d4b",8792:"139720dc",8804:"4203f59c",8847:"101c59a4",8898:"90f8e37b",8937:"32fefbd3",8958:"b18c4589",9048:"843131cf",9191:"5bca9125",9202:"272b661f",9256:"fa00b990",9338:"55e91be4",9350:"cbb5fc84",9357:"9db04445",9366:"2d3d5fed",9502:"1753f4a2",9519:"60e7734e",9538:"2a057da4",9552:"8afdd6ab",9624:"136b1ac5",9647:"aa1c8caa",9659:"bd44937e",9665:"8a0a63ee",9745:"7bcbb3f5",9757:"97c5a343",9762:"882c7d14",9770:"07920571",9840:"c3079b27",9864:"85955067",9947:"f7640411"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="docs:",r.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",20310182:"6054",45483604:"5333",55771474:"329","0f669020":"168","43cf645b":"204","0886eaad":"284",b34fd168:"295",b1d9ab1e:"322","2ef51344":"503","670c12fe":"623",dfcc6ccf:"649",f6ca6b97:"651",bef7336c:"698",d03628f5:"705","362a08a0":"832","588b3e90":"1245","1573eefc":"1288","85c21da9":"1312",b8a88df5:"1313","3e753cd6":"1511","733fd614":"1535","1b355885":"1648",d0914994:"1691","859ae2ee":"1807","7232540e":"1969","7535d00c":"2020",e22dd37b:"2340","1136c95f":"2355","8ba0b14e":"2372",c95b781b:"2726","3e90d946":"2811","2773c291":"2881",bf5678db:"2885",e82058ca:"2893",c414bc73:"2954","6abe9687":"3017","8cfdc86d":"3213",b73968e4:"3239",d8d94b5c:"3276","13dac574":"3487","5edea9bf":"3582","88f07c05":"3701",efd8aafa:"3823","6b8fde54":"3839","894aac81":"3922","5fb694b3":"4100","6bbf3746":"4167",f7fdec3a:"4244",d95065c8:"4391","1f1a3550":"4423",b572c5af:"4426",ad301c44:"4525","2e44b5ea":"4709",a21738db:"4757","72032a86":"4810","6b87b92b":"4835",ec707320:"4846",fd615c45:"4963",ea31ac95:"5023",a36d89ba:"5035",b5a8c0e1:"5044","22fdb0f7":"5046",bccbf329:"5059",ddd45ac8:"5256","92b9ac0d":"5289","5e3fdd1e":"5296",a1d1dd1b:"5385","760c21a9":"5418",f9345a93:"5423","5c02a21c":"5452","333ace74":"5468","39643f54":"5545","247783bb":"5548","735f4e8b":"5659",ffee4076:"5682","5a648b40":"5717","791af571":"5718","796c6854":"5723",c377a04b:"5742",f000fa6c:"5839","45cfda70":"5981","10598b0c":"6043","077e182c":"6082","49313f96":"6084",be23a2ab:"6209","655ebc95":"6349",ba4c4c42:"6466","2673cc66":"6715","41cfe910":"6728","61483c77":"6776","49eba915":"6827","14eb3368":"6969","73bb290b":"6972","4748fea8":"6980",a7bd4aaa:"7098","59841b15":"7174","398ec6ec":"7181","3aec8d28":"7185","1190ec46":"7296","7f1a228f":"7328",bcc493bb:"7391","4575aa6b":"7444","283abc1e":"7466","0e046e27":"7476","6315f7a9":"7491","1eebf554":"7500",fa4df832:"7533","63e7d659":"7538","7041e121":"7606","45762ba8":"7670",b478df71:"7702","38c0e729":"7740","0eed62d0":"7765","5499eab5":"7783",acaa9510:"7823",c9ef35f2:"7826","393ba31b":"7853",a377b775:"7900",b213ac14:"8024","1d32a22a":"8029","38b1a18c":"8152",df871b03:"8316","718e3846":"8362","935f2afb":"8581",a482deb9:"8792","4cacf3e6":"8804","413b7f27":"8847","16d48d9c":"8898","858b8f4c":"8937","93201ccf":"8958",a94703ab:"9048",e6557b6f:"9191","3b39eb61":"9202",bf95a5e0:"9256","95f524cc":"9338",e9725e38:"9350","453d2cf9":"9357","0fe8a02a":"9366","72ce6c4c":"9502","17721d7a":"9519",f0a0c15c:"9538",cbe58da9:"9552","70010fe2":"9624","5e95c892":"9647","77510a09":"9659",a97a69dc:"9665","0eadbdf8":"9745","105374d0":"9757","698dac37":"9762","1cd70b93":"9770","82b53ec7":"9840",bcf25bf9:"9864","9c1c0c58":"9947"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",t.name="ChunkLoadError",t.type=f,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(c);n Benchmarking | Skytable - + diff --git a/blueql/dcl/index.html b/blueql/dcl/index.html index cf8721ce7..bf6e29cff 100644 --- a/blueql/dcl/index.html +++ b/blueql/dcl/index.html @@ -4,7 +4,7 @@ DCL | Skytable - + diff --git a/blueql/ddl/index.html b/blueql/ddl/index.html index c69503b8f..54e8933cf 100644 --- a/blueql/ddl/index.html +++ b/blueql/ddl/index.html @@ -4,7 +4,7 @@ DDL | Skytable - + diff --git a/blueql/dml/index.html b/blueql/dml/index.html index cb6aacbf7..47e50cf7c 100644 --- a/blueql/dml/index.html +++ b/blueql/dml/index.html @@ -4,7 +4,7 @@ DML | Skytable - + diff --git a/blueql/index.html b/blueql/index.html index 792cf5c00..1c55af666 100644 --- a/blueql/index.html +++ b/blueql/index.html @@ -4,7 +4,7 @@ BlueQL | Skytable - + diff --git a/blueql/overview/index.html b/blueql/overview/index.html index 5ccba6bd0..d1e02f073 100644 --- a/blueql/overview/index.html +++ b/blueql/overview/index.html @@ -4,7 +4,7 @@ Overview | Skytable - + diff --git a/deployment/index.html b/deployment/index.html index 88dda2611..2e234e280 100644 --- a/deployment/index.html +++ b/deployment/index.html @@ -4,7 +4,7 @@ Deployment | Skytable - + diff --git a/index.html b/index.html index 960e6c34b..d7947f4bf 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Introduction | Skytable - + diff --git a/installation/index.html b/installation/index.html index 2b20c2914..374fd8331 100644 --- a/installation/index.html +++ b/installation/index.html @@ -4,7 +4,7 @@ Installation | Skytable - + diff --git a/libraries/index.html b/libraries/index.html index b7315cc8d..bfb165dbc 100644 --- a/libraries/index.html +++ b/libraries/index.html @@ -4,7 +4,7 @@ Client drivers | Skytable - + diff --git a/limits/index.html b/limits/index.html index 634d76058..de839ff86 100644 --- a/limits/index.html +++ b/limits/index.html @@ -4,7 +4,7 @@ Limits | Skytable - + diff --git a/protocol/errors/index.html b/protocol/errors/index.html index 54d05142d..48bddbc65 100644 --- a/protocol/errors/index.html +++ b/protocol/errors/index.html @@ -4,7 +4,7 @@ Error Index | Skytable - + diff --git a/protocol/index.html b/protocol/index.html index 1b9770c3a..d5bca2475 100644 --- a/protocol/index.html +++ b/protocol/index.html @@ -4,7 +4,7 @@ Skyhash 2: Overview | Skytable - + diff --git a/protocol/specification/index.html b/protocol/specification/index.html index 72370226e..d2401d992 100644 --- a/protocol/specification/index.html +++ b/protocol/specification/index.html @@ -4,7 +4,7 @@ Specification | Skytable - + @@ -18,18 +18,20 @@

Network layer<
  • The handshake contains all necessary information to successfully establish a connection
  • The structure of the client handshake depends on the authentication plugin in use (since authentication data has to be exchanged before the connection can be established)
  • -
  • For the pwd plugin the client handshake looks like this (split into lines for convenience): -
    H0
    <protocol compatibility code>
    000
    <username length>\n<password length>\n<username><password>
    -
    -

    For the protocol compatibility code, see the version matrix

    -
    +
  • For the pwd plugin the client handshake looks like this: +
    H0<protocol compatibility code>000<username length>\n<password length>\n<username><password>
    +
      +
    • For the protocol compatibility code, see the version matrix
    • +
    • Please note that 0 means integer value 0 (0x00) and NOT the ASCII digit 0
    • +
    • Both the <username length> and <password length> are the respective lengths encoded as ASCII strings
    • +
  • Server handshake:
      -
    • Accepted: If the server accepts the handshake information then it will respond with: H000
    • -
    • Rejected: If the server rejects the handshake information then it will respond with H01<8-bit error code>. You can find out what happened using the error code index
    • +
    • Accepted: If the server accepts the handshake information then it will respond with: H000 (all the numeric values are integers and NOT ASCII digits)
    • +
    • Rejected: If the server rejects the handshake information then it will respond with H01<8-bit error code> (all the numeric values are integers and NOT ASCII digits). You can find out what happened using the error code index
  • diff --git a/resources/migration/index.html b/resources/migration/index.html index d86456fb6..1bb214c84 100644 --- a/resources/migration/index.html +++ b/resources/migration/index.html @@ -4,7 +4,7 @@ Migrating from an older release | Skytable - + diff --git a/resources/useful-links/index.html b/resources/useful-links/index.html index c60cd7332..000d2b473 100644 --- a/resources/useful-links/index.html +++ b/resources/useful-links/index.html @@ -4,7 +4,7 @@ Useful links | Skytable - + diff --git a/system/configuration/index.html b/system/configuration/index.html index e84dc2db0..c4dd3f799 100644 --- a/system/configuration/index.html +++ b/system/configuration/index.html @@ -4,7 +4,7 @@ Configuration | Skytable - + diff --git a/system/global-management/index.html b/system/global-management/index.html index cd6eb48e5..2e4983d2a 100644 --- a/system/global-management/index.html +++ b/system/global-management/index.html @@ -4,7 +4,7 @@ Global management | Skytable - + diff --git a/system/index.html b/system/index.html index 418781b3c..20777c762 100644 --- a/system/index.html +++ b/system/index.html @@ -4,7 +4,7 @@ System administration | Skytable - + diff --git a/system/recovery/index.html b/system/recovery/index.html index 7410ca3d4..a17aeadff 100644 --- a/system/recovery/index.html +++ b/system/recovery/index.html @@ -4,7 +4,7 @@ Recovery | Skytable - + diff --git a/system/user-management/index.html b/system/user-management/index.html index bbfaadb0c..b50591f7a 100644 --- a/system/user-management/index.html +++ b/system/user-management/index.html @@ -4,7 +4,7 @@ User management | Skytable - + diff --git a/using-the-repl/index.html b/using-the-repl/index.html index 01eaf0955..98360183f 100644 --- a/using-the-repl/index.html +++ b/using-the-repl/index.html @@ -4,7 +4,7 @@ Using the REPL | Skytable - + diff --git a/versions/index.html b/versions/index.html index eb984d4a9..b31f8af4f 100644 --- a/versions/index.html +++ b/versions/index.html @@ -4,7 +4,7 @@ All versions | Skytable - +