? A estrutura da web altamente produtiva Julia
Construído com ❤︎ por colaboradores
Genie.jl é a espinha dorsal da estrutura Genie, que fornece um fluxo de trabalho simplificado e eficiente para o desenvolvimento de aplicativos da Web modernos. Ele se baseia nos pontos fortes de Julia (de alto nível, de alto desempenho, dinâmico, compilado por JIT), expondo uma API rica e um poderoso conjunto de ferramentas para o desenvolvimento produtivo da Web.
O Genie Framework é composto por quatro componentes principais:
Para saber mais sobre Genie, visite a documentação e a galeria de aplicativos.
Se precisar de ajuda com qualquer coisa, poderá nos encontrar na discórdia.
Julia Data Painel Powerd by Genie. Galeria de App
? Genie Router: Genie tem um realmente poderoso? Router . Combinando solicitações da Web às funções, extraindo e configurando as variáveis da solicitação e o ambiente de execução e invocando os métodos de resposta. Os recursos incluem:
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 fornece um poderoso fluxo de trabalho para a comunicação cliente-servidor sobre os websockets
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ? Modelo: Modelos internos Suporte para visualizações HTML , JSON , Markdown , JavaScript .
? Autenticação: Fácil de adicionar autenticação com base no banco de dados para a área restrita de um site.
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰ Tarefas: as tarefas permitem executar várias operações e conectá -las com trabalhos de Crons para automação
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? EcoSystem de plug -in: Explore os plug -ins construídos pela comunidade como genialenticação, genialeautoroadel, genialização e mais
? ️ ORM Suporte: Explore a pesquisa de busca uma solução ORM completa para o Genie, apoiando o PostGres, MySQL, SQLite e outros 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 ValidationsMais recursos de gênio 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 DeployContribua usando o fluxo do GitHub. Crie uma filial, adicione cometidos e abra uma solicitação de tração.
Leia CONTRIBUTING para obter detalhes sobre nosso CODE OF CONDUCT e o processo para enviar solicitações de puxar para nós.
O Awesome Genie Logo foi projetado por Alvaro Casanova
HoppScoth para o modelo de estrutura de leitura
Genie usa uma infinidade de pacotes que foram gentilmente contribuídos pela comunidade Julia
Este projeto está licenciado sob a licença do MIT - consulte o arquivo LICENSE para obter detalhes.
Se você gosta deste projeto, considere estrelar o? Genie.jl Github Repo. Isso nos ajudará a financiar nossos projetos de código aberto.