tiberius
tiberius copied to clipboard
General TODO List
Just sharing the last state of my todo list here, in case somebody wants to play around with something:
If something of this list is especially important for you, let me know in the respective issue (if there isn't one, feel free to create one)
list in prioritized order (top item = most important):
- [ ] some bugs from https://github.com/steffengy/tiberius/pull/25
- [ ] TLS
- [ ] channel bindings (NTLMv2, SQL server doesn't seem to care)
- [ ] generic backend
- [ ] several more data type impls (prepare, query)
- [ ] Text
- [ ] Image
- [ ] DatetimeOffsetn
- [ ] BigVarBin / BigBinary / BigChar
- [ ] NChar / NText
- [ ] Xml
- [ ] more documentation
- [ ] tests
- [ ] timeouts (TCP)
- [ ] named pipes, shared memory
- [ ] (proper) support for <TDS 7.4
- [ ] sspi/ntlm auth (Negotiate, Kerberos in winauth)
- [ ] Evaluate Readv/iovec insteadof 2 read system calls for header&packet body (likely not possible)
good job
Not sure if you're still working on these or not, but the missing type impls (Specifically BigChar) are forcing me to use the raw odbc crate instead. If you can drop me a hint or two as to what all needs to be done to get the support working, I can surely try it myself
Generally:
- read the MS-TDS spec and check how your type is encoded
- search for the most similar type thats already supported (e.g.
NChar
) - implement it, add a test
All in https://github.com/steffengy/tiberius/blob/master/tiberius/src/types/mod.rs
I don't see any reference to Table valued parameters. Is this on the todo list at some point? It is supported in TDS 7.3 and above:
https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-how-to/use-table-valued-parameters-odbc?view=sql-server-ver15
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/c264db71-c1ec-4fe8-b5ef-19d54b1e6566
Great job, by the way. Making leaps and bounds with micro-service architecture Rust because of this library.
@klmallory You're the first asking so far :) Feel free to open an extra issue for it mentioning some usecases/why its important for you. Personally I'm currently busy with slowly making progress with porting to async/await, so maybe next year sometime.