? El marco web de Julia altamente productivo
Construido con ❤︎ por contribuyentes
Genie.jl es la columna vertebral del Marco Genie, que proporciona un flujo de trabajo simplificado y eficiente para desarrollar aplicaciones web modernas. Se basa en las fortalezas de Julia (de alto nivel, de alto rendimiento, dinámico, compilado JIT), exponiendo una API rica y un poderoso conjunto de herramientas para el desarrollo web productivo.
El marco de Genie está compuesto por cuatro componentes principales:
Para obtener más información sobre Genie, visite la documentación y la Galería de aplicaciones.
Si necesita ayuda con algo, puede encontrarnos en Discord.
Panel de datos de Julia impulsado por Genie. Galería de aplicaciones
? Genie Router: ¿Genie tiene un realmente poderoso? Router . Solicitudes web coincidentes con las funciones, extrayendo y configurando las variables de la solicitud y el entorno de ejecución, e invocando los métodos de respuesta. Las características incluyen:
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 proporciona un poderoso flujo de trabajo para la comunicación cliente-servidor a través de WebSockets
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ? Templating: Soporte de plantillas incorporadas para HTML , JSON , Markdown , Vistas JavaScript .
? Autenticación: autenticación de base de datos fácil de agregar para el área restringida de un sitio web.
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰ Tareas: las tareas le permiten realizar varias operaciones y engancharlas con trabajos de Crons para la automatización
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? Ecosistema de complementos: explorar complementos construidos por la comunidad, como la genieautenticación, la genieautoreload, la genieautorización y más
" Soporte de ORM: Explore Searchlight Una solución ORM completa para genio, admitir Postgres, MySQL, SQLite y otros adaptadores
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 ValidationsMás características de genio como:
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 DeployContribuya con el flujo GitHub. Cree una sucursal, agregue confirmaciones y abra una solicitud de extracción.
Lea CONTRIBUTING para obtener detalles sobre nuestro CODE OF CONDUCT y el proceso para enviarnos solicitudes de extracción.
El increíble logotipo de Genie fue diseñado por Álvaro Casanova
Hoppscoth para la plantilla de estructura ReadMe
Genie utiliza una multitud de paquetes que han sido amablemente aportados por la comunidad de Julia
Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo LICENSE para obtener más detalles.
Si disfruta de este proyecto, considere protagonizar el? Genie.jl Github Repo. Nos ayudará a financiar nuestros proyectos de código abierto.