Skeleton
A very minimal http server api serving as a platform for incremental middleware.
Installation
- Add the dependency to your
shard.yml
: - Run
shards install
dependencies:
skeleton:
github: Oblivious-Oblivious/skeleton
Usage
require "skeleton"
# Initialize a server choose what middleware to add
server = Skeleton::Server.new
.add(Skeleton::CORSHandler.new)
.add(Skeleton::RouteHandler.new # Create a route handler for defining sinatra-like routes
.get "/" { # Define all basic HTTP method routes with callback blocks
"Hello World" # Return a `Renderable` value
}
)
.bind_tcp("127.0.0.1", 8080) # Bind to an address on a port
.listen; # Blocking listen
### Non blocking version
# spawn { server.listen }
###
Development
Future additions / #TODOs
- Write proper documentation
- Refactor the
RouteHandler
to avoid conditionals and multiple execution paths - Try to follow MVC more tightly
Contributing
- Fork it (<https://github.com/Oblivious-Oblivious/skeleton/fork>)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Oblivious - creator and maintainer