go-hep / hep

hep is the mono repository holding all of go-hep.org/x/hep packages and tools
https://go-hep.org
BSD 3-Clause "New" or "Revised" License
232 stars 37 forks source link

xrootd: implement a XRootD client in pure-Go #139

Open sbinet opened 6 years ago

sbinet commented 6 years ago
sbinet commented 6 years ago

@ljanyst wrote in https://github.com/cern-eos/eos/issues/13#issuecomment-349547449

I would be unlikely to beat you. I was primarily interested in looking at the core
communication engine and seeing how I could design the asynchronous APIs
using the Go concepts. I probably would not even touch the distributed failure
 handling and recovery, which, honestly, is probably most of the work.

you are free to devote any amount of work you want on this. Fork it, break it: https://github.com/go-hep/xrootd I am mostly involved in the interpreter right now, and will then gaze at the ROOT I/O subsystem after that. so you definitely have a possible headstart :) That said, I can provide some blueprint if you want.

FYI: usually, in Go, we write and export synchronous APIs (and let users compose them with channels and goroutines in an asynchronous way if needed)

sbinet commented 6 years ago

@ljanyst not sure whether you are aware of it, but the xrootd client in Go is moving forward.

see:

BTW, if you have any insights about https://github.com/go-hep/hep/issues/250#issuecomment-401004496, that would be very much appreciated :)

ljanyst commented 6 years ago

@sbinet I started a new job, so I have pretty much no time to work on anything I had planned to work before. I think, all of the auth stuff is custom and not covered by the protocol spec. When I implemented the C++ client, I just called the appropriate auth plugin in a way defined by the protocol. Gerri (@gganis) wrote these plugins, so he's the best person to ask about that.