? Der hochproduktive Julia Web Framework
Gebaut mit ❤︎ von Mitwirkenden
Genie.jl ist das Rückgrat des Genie -Frameworks, das einen optimierten und effizienten Workflow für die Entwicklung moderner Webanwendungen bietet. Es baut auf Julias Stärken (hochrangiger, hoher Leistung, dynamisch, jit kompiliert) auf, die eine reichhaltige API und ein leistungsstarkes Toolset für produktive Webentwicklung enthüllt.
Das Genie -Framework besteht aus vier Hauptkomponenten:
Um mehr über Genie zu erfahren, besuchen Sie die Dokumentation und die App Gallery.
Wenn Sie Hilfe bei irgendetwas benötigen, können Sie uns auf Zwietracht finden.
Julia Data Dashboard von Genie angetrieben. App Galerie
? Genie Router: Genie hat eine wirklich mächtige? Router . Übereinstimmung mit Webanfragen an Funktionen, Extrahieren und Einrichten der Variablen der Anforderung und der Ausführungsumgebung sowie Aufrufen der Antwortmethoden. Zu den Funktionen gehören:
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 bietet einen leistungsstarken Workflow für die Kunden-Server-Kommunikation über Websockets
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ? Vorlagen: Integrierte Vorlagen unterstützen HTML , JSON , Markdown , JavaScript Ansichten.
? Authentifizierung: Einfaches Hinzufügen von Datenbank -Backed -Authentifizierung für einen eingeschränkten Bereich einer Website.
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰ Aufgaben: Aufgaben ermöglichen es Ihnen, verschiedene Vorgänge auszuführen und sie mit Crons -Jobs für die Automatisierung anzuschließen
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? Plugin -Ökosystem: Explore Plugins, die von der Community erstellt wurden
? ️ ORM Support: Suchlicht Eine vollständige ORM -Lösung für Genie, Unterstützung von Postgres, MySQL, SQLite und anderen Adaptern
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 ValidationsWeitere Genie -Funktionen wie:
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 DeployBitte tragen Sie bei GitHub Flow bei. Erstellen Sie einen Zweig, fügen Sie Commits hinzu und öffnen Sie eine Pull -Anfrage.
Bitte lesen Sie CONTRIBUTING für unseren CODE OF CONDUCT und den Vorgang zum Senden von Pull -Anfragen an uns.
Das fantastische Genie -Logo wurde von Alvaro Casanova entworfen
Hoppscoth für ReadMe -Strukturvorlage
Genie verwendet eine Vielzahl von Paketen, die freundlicherweise von der Julia -Community beigetragen wurden
Dieses Projekt ist unter der MIT -Lizenz lizenziert - Einzelheiten finden Sie in der LICENSE .
Wenn Sie dieses Projekt genießen, sollten Sie bitte die Hauptrolle in Betracht ziehen? Genie.jl Github Repo. Es wird uns helfen, unsere Open -Source -Projekte zu finanzieren.