On May 4, 2020, at 9:17 PM, Ian Haywood <ian@haywood.id.au> wrote:
I have begun work on a SMB (Server Message Block; Windows filesharing) server protocol for twisted.
Very exciting! Thanks for telling us about this. It would be great to have a memory-safe/Python implementation of SMB3!
Work so far is here: https://github.com/ihaywood3/twsmb
I'm looking for any advice particularly around what I should be doing so this code is suitable for inclusion in twisted.
If you want to include it in Twisted itself, your best bet is to actually develop it within twisted, as a series of small contributions, rather than as one gigantic one-shot one. Contributions over, say, 400 lines, take exponentially longer to review. Developing it within Twisted will make things go slower; you'll need to get everything code reviewed, you'll need to support multiple versions of Python (no py2 any more, but py3.5 is still pretty old), you'll have to have full test coverage from the get-go. But doing these things from the start is much easier than trying to retrofit them. I actually think that this would be a pretty good fit for Twisted, in the same way that it's been a benefit to have Conch maintained alongside the rest of Twisted. I can see you're developing things very much in line with Twisted's architecture (using cred for authentication, a realm interface, etc) and you've voiced this interest, so it would be great to have you along! -g