gundb / feature-requests

What extra features do you want for gun? Discuss here!
10 stars 0 forks source link

Well, if we can just go ahead and request anything...... #25

Open faddat opened 7 years ago

faddat commented 7 years ago

Guidance in porting it to go and keeping compatibility with the js :)

This way, it could sex better with golang backend systems. (but I am doing some research into how to facilitate that sexing w/o a go port right ths moment)

amark commented 7 years ago

@faddat the current guide I have up for porting gun is here: https://github.com/amark/gun/wiki/porting-gun however it is unfinished :( but should be a good start. Ask my any questions.

camstuart commented 6 years ago

I know this was posted a while ago, and much has potentially changed. I have been playing around with Gun of late, and I really like it.

The app I'm planning to use it for has a lot of backend data interaction. I considered perhaps a nodejs micro-service API to interact with the GunDB, that my main Golang API's could call for data storage and retrieval. But of course, that's not ideal.

I am a reasonably competent Go programmer, and I have had a look at the porting guide you mentioned above. From what I see so far, it should be achievable.

@amark Is that guide still the best place to get started? Also, If I have a Go (pun intended) would you provide assistance for the trickier parts?

amark commented 6 years ago

@camstuart I believe I caught up with you on the chatroom about this, right?

YES, I'm sure the community would LOVE a go port! The porting page is still the most accurate, and yes happy to help explain any nuances you come across. :)

The only thing that has changed is the addition of DAM ( https://gun.eco/docs/DAM ) however your system will still work even if you don't implement DAM yourself (but it'll be more efficient if you do!). The algorithm is actually pretty trivial to implement.

The only other minor difference which is easy to catch/correct is that when you receive and parse messages over a transport layer... often times they're actually packaged up in (the thing I hate a lot) [msg, msg, msg, ...] (not always) but literally as easy as just iterating over the payload and then calling the parser on each actual message itself.

camstuart commented 6 years ago

@amark yes your sure did!

I have been mostly collecting information, and playing around with some test automation tools in Go as part of my preparation. Hopefully within a week or two I'll get started. The first step of setting up a web socket server is pretty straightforward in Go, and I have done that before. But right from the beginning I want to have test automation with a CI setup. So as you suggest, others may wish to contribute. This is going to be a challenge, but a lot of fun!

amark commented 6 years ago

@camstuart sounds amazing!!!

miguelmota commented 5 years ago

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

merarischroeder commented 5 years ago

see https://github.com/gundb/feature-requests/issues/33 - there should be general guidance of interoperation with multiple languages and platforms using a v8-js engine.