1. Welcome to LilyPad. Download the project, explore the forums, and create your own LilyPad network.

    If you use the software and enjoy it or have a question, or would like to contribute to the future of the software directly or through resources, please sign up and join our little community.

Introducing GoLilyPad

Discussion in 'News' started by Coelho, Dec 5, 2013.

  1. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    After days of constant work, I am here to announce the release of GoLilyPad, an implementation of LilyPad within the language Go.

    Go is a natively compiled language by Google that is well-defined, highly concurrent, and exhibits high performance. In the effort to continue to offer the best performance, we have decided to move all efforts towards recreating the LilyPad platform from the ground up as GoLilyPad.

    With this, it was important to us that we met the following goals:
    1. Complete compatibility with JLilyPad and all it's existing resources
    2. Greater performance than that of JLilyPad
    3. Increased features to address known issues within JLilyPad
    GoLilyPad is 100% compatibile with anything JLilyPad with the assistance of the Connect protocol. If you really want to, you can intertwine your servers and use JLilyPad Server-Standalone-Connect along with GoLilyPad Server-Proxy, visa-versa. The JLilyPad Server-Standalone-Query project (deprecated) can also be used along side GoLilyPad. Existing Bukkit plugins and resources also function perfectly and needn't be modified.

    GoLilyPad performs up to 5 times that of JLilyPad. With hardware accelerated AES encryption, a robust built-in network lib, and Go's all around excellent standard lib we have been able to achieve this.

    GoLilyPad features a few new additions, but they're pretty big. A perfect "reload" command has been added to both Server Connect and Server Proxy, able to function 100% without any issues, along with "stop", "halt", and "exit" for those who struggled with the previous JLilyPad only allowing "halt." Not only this, but dynamic username creation has been allowed through the use of Regexp defined logins within Connect. We have also changed our configurations to YAML, as it is much more readable than the prior JSON.

    GoLilyPad is built entirely on our Jenkins for all (most) platforms Go supports. We ask you to try it out and tell us what you think. We also welcome you to compile it yourself and contribute. Most if not all pull requests within the project's goal will be merged :)


    Before you ask,

    How do I compile GoLilyPad?
    You'll require bzr, git, and golang to compile it. From there, just follow the instructions on the GitHub and it should be fairly straightforward.

    How do I run Go Server `x`?
    On Unix:

    Download the executable suited to your architecture, for example proxy-linux-amd64. Type `chmod +x proxy-linux-amd64`, and then `./proxy-linux-amd64`
    On Windows:
    Open command prompt, and CD to the directory you have downloaded the executable. Then type, for example, `proxy-windows-amd64.exe`

    Software `x` has better performance than GoLilyPad!
    That is awesome. Continue to use that software if you truly wish. It is clearly remarkable.

    You are a liar! The performance isn't as good as you say.
    What an accusation, but you are entitled to your opinion. If you are truly having performance problems, we recommend you compile it on the server you plan to run it on, as Go will have more optimizations available to you than our Jenkins. Please also note that different CPU architectures and operating systems will receive different performance.

    What will happen to JLilyPad?
    We are going to be deprecating all Server* projects offered by JLilyPad. The rest of the projects will stay actively maintained and functional.

    What about Multicraft?
    It is 100% possible to run GoLilyPad on Multicraft, but it does require special configurations.
    • Like Like x 1
    • Agree Agree x 1
    • Useful Useful x 1
  2. Matt

    Matt Forum Moderator & Contributor Staff Member Moderator Contributor

    How about people who are using Multicraft? Some people do..
  3. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    It can't be impossible to run it with Multicraft. You just have to believe a little bit.
    • Like Like x 1
    • Winner Winner x 1
    • Informative Informative x 1
  4. sgtcaze

    sgtcaze Member Resource Contributor

    Building off of what Coelho said, Multicraft allows custom scripts for every file uploaded to the JARs directory. You can create a custom config, or modify one already. Here's a quick example (check lines 64-65)

    **Not guaranteed to work - just an example**

    Edit: I'll figure out how to do it and post it :D

    Attached Files:

    Last edited: Dec 6, 2013
    • Winner Winner x 1
    • Informative Informative x 1
  5. Daniel

    Daniel New Member

    Looking good, I will do some testing and hopefully go live with this tomorrow :)
  6. boboman13

    boboman13 Member Contributor

    Sad to see the JLilyPad project go, happy to see a new project coming in. Question, though: when you say Server* projects are being deprecated, so the server standalone will also be deprecated and no longer be supported?

    Also, looks like it will be the end of my JLilyPad developing career, as we all know that one has been a lengthy and ~20 line long one.
  7. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    That is correct.

    Your contributions have gone far and were implemented into GoLilyPad :D
  8. boboman13

    boboman13 Member Contributor

    @Coelho, if a developer wanted to attempt to keep JLilyPad updated, could he?
  9. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    Why not? But I don't see why they would :p
  10. The_Zip

    The_Zip Active Member Resource Contributor

    I might disagree @Coelho , I would like to hear your estimate on what percentage of users use multicraft? I have only used it a few times, and I am not that familiar with how it works. I believe someone said they could get GO working on multicraft, but it would be much easier for the average user not to. Therefor I think it would be logical and better to keep it updated.
  11. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    Or rather we can make clear and simple documentation on how to setup GoLilypad with Multicraft, and we haven't any issues :)
    • Like Like x 3
  12. Matt

    Matt Forum Moderator & Contributor Staff Member Moderator Contributor

    I am making a Documentation on how to setup GoLilyPad with CentOS. Based on the video of @sgtcaze.

    You can see it here.
    Do you like it @Coelho ??
    Last edited: Dec 7, 2013
  13. The_Zip

    The_Zip Active Member Resource Contributor

    If someone does make it clear and simple I could see it working just fine than. But, how simple would it be? And would all MC hosting companies allow this? Once again, I am not that familiar with it, but I would love to see someone do it. And from a hosting companies stand point, what do you think about it @boboman13 ?
  14. Matt

    Matt Forum Moderator & Contributor Staff Member Moderator Contributor

    If I may give my opinion. Normaly, if you would like to host LilyPad though MCProHosting or a other minecraft hosting company, you had to buy 1 server for the proxy and the rest for the Bukkit servers. Now you need to buy 2 servers for the LilyPad connect/proxy only and then more for the Bukkit servers.
    • Agree Agree x 1
  15. The_Zip

    The_Zip Active Member Resource Contributor

    That's a very good point @Matt , more to manage. But, correct me if I am wrong, that wouldn't effect how much you pay, just how much you would have to manage. You could just get two smaller server's, the proxy being a bigger one, and the connect being a smaller server. Equaling what a user would have paid before. Therefor, money wouldn't matter, it would just be managing the two servers. It might be interesting if enough people ask for this that a big mc hosting, or small with allot of Lily Users, company might offer some package that offers a two in one thing.
    • Agree Agree x 1
  16. Matt

    Matt Forum Moderator & Contributor Staff Member Moderator Contributor

    Well, Its more for low budget people who wants to setup LilyPad but have to buy 2 servers. The only thing I could recommend them is buying the lowest RAM package. GoLilyPad doesn't need much RAM ;)
    • Agree Agree x 1
  17. Good job Robert sweetie (not that I know anything about code anymore)
    lol That software must be remarkable to even begin to compare with anything you do.
    Last edited: Dec 8, 2013
  18. boboman13

    boboman13 Member Contributor

    From a hosting company stand point, and no offense to @Coelho, but I won't be implementing the Go version into our Multicraft - I simply foresee more problems than a Java version had - and anyways, if a server is still using Multicraft, it won't be able to see the performance increases that larger servers would.

    I don't see the Go version being quite as popular as the Java version had been for the less-tech user. I would personally only switch if I found the new version to be less prone to bugs, as I do know Java and don't know Go, and personally I don't see much performance being sucked up anyways with Java.
  19. Coelho

    Coelho Software Engineer Staff Member Administrator Maintainer

    JLilyPad Server will no longer be continued officially, so it will likely be more prone to bugs than GoLilyPad, which is being actively developed and maintained, and to date has no known bugs.

    To be quite honest, from the standpoint of a user not oriented with technology, I believe GoLilyPad is quite the superior :)
    • Funny Funny x 1
    • Informative Informative x 1
  20. The_Zip

    The_Zip Active Member Resource Contributor

    Like you said before though, it would be more superior if you get it down to a simplified version of how to do it. Than building off of @boboman13 's comment, for less techy users who use MultiCraft, it wouldn't be possible.

Share This Page