|
| 1 | +# TypeDB Protocol |
| 2 | + |
| 3 | +This version extends the network API with exciting new features like value variables and querying with annotations more generally in concepts' APIs. |
| 4 | + |
| 5 | +Documentation: https://docs.vaticle.com/docs/client-api/ |
| 6 | + |
| 7 | +### Distribution |
| 8 | + |
| 9 | +#### For Java through Maven |
| 10 | + |
| 11 | +Available from https://repo.vaticle.com |
| 12 | +```xml |
| 13 | +<repositories> |
| 14 | + <repository> |
| 15 | + <id>repo.vaticle.com</id> |
| 16 | + <url>https://repo.vaticle.com/repository/maven/</url> |
| 17 | + </repository> |
| 18 | +</repositories> |
| 19 | +<dependencies> |
| 20 | + <dependency> |
| 21 | + <groupid>com.vaticle.typedb</groupid> |
| 22 | + <artifactid>typedb-protocol</artifactid> |
| 23 | + <version>{version}</version> |
| 24 | + </dependency> |
| 25 | +</dependencies> |
| 26 | +``` |
| 27 | + |
| 28 | +#### For Python through PyPI |
| 29 | + |
| 30 | +Available from https://pypi.org/project/typedb-protocol/ |
| 31 | + |
| 32 | +```sh |
| 33 | +pip install typedb-protocol |
| 34 | +``` |
| 35 | + |
| 36 | +#### For Node.js through npm |
| 37 | + |
| 38 | +Available from https://www.npmjs.com/package/typedb-protocol |
| 39 | + |
| 40 | +```sh |
| 41 | +npm install typedb-protocol |
| 42 | +``` |
| 43 | +or |
| 44 | +```sh |
| 45 | +yarn install typedb-protocol |
| 46 | +``` |
| 47 | + |
| 48 | + |
| 49 | +## New Features |
| 50 | +- **Add protocol versioning transmitted during connection open** |
| 51 | + |
| 52 | + We add a new connection opening request, which allows transmitting the protocol version for the server to verify. |
| 53 | + |
| 54 | + As this is the first versioned protocol, we set the version number to version 1. |
| 55 | + |
| 56 | + Previous versions are assumed to be version < 1, and can be considered 0 for now. |
| 57 | + |
| 58 | + |
| 59 | +- **Introduce value query answers** |
| 60 | + |
| 61 | + Implement protocol required to return 'Value' answers in as part of the responses from `match` queries. To support this we generalise some of the message definitions used to transmit attribute values and value types. |
| 62 | + |
| 63 | + |
| 64 | +- **Introduce message types to encode annotations** |
| 65 | + |
| 66 | + We replace usages of `boolean` for key arguments with a message type called `Annotation` - this gives us a natural place to extend the set/capabilities of the annotations in the future. The new message type is used to implement the new "unique" annotation. |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +## Bugs Fixed |
| 71 | + |
| 72 | + |
| 73 | +## Code Refactors |
| 74 | + |
| 75 | + |
| 76 | +## Other Improvements |
| 77 | +- **Update release notes workflow** |
| 78 | + |
| 79 | + We integrate the new release notes tooling. The release notes are now to be written by a person and committed to the repo. |
| 80 | + |
| 81 | + |
| 82 | +- **Make Concept.value.value_type use consistent underscoring** |
| 83 | + |
| 84 | +- **Annotation serialisation uses specialised message types** |
| 85 | + |
| 86 | + |
0 commit comments