Section courante

A propos

Section administrative du site

Fiche technique
Type de produit : Cadre d'application
Auteur : Matt Todd
Licence : MIT
Date de publication : 2007 à 2015
Site Web : https://github.com/mtodd/halcyon

Introduction

Halcyon est un cadre d'applications web JSON basé sur Rack pour allier rapidité et légèreté.

Halcyon poursuit plusieurs objectifs, notamment :

En termes simples, Halcyon est un cadre d'applications web avec une particularité : les applications Halcyon communiquent uniquement via JSON, en entrée comme en sortie.

À quoi sert Halcyon ?

C'est la question la plus souvent posée à propos d'Halcyon : à quoi sert Halcyon ? Si Rails (et Merb et al.) sert au développement rapide d'applications web, Halcyon vise à fournir un cadre d'application pour le développement d'applications orientées services (SOA), telles que des API ou d'autres services non interfacés.

L'API Twitter est un excellent exemple d'architecture orientée services (SOA) permettant de soumettre des tweets sans interface Web. L'avantage de ce type d'application réside dans la possibilité de développer d'autres applications côté client pour fournir une interface au service web.

Halcyon vise à simplifier l'écriture de ces interfaces applicatives et d'autres services similaires.

Fonctionnalités et performances

Avec Mongrel en tête, Rack en tête, JSON en tête et beaucoup de marge de manoeuvre, comment ne pas être intéressé, même par ce cadre d'application ? Toujours pas convaincu ? D'accord, voici un peu de code :

  1. class Message < Sequel::Model; end
  2. class Messages < Application
  3.   def new
  4.     # respond with fields acceptable
  5.     ok Message.columns
  6.   end
  7.   def create
  8.     msg = Message.create(params)
  9.     msg.save
  10.     ok msg.id
  11.   end
  12.   def read
  13.     ok Message[params[:id]]
  14.   end
  15.   def update
  16.     Message.filter(:id => params[:id]).update(params)
  17.     ok
  18.   end
  19.   def delete
  20.     Message.filter(:id => params[:id]).delete
  21.     ok
  22.   end
  23. end

Vous pouvez ensuite l'exécuter avec :

$ halcyon start -p 4647

C'est tout ce qu'il faut pour ouvrir la porte et vous permettre de communiquer avec vos applications implémentant ou utilisent le client simple.

Plateformes prises en charge

Halcyon est principalement écrit en Ruby, mais il est également compatible avec plusieurs plateformes grâce à sa communication HTTP et à l'empaquetage de ses messages en JSON. Halcyon propose des clients Ruby, PHP et Java.

Installation

L'installation est simple : RubyGems suffit et le tour est joué. Exécutez simplement la commande suivante :

$ sudo gem install halcyon

Si vous souhaitez obtenir la version la plus récente, consultez notre page GitHub (lien ci-dessus). Vous pouvez installer la dernière version de développement en suivant ces étapes :

$ git clone git://github.com/mtodd/halcyon.git $ cd halcyon && rake install

Cela permettra d'obtenir la dernière version d'Halcyon et d'exécuter la tâche d'installation.

Remarque : En raison de limitations, seul json_pure est une dépendance, car il est pris en charge sur toutes les plateformes. Cependant, pour des performances plus rapides, assurez-vous d'exécuter cette commande qui installera l'extension C plus rapide de JSON : $ sudo gem install json



Dernière mise à jour : Dimanche, le 16 octobre 2016