Features

Sailor is a web framework in the Lua programming language. Like Lua, it is open sourced under the MIT License, which is extremely permissive. Sailor applications are structured in a model-view-controller (MVC) architecture. Like other web development frameworks, such as Ruby on Rails and Django, it is designed to make the development process faster by making some assumptions and conventions (over configuration) and encouraging principles like DRY (Don't Repeat Yourself). One of major advantages of Sailor resides in Lua itself, an extremely friendly language with a blazing fast performance. A distinguishable feature is the fact that Sailor allows the developer to write the whole app in Lua if they want, the backend and also the frontend, using a Lua-to-Javascript virtual machine.

For a complete list of features, please refer to the documentation.

FAQ

What is the ultimate goal of Sailor?

Get Lua in the scene of web developments, through Sailor or not. We believe Lua is a better quality alternative to current popular languages used in web development such as PHP, Ruby, Python and Javascript. Lua should at least come to mind when discussing options. We intend to do that by fixing the single most important drawback of Lua, the small ecosystem, by providing more tools to enable fast and easy web development. This is why we support the use of LuaRocks, the Lua package manager.

What is the future goal of Sailor?

Have a solid and extensible product, allowing community members to upload & install their plugins and extensions, a fruitful community, and make the development of a web application in Sailor very easy and fast.

What is the very-near-future goal of Sailor?

Have a minimum viable product that is production ready, specially on its use within Nginx, release a version 1.0 and get users within the Lua community.

Why use Lua in web development?

Why not use Lua in web development?

Are there tools for web development in Lua other than Sailor?

Yes. You can find a review of multiple tools here.

What is Sailor's licence?

Sailor's code license is MIT. In summary, that means you can use it for whatever you want, on both open source and proprietary projects. You can even fork it, rename it to Potato and sell it, as long as you don't blame us if something explodes or pretend you were the one who wrote everything. Meaning that, the only things you cannot do are removing the license files or holding Sailor's team or its contributors accountable for any problems that might happen when using Sailor.

How do I use Sailor?

You can find a manual and a tutorial here. If you still have doubts, you can ask them at our google group / email list.

May I contribute to Sailor?

Yes, you will find a detailed guide on multiple ways to contribute here.

Do you have a code of conduct?

Yes, we are committed to making participation in this project a harassment-free experience for everyone. Please read and follow our Code of conduct here.

Is Sailor production ready?

We do not yet claim to be production ready, but there are reported uses of Sailor on production already. Sailor is being automatically tested on multiple builds and we aim the next release to be a 1.0 release very soon. You can begin using it on your next projects and, if bugs occur, please report them to us on our github repository.

Where does the name Sailor come from?

It is a pun on the popular anime series Sailor Moon. When I first decided I was going to learn Lua, I told myself that if I ever made a project on it, it should be called Sailor, because Lua means Moon in Portuguese. This decision came up in a discussion with Hisham Muhammad in a bus to PUC-Rio on 2013.

What was the initial motivation to build Sailor?

I’m a student at PUC-Rio, home of Lua programming language. For some reason, Lua has more recognition abroad, being used in very known softwares such as World of Warcraft, Angry Birds and MediaWiki, and is not a popular thing here. How is it possible that in the the very same university where researchers designed a programming language people don’t try to use it whenever possible? Maybe I’m being stubborn, but I firmly believe we should pay more attention to home-grown stuff, specially when it’s well designed open source. Everyone benefits from widening the use of Lua. If it’s used more often, improvements will be encouraged, the community will grow, it will be easier to find examples and support, PUC-Rio will have more recognition, its researchers will have more recognition, its students will have more recognition. And that includes me.

Looking from another angle, here I am, at Lua’s nest. I studied Programming Language Semantics with Roberto Ierusalimschy himself, Formal Languages with Hisham Muhammad and Basic Software with Ana Lúcia de Moura. Let’s say I’m in the right place, in the right time and can get in contact with the right people so easily. It’s an opportunity to see what’s going on on first hand and I’d be so foolish if I didn’t learn something about it before I graduate or leave Rio de Janeiro.

So I decided to go on an adventure and develop something real using Lua. My learning curve goes much faster this way. Also, most of my experience as a programmer resides in web development. To make my learning process even easier, why not unite both? And that’s how Sailor started. My adventure turned into a lunatic kamikaze thing as I was seeing Lua for the first time AND building a full MVC web framework at the same time, but it’s hella fun!

Then interesting things happened, as I showed my code on Lua's mail list and reddit I got amazing feedback from wonderful people. I kept going, going and going. Sailor got contributors, it was accepted as a project on Google Summer of Code, it got more mature as a project, it started being used on production and I started giving talks about it. This has been crazy and amazing and I hope Sailor continues to evolve!

Etiene Dalcol.

License


Copyright 2014-2015 Etiene Dalcol

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.