All Projects → obsidian → orion

obsidian / orion

Licence: MIT license
A Crystal router

Programming Languages

crystal
512 projects
HTML
75241 projects

Projects that are alternatives of or similar to orion

rux
⚡ Rux is an simple and fast web framework. support route group, param route binding, middleware, compatible http.Handler interface. 简单且快速的 Go api/web 框架,支持路由分组,路由参数绑定,中间件,兼容 http.Handler 接口
Stars: ✭ 81 (-29.57%)
Mutual labels:  router
es6-router
🌐 Simple client side router built in ES6
Stars: ✭ 16 (-86.09%)
Mutual labels:  router
react-chicane
A simple and safe router for React and TypeScript.
Stars: ✭ 191 (+66.09%)
Mutual labels:  router
secp256k1.cr
a native library implementing secp256k1 purely for the crystal language.
Stars: ✭ 34 (-70.43%)
Mutual labels:  crystal-language
tulingx
TULINGX(图灵)VPN下载页 翻墙 代理 科学上网 外网 加速器 梯子 路由
Stars: ✭ 59 (-48.7%)
Mutual labels:  router
easytcp
✨ 🚀 EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
Stars: ✭ 416 (+261.74%)
Mutual labels:  router
kemal-vue-chat
this is experimental repo for Kemal and Vue.js (+ WebSocket)
Stars: ✭ 32 (-72.17%)
Mutual labels:  crystal-language
Stime
基于Vue-cli3(Vue+Vue-router)构建的单页单栏Typecho主题,全站Ajax+类Pjax(Vue-router)无刷新,自适应适配移动设备
Stars: ✭ 29 (-74.78%)
Mutual labels:  router
lura
Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation
Stars: ✭ 5,159 (+4386.09%)
Mutual labels:  router
routex.js
🔼 Alternative library to manage dynamic routes in Next.js
Stars: ✭ 38 (-66.96%)
Mutual labels:  router
FGRoute
Get your device ip address, router ip or wifi ssid
Stars: ✭ 128 (+11.3%)
Mutual labels:  router
svelte-starter-kit
Svelte starter kit — router, state management and testing included.
Stars: ✭ 16 (-86.09%)
Mutual labels:  router
journey
A conductor routing helper library
Stars: ✭ 35 (-69.57%)
Mutual labels:  router
svelte-micro
Light & reactive one-component router for Svelte
Stars: ✭ 81 (-29.57%)
Mutual labels:  router
qlevar router
Manage you project Routes. Create nested routes. Simply navigation without context to your pages. Change only one sub widget in your page when navigating to new route.
Stars: ✭ 51 (-55.65%)
Mutual labels:  router
crystal-web-framework-stars
⭐️ Web frameworks for Crystal, most starred on Github
Stars: ✭ 40 (-65.22%)
Mutual labels:  crystal-language
RoundedLayout
This is a library that has a rounded cut of View, support whether the specified corners are cropped and add a custom Border, and add a shadow support from API 9, which is based on FrameLayout, that is, His Child can be any View, the current library or preview version, if you encounter problems in the process can submit issue or pr.
Stars: ✭ 24 (-79.13%)
Mutual labels:  router
Android-XRouter
This is a lightweight and simple routing framework that provides jump routing and method routing.
Stars: ✭ 19 (-83.48%)
Mutual labels:  router
Parrot
Web router specially designed for building SPAs using Meteor
Stars: ✭ 75 (-34.78%)
Mutual labels:  router
fast-route
PSR-15 middleware to use FastRoute
Stars: ✭ 91 (-20.87%)
Mutual labels:  router

Orion

Crystal CI GitHub issues GitHub stars GitHub license Documentation


Introduction

Orion is minimal, Omni-Conventional, declarative web framework inspired by the ruby-on-rails router and controller components. It provides, the routing, view, and controller framework of your application in a way that can be as simple or complex as you need it to fit your use case.

Simple Example

Orion out of the box is designed to be as simple as you want it to be. A few lines will get you a functioning web app. Orion also ships with helpful features such as view rendering and static content delivery.

require "orion/app"

root do
  "Welcome Home"
end

get "/posts" do
  "Many posts here!"
end

Flexible Routing

Orion is extemely flexible, it is inspiried by the rails routing and controller framework and therefore has support for scope, concerns, use HTTP::Handler, constraints and more! See the modules in Orion::DSL more more detail.

require "orion/app"
require "auth_handlers"

static "/", dir: "./assets"

scope "/api" do
  use AuthHandlers::Token
end

use AuthHandlers::CookieSession

scope constraint: UnauthenticatedUser do
  root do
  render "views/home.slim"
end

get "/login", helper: login do
  render "views/login.slim"
end

post "/login" do
  if User.authenticate(params["email"], params["password"])
    redirect to: root_path
  else
    flash[:error] = "Invalid login"
    redirect to: login_path
  end
end

scope constraint: AuthenticatedUser do
  root do
    render "views/dashboard.slim"
  end
end

Installation

Add this to your application's shard.yml:

dependencies:
  orion:
    github: obsidian/orion

See also Getting Started.

Documentation

View the docs at https://obsidian.github.io/orion. View the guides at https://github.com/obsidian/orion/wiki.

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].