Could a C programmer possibly be of any help?

I have not acquainted with syncthing code base yet and I’ve not programmed with GO ever. I have indeed taken a look at the GitHub issues, no luck.

However, meanwhile till I familiarize with syncthing, is there anything I’ll be able to assist right off the bat? I have written a C library that does a good job at recursive watching. I would love to help!

Go is like a better C, you’ll pick it up quickly. :wink:

(But no, there is no C to add to here.)

1 Like

Aah, that’s a bummer! Sure, I’ll invest some time learning GO while I figure out syncthing.

This is one of the low level things that sadly never happened, as I never learned the generation ropes to convert gnu assembly to plan9 assembly.

Not sure if we’re still interested tho, but if that’s your kind of thing, this could blow the hashing available in the standard library out of the water.

Or perhaps https://github.com/minio/sha256-simd this could do with a neon implementation.

I’m sorry, I wish I had a beard long enough to work at that level!

No worries, just throwing out things I never managed to grow a beard for.

On an unrelated note, this site is quite sophisticated. I love the work you folks have done.

When developing an external tool, you can use the language of your choice.

For example I’m using C++ for Syncthing Tray. Maybe you’re familiar with C++, too.

If you not only know how to build C/C++ applications but also by coincidence about the Mac platform, you could try to compile a Mac version of my tray application. That was requested by a few users.

I also recently tried to compile Syncthing as a shared or static library to use it directly from the tray application. The idea came up by one of the Syncthing developers in IRC some time ago. However, I haven’t had any success so far. If you could find out anything about interoperability between Go and C/C++ code, that would be helpful.

And while we are spitballing ideas: Syncthing uses https://github.com/rjeczalik/notify (a fork with minor changes to be exact) for recursive watching. It seems to be working fine (the real test will be coming soon, when it gets enabled by default o.O), but there are some issues and talk of a v2 API. It’s also Go, but with some CGo and you already have expertise on the recursive watching subject, so maybe you want to chime in there.

1 Like

Interesting, I’ll definitely give this a go once I’m familiar with Syncthing! While I’m at it, I’ll keep Syncthing Tray in mind as well. A library, shared or static, will be very convenient indeed.

2 Likes

Definitely! I was meaning to start with exactly what you have suggested. I saw this and ended up at the upstream repo. I have not really dived in to it yet. I’m hoping to see a threaded implementation because otherwise a library implementation will be severely constrained.

Thanks!

1 Like