? Le cadre Web Julia hautement productif
Construit avec ❤︎ par des contributeurs
Genie.jl est l'épine dorsale du Framework Genie, qui fournit un flux de travail rationalisé et efficace pour développer des applications Web modernes. Il s'appuie sur les forces de Julia (de haut niveau, haute performance, dynamique, compilée JIT), exposant une API riche et un ensemble d'outils puissant pour le développement Web productif.
Genie Framework est composé de quatre composantes principales:
Pour en savoir plus sur Genie, visitez la documentation et la galerie d'applications.
Si vous avez besoin d'aide avec quelque chose, vous pouvez nous trouver sur Discord.
Tableau de bord de données Julia alimenté par Genie. Galerie d'applications
? Genie Router: Genie a un très puissant? Router . Faire correspondre les demandes Web aux fonctions, extraire et configurer les variables de la demande et l'environnement d'exécution et invoquer les méthodes de réponse. Les fonctionnalités incluent:
GET , POST , PUT , PATCH , DELETE , OPTIONS ) # Genie Hello World!
# As simple as Hello
using Genie
route ( " /hello " ) do
" Welcome to Genie! "
end
# Powerful high-performance HTML view templates
using Genie . Renderer . Html
route ( " /html " ) do
h1 ( " Welcome to Genie! " ) |> html
end
# JSON rendering built in
using Genie . Renderer . Json
route ( " /json " ) do
( :greeting => " Welcome to Genie! " ) |> json
end
# Start the app!
up ( 8888 )? WebSocket: Genie fournit un flux de travail puissant pour la communication client-serveur sur WebSockets
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ? Templage: Prise en charge des modèles intégrés pour les vues HTML , JSON , Markdown , JavaScript .
? Authentification: Authentification soutenue de base de données facile à ajouter pour une zone restreinte d'un site Web.
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰ Tâches: Les tâches vous permettent d'effectuer diverses opérations et de les accrocher avec des travaux Cons pour l'automatisation
module S3DBTask
# ... hidden code
"""
Downloads S3 files to local disk.
Populate the database from CSV file
"""
function runtask ()
mktempdir () do directory
@info " Path of directory " directory
# download record file
download (RECORD_URL)
# unzip file
unzip (directory)
# dump to database
dbdump (directory)
end
end
# ... more hidden code
end $ bin/runtask S3DBTask? Écosystème du plugin: Explorez des plugins construits par la communauté tels que la géauthentification, GenieAutoreLoad, la génialité et plus
? ️ Support ORM: Explorez les projecteurs une solution ORM complète pour Genie, en soutenant Postgres, MySQL, SQLite et autres adaptateurs
function search (user_names, regions, startdate, enddate)
# ... hidden code
where_filters = SQLWhereEntity[
SQLWhereExpression ( " lower(user_name) IN ( $( repeat ( " ?, " , length (user_names))[ 1 : end - 1 ] ) ) " , user_names),
SQLWhereExpression ( " date >= ? AND date <= ? " , startdate, enddate)
]
SearchLight . find (UserRecord, where_filters, order = [ " record.date " ])
# ... more hidden code
endDatabase Migrations module CreateTableRecord
import SearchLight . Migrations : create_table, column, primary_key, add_index, drop_table
function up ()
create_table ( :record ) do
[
primary_key ()
column ( :user_uuid , :string , limit = 100 )
column ( :user_name , :string , limit = 100 )
column ( :status , :integer , limit = 4 )
column ( :region , :string , limit = 20 )
column ( :date_of_birth , :string , limit = 100 )
]
end
add_index ( :record , :user_uuid )
add_index ( :record , :user_name )
add_index ( :record , :region )
add_index ( :record , :date_of_birth )
end
function down ()
drop_table ( :record )
end
endModel ValidationsPlus de fonctionnalités de génie comme:
Files Uploads route ( " / " , method = POST) do
if infilespayload ( :yourfile )
write ( filespayload ( :yourfile ))
stat ( filename ( filespayload ( :yourfile )))
else
" No file uploaded "
end
endLogging | Caching | Cookies and Sessions | Docker, Heroku, JuliaHub, etc Integrations | Genie DeployVeuillez contribuer à l'aide de Github Flow. Créez une branche, ajoutez des validations et ouvrez une demande de traction.
Veuillez lire CONTRIBUTING pour plus de détails sur notre CODE OF CONDUCT et le processus de soumission des demandes de traction qui nous est.
Le logo Genie génial a été conçu par Alvaro Casanova
Hoppscoth pour le modèle de structure ReadMe
Genie utilise une multitude de forfaits qui ont été aimablement apportés par la communauté Julia
Ce projet est autorisé en vertu de la licence MIT - voir le fichier LICENSE pour plus de détails.
Si vous appréciez ce projet, veuillez envisager de jouer le? Genie.jl Github Repo. Cela nous aidera à financer nos projets open source.