Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there any driver for Golang? #610

Closed
rebootcode opened this issue Sep 20, 2018 · 5 comments
Closed

Is there any driver for Golang? #610

rebootcode opened this issue Sep 20, 2018 · 5 comments

Comments

@rebootcode
Copy link

Do we have any driver for Golang programming language to setup peer signalling channel?

@amark
Copy link
Owner

amark commented Sep 20, 2018

@rebootcode hey :) I recall somebody the other day saying there were gonna start a GO port.

Either way, it should be pretty easy to port... somebody ported it to Python in 16 hours I think, following this 30 minute guide https://gun.eco/docs/Porting-GUN ! Would love to see repo you start on this :) and I'll reshare it to the community.

Gonna close this though, as it isn't a bug. Excited to see about GO progress though!

@amark amark closed this as completed Sep 20, 2018
@cretz
Copy link

cretz commented Feb 15, 2019

@amark - I am seriously considering building this in Go. I understand the tech part, no prob. What I want to know before I (potentially) embark is if there is anything about the current impl that will be completely upheaved in the near term making my efforts fruitless. I understand the underdocumented parts on that link, but I'd be using the JS code as the spec more than those docs. Als, is there any part completely deprecated and not worth supporting? Finally, are there any alternative implementations of Gun besides this repo? Thanks.

@amark
Copy link
Owner

amark commented Feb 15, 2019

@cretz AWESOME!!!!!!

https://gun.eco/docs/Porting-GUN video shows how to rebuild the protocol from scratch in 30 min, few other Python/etc. devs have done a community port in ~16 hours.

Make sure you jump on the https://gitter.im/amark/gun for a bunch of help and excitement by people :) let them know about this!!!

I know go1dfish (who runs the popular P2P reddit notabug.io) has a lightweight server port.

The protocol is easy, but the chaining API is hard to build (unbelievably hard) so I recommend you do something more go-native/familiar to devs.

Supporting SEA will be a lot harder, but SEA is optional / extends behavior. It shouldn't break/stop anything.

Nothing deprecated. Tho we'll be introducing some new features/formats soon, that extend+improve+optimize things. But the Porting GUN video (and looking at that source code is probably easier to understand) will always be v1 of the spec.

While you follow along the video, it is also best to open up the example apps and try pointing them to your GO port, and see if they work.

We're very excited for this!!!

@miguelmota
Copy link

miguelmota commented Feb 19, 2019

Examples of GunDB port to Go: https://github.com/miguelmota/gundb-port-go

@cretz
Copy link

cretz commented Feb 26, 2019

@amark - I have an early poc at https://github.com/cretz/esgopeta. Obviously it's a bit dirty, but the API is coming together after some kneading (see https://godoc.org/github.com/cretz/esgopeta/gun). It's kinda usable as a client but there's still lots to do.

I hear you're on vacation. When you get back, I have a series of questions about the JS impl I can ask here, some other forum, email, or even on gitter (though they're complicated by their nature and not best suited for ephemeral chat). I am having trouble following the JS code and could use definitive answers. No rush of course, just let me know where to ask.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants