8 ms·
Ghostly is a simple, lightweight, and fast full-stack framework for Golang
- lelanthran 4y agoLooks good, will have to try it. What are the competitors to this? I ask because I want to do my next side project in go.
- deleted 4y ago[deleted]
- tgv 4y agoCheck the "awesome go" repository: https://github.com/avelino/awesome-go https://github.com/avelino/awesome-go. You could look under ORM and Web Frameworks.
- DoctorOW 4y agoHave you already seen Buffalo? https://gobuffalo.io/ https://gobuffalo.io/
- rouxz 4y agoJust start with the standard library and you will be OK, in Go there is rarely a _need_ for some kind of framework to get going as I assume it is in JS.
- lanecwagner 4y agoYou really don't need a framework in Go, and probably shouldn't start with one
- KingOfCoders 4y agoI currently use Echo, Jet for templating and Air for automatic reloads.
- gunapologist99 4y agoLabstack Echo, buffalo, gorilla, and gin gonic. I prefer https://gofiber.io https://gofiber.io the most. There are many more, too.
- trifit 4y agoAre you serious, frameworks similar to Iris gone? And we now have to use this?
- jstx1 4y agoThe project with 3 stars which was written in a month? You certainly don't have to use it.
- t-writescode 4y agoThis having the GPL license is an interesting choice. If I understand licenses correctly (I am not a lawyer), integrating this into your code, will instantly cause your website's source code to become open source. That seems like a non-starter for almost every major usage, to me.
- jabbawookiees 4y agoMy understanding is that this is true only if you distribute your executables which most people don't do for server-side code.
- pmontra 4y agoIANAL. I think that your assessment is correct in the consequences but not in the letter: your source code does become GPL but if you don't distribute the binary and only use it on your servers nobody is entitled to ask you the source code. That would happen with the AGPL license. Same thing if you make changes to Ghostly itself and don't distribute the binary. Those changes are GPL but you can keep them to you. If you are working for customers and the IP of the software is yours but the servers are theirs, that is an act of distribution and the source code must be available. For sure customers can ask for it because binaries are distributed to them, maybe everyone else can ask it too. This is the same as GPL code on set top boxes or other devices. If the contract states that the IP belongs to the customer, the source code is theirs but nobody else is entitled to ask for it because there is no distribution.
- deleted 4y ago[deleted]
- throw_m239339 4y agoFUD. Nothing wrong with GPL. GPL might "protect" the user by granting them certain rights.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- 65a 4y agoI'm not sure what the value of a "framework" is in Go.
- throw_m239339 4y agoGo isn't polymorphic enough as a language to achieve something akin to JEE, Rails, Django or Laravel, so these "go frameworks" will have hard time encapsulating the complexity of underlying libraries they might use. All the former use either an IoC container, or their own flavor of "module loading". This is absolutely not practical in Go. Of course, dependency injection is possible, explicitly, but can hardly be generalized an efficient way, so the plumbing will always be explicit, because the underlying lib types will always leak. So it's not so much that there is no value in frameworks in Go, it just hard to write actual web frameworks in that language that would be useful.
- kgeist 4y ago>Go isn't polymorphic enough Can you elaborate?
- bheadmaster 4y agoGo interfaces are the best form of dependency injection :)
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- 1MachineElf 4y agoAre there any examples of things built with Ghostly?
- tethys 4y agoWhat's the best way to learn Go these days? Any recommended books?
- lanecwagner 4y agoI'll shamelessly plug my course: https://boot.dev/learn/learn-golang https://boot.dev/learn/learn-golang
- scns 4y agoCheck out the recommendations in the "Thirteen Years of Go" thread.
- lioeters 4y agoHere's the comment where people posted their recommendations. https://news.ycombinator.com/item?id=33560306 https://news.ycombinator.com/item?id=33560306 To summarize: - The tour - https://go.dev/tour/welcome/1 https://go.dev/tour/welcome/1 - Effective Go - https://go.dev/doc/effective_go https://go.dev/doc/effective_go - Go by Example - https://gobyexample.com/ https://gobyexample.com/ - The Little Go Book - https://www.openmymind.net/The-Little-Go-Book/ https://www.openmymind.net/The-Little-Go-Book/ - "The Go Programming Language" by Alan A.A. Donovan and Brian W. Kernighan - Go 101 - https://go101.org/ https://go101.org/
- tethys 4y agoGreat list, thank you!
- nixcraft 4y agoGo Programming Language - https://www.informit.com/store/go-programming-language-9780134190440 https://www.informit.com/store/go-programming-language-97801...
- 2pEXgD0fZ5cF 4y agoWhile I don't get to use Go much these days, this is still one of the best programming books I've read. I just wish they'd create a 2nd edition...
- iio7 4y agoHere we go again, yet another wannabe code it like it's Ruby or Python. Frameworks are useless in Go!
- fosefx 4y agoWhy?
- mickael-kerjean 4y agoThe equivalent of a framework in go is the standard library itself
- aliqot 4y agoit's not considered idiomatic Go to use frameworks, the stdlib provides everything.
- hknmtt 4y agoI work with go for years but never used a fw. At the beginning when i came from php, i looked for fw because that was how things were done. But once i let go of that idea and started making things by hand i never looked back. Go really does not need a framework. Sooner or later it starts to limit you. For example i used grpc a lot in the past but came to realize it was hindrance and now i just use proto files to define schemas and generate the structs but that's is all it does. Everything else is hand-made. I even moved away from SQL abstraction and just use sql and directly. Again, sooner or later there will be some limitation that will bother you and so it is just not worth it. And being able to tailor-made every part of the application for its desired purpose is priceless.
- re-lre-l 4y agoSame here. It doesn't work in Golang world. I stopped using ORMs (especially GORM), realized it's completely incompetence in generating SQL queries. It doesn't worth it, just another bounds.
- deleted 4y ago[deleted]
- jfax 4y agoIt doesn't even explain it's a web(?) framework. Just "full-stack framework".
- deleted 4y ago[deleted]
- francislavoie 4y agoFull-stack implies web. It's both halves of the front-end and back-end.
- endigma 4y agoThe readme doesn't seem to mention or list what libraries this depends on, it has chi and jet at least based on the structs section. Given this "framework" is predominantly a collection of other people's (usually apache/mit) work, where is the BOM/licence text including all of the dependencies? And why has the author attempted to licence their likely sub 100 lines of glue code under the GPL? I don't see the point in using something like this which is basically a prefilled go.mod with some other files with a pretty stock organization. I've used Pagoda (https://github.com/mikestefanello/pagoda https://github.com/mikestefanello/pagoda) in the past which makes a show of displaying its nature as a wrapper around a bunch of community libraries, and is documented as such. They also make effort to document the interfaces for each component so you could easily replace them with your own implementations to avoid getting stuck due to the "framework". This is my preferred approach for all of these "starters" now since using pagoda.
- ownagefool 4y agoSeems a bit harsh. The BOM of Golang, which you know, is easily found: https://github.com/Dominic-Wassef/ghostly/blob/main/go.mod https://github.com/Dominic-Wassef/ghostly/blob/main/go.mod https://github.com/Dominic-Wassef/ghostly/blob/main/go.sum https://github.com/Dominic-Wassef/ghostly/blob/main/go.sum I suspect most library authors who are happy with others using their work, are probably somewhat okay with the standard file pointing to their original work as attribution. It's also a bit more than 100 glue code. Last paragraph is a good though. :)
- rroot 4y ago"I suspect ... are probably somewhat okay ..." This is not an argument against what he said.
- foolfoolz 4y agoclassic hacker news comment. demean the work as if it’s beneath you. i know you know enough github to see this is more than 100 lines of glue code. why even comment if only to shit on someone’s work? want to share pagoda? submit a link for it
- deleted 4y ago
- EdwardDiego 4y agoI'll be honest, the "full documentation" just being generated API docs isn't great. Just show me how you use it, damnit.
- avinassh 4y agoIn Go world, most libraries and frameworks come with documentation like that. I so miss being a Python dev
- throwaway894345 4y agoIn the Python world, most docs give a couple of usage examples but no type information (at best it will usually tell you that an argument is “a file-like object” with no information about what “file-like” methods are required). Moreover, Sphinx just renders everything onto one giant page so you have no idea which class a given method belongs to without doing a bunch of error-prone scrolling (sqlalchemy was the worst because every class had the same method names). I will take Go docs all day, every day over Python docs.
- carapace 4y agoYeah, Python docs are crap, PHP docs are the gold standard IMO (although Julia's docs are pretty frosty too. (I don't know anything about Go's docs.)) (I am not joking. I am not trolling. I love Python, but the documentation is mostly like notes taken by a distracted teenager.)
- thiht 4y agoI’ll take the Go doc over Python documentation any day. Python docs are really worst in class, completely unreadable and useless when you want to do anything precise.
- deleted 4y ago[deleted]
- Loic 4y agoSlightly off-topic question. What are you using to do the rendering and validation of forms in a "Django like" way in Go? I have a half-backed system build using the ideas coming from Django but I wonder if something a bit more robust exists. My impression is that more and more people are just submitting forms a JSON through an heavy weight app to an API end-point and less people are using forms "the old way". So, if some "old people" have some pointers for another "CGI old dev", I would really enjoy them!
- doorman2 4y agoOne nice thing about submitting forms the "old way" is that they work even when JS is disabled. Not many people care about that, however.
- KingOfCoders 4y agoI use Echo with Jet and some 20-lines JS code to POST JSON to an Echo handler on form submit.
- todotask 4y agoI’m using Echo which work pretty good with SPA like Vue 3. Wish I could find job opportunity to utilise these.