All Projects → amethyst-framework → Amethyst

amethyst-framework / Amethyst

Licence: mit
Amethyst is a Rails inspired web-framework for Crystal language

Programming Languages

crystal
512 projects

Projects that are alternatives of or similar to Amethyst

Soap Client
A general purpose SOAP client for PHP
Stars: ✭ 523 (-18.66%)
Mutual labels:  middleware
Method Override
Override HTTP verbs.
Stars: ✭ 548 (-14.77%)
Mutual labels:  middleware
Soapcore
SOAP extension for ASP.NET Core
Stars: ✭ 590 (-8.24%)
Mutual labels:  middleware
Swagger Express Middleware
Swagger 2.0 middlware and mocks for Express.js
Stars: ✭ 543 (-15.55%)
Mutual labels:  middleware
Redux Saga
An alternative side effect model for Redux apps
Stars: ✭ 21,975 (+3317.57%)
Mutual labels:  middleware
Cors
Node.js CORS middleware
Stars: ✭ 5,252 (+716.8%)
Mutual labels:  middleware
Repatch
Dispatch reducers
Stars: ✭ 516 (-19.75%)
Mutual labels:  middleware
Agendash
Agenda Dashboard
Stars: ✭ 620 (-3.58%)
Mutual labels:  middleware
Underconstruction
This Laravel 8 package makes it possible for you to set your website in "Under Construction" mode. Only users with the correct 4 (or more) digit code can access your site. 🔥 💥 🔥
Stars: ✭ 549 (-14.62%)
Mutual labels:  middleware
Serve Favicon
favicon serving middleware
Stars: ✭ 586 (-8.86%)
Mutual labels:  middleware
Gear
A lightweight, composable and high performance web service framework for Go.
Stars: ✭ 544 (-15.4%)
Mutual labels:  middleware
Kraken Js
An express-based Node.js web application bootstrapping module.
Stars: ✭ 4,938 (+667.96%)
Mutual labels:  middleware
Alosaur
Alosaur - Deno web framework with many decorators
Stars: ✭ 559 (-13.06%)
Mutual labels:  middleware
Rill
🗺 Universal router for web applications.
Stars: ✭ 541 (-15.86%)
Mutual labels:  middleware
Koa Helmet
Important security headers for koa
Stars: ✭ 595 (-7.47%)
Mutual labels:  middleware
Body Parser
Node.js body parsing middleware
Stars: ✭ 4,962 (+671.7%)
Mutual labels:  middleware
Gin Boilerplate
The fastest way to deploy a restful api's with Gin Framework with a structured project that defaults to PostgreSQL database and JWT authentication middleware stored in Redis
Stars: ✭ 559 (-13.06%)
Mutual labels:  middleware
Csrf
gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services 🔒
Stars: ✭ 631 (-1.87%)
Mutual labels:  middleware
Session
Simple session middleware for Express
Stars: ✭ 5,571 (+766.41%)
Mutual labels:  middleware
Netdiscovery
NetDiscovery 是一款基于 Vert.x、RxJava 2 等框架实现的通用爬虫框架/中间件。
Stars: ✭ 573 (-10.89%)
Mutual labels:  middleware

Amethyst-logo

⚠️ Amethyst is currently undergoing a re-write from the ground up. We'll be releasing the public roadmap soon.

Amethyst is a web framework written in the Crystal language. The goals of Amethyst are to be extremely fast and to provide agility in application development, much like Rails.

Latest version - 0.1.7 Note that Amethyst is at its early stages, so it lacks for whole bunch of things. But you can give a hand with contributing.

For detailed information, see docs on our wiki below:

Here are some benchmarking results

For now, next things are implemented:

  • class-based controllers with method-based actions
  • views for actions (*.ecr)
  • filters for action
  • middleware support
  • simple REST routing
  • default routes for controller
  • path, GET and POST params inside actions
  • basic cookies support
  • static files serving
  • http logger and timer for developers
  • simple environments support
  • simple session support

Example

Here is classic 'Hello World' in Amethyst

require "crystal-on-rails/amethyst"

class WorldController < Base::Controller
  actions :hello

  view "hello", "#{__DIR__}/views"
  def hello
    @name = "World"
    respond_to do |format|
      format.html { render "hello" }
    end
  end
end

class HelloWorldApp < Base::App
  routes.draw do
    all "/",      "world#hello"
    get "/hello", "world#hello"
    register WorldController
  end
end

app = Amethyst.new HelloWorldApp
app.serve

# /views/hello.ecr
Hello, <%= name %>

Start your application:

crystal deps
crystal build src/hello.cr

Go to http://localhost:8080/.

Development

Feel free to fork project and make pull-requests.

Contributing

I would be glad for any help with contributing.

  1. Fork it ( https://github.com/amethyst-framework/amethyst/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].