You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/comparisons/math/einsum.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,18 @@ From README.md of this package:
22
22
From README.md of this package:
23
23
> This is a repository for the Google Summer of Code project on Differentiable Tensor Networks. It implements one function that both computer scientists and physicists love, the Einstein summation
24
24
25
+
### Tensorial.jl
26
+
{{badge Tensorial}}
27
+
From the README of this package:
28
+
29
+
> [Tensorial.jl](https://github.com/KeitaNakamura/Tensorial.jl/) provides statically sized Tensor type that is compatible with `AbstractArray`, similar to `SArray` from [StaticArrays.jl](https://github.com/JuliaArrays/StaticArrays.jl). In addition to supporting basic AbstractArray operations, the package offers a tensorial interface and several advanced features:
30
+
>
31
+
> * Contraction, tensor product (⊗), and a flexible `@einsum` macro for Einstein summation convention
32
+
> * A `@Symmetry` macro to define the tensor symmetries, eliminating unnecessary calculations
33
+
> * Automatic differentiation via `gradient` and `hessian` functions, leveraging [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl)
34
+
> * Performance comparable to SArray
35
+
36
+
25
37
### TensorOperations.jl
26
38
{{badge TensorOperations}}
27
39
@@ -39,4 +51,4 @@ Tortilla.jl was announced in JuliaCon2018, but the package is not public yet.
39
51
*[For Loops 2.0: Index Notation and the Future of Tensor Compilers | Willow Ahrens | JuliaCon 2018](https://www.youtube.com/watch?v=Rp7sTl9oPNI)
Copy file name to clipboardExpand all lines: docs/comparisons/utility/package_templates.md
+49-2Lines changed: 49 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,59 @@ There are several ways to create a Julia packages from templates.
11
11
### PkgTemplates.jl
12
12
{{badge PkgTemplates}}
13
13
14
+
> Create new Julia packages, the easy way
15
+
14
16
This package is the the most popular package generator.
15
17
18
+
It helps you set up the package structure, git repository, CI automations for building documentation, running tests, checking code coverage and more.
19
+
20
+
### PackageMaker.jl
21
+
{{badge PackageMaker}}
22
+
23
+
> GUI for PkgTemplates.jl: "Creating new Julia packages, the easy way" - made a bit simpler.
24
+
25
+
From the package README:
26
+
27
+
This package allows you to create either a new package or a new project.
28
+
It implements a subset of [PkgTemplates.jl](https://github.com/JuliaCI/PkgTemplates.jl) features (which subset hopefully covers >90% of its use cases).
29
+
It also adds a couple of features of its own, e.g. ability to create Julia projects, or adding dependencies to projects or packages being created.
30
+
Being a GUI app, it should be mostly self-explanatory, and external links for more information are provided from the GUI, too.
31
+
16
32
### PkgSkeleton.jl
17
33
{{badge PkgSkeleton}}
18
34
19
-
PkgSkeleton is another package generator.
35
+
> Generate Julia package skeletons using a simple template system
36
+
37
+
From the package README:
38
+
39
+
Julia package for creating new packages and updating existing ones, following common practices and workflow recommendations.
40
+
41
+
Design principles:
42
+
43
+
* Keep it simple: do nothing more than substitute strings into templates, with a few safeguards. This keeps the code simple: currently less than 300 LOC without docstrings. For me, this covers 99% of the use cases; the rest I edit manually.
44
+
* Tread ligthly: don't modify uncommitted files (unless asked to, but really don't do that), or files with the same content (to preserve timestamps).
45
+
* Assume that tooling for packages will keep changing, make it easy to update.
Copy file name to clipboardExpand all lines: docs/comparisons/web/web_apps.md
+62-9Lines changed: 62 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,28 +12,81 @@ A web app is an interactive website. There are several Julia packages that help
12
12
## Overview
13
13
The most popular by far is [Genie.jl](#geniejl). This is the recommended package for most users when it comes to building web apps.
14
14
15
-
{{star_history Genie Oxygen Bonito}}
15
+
{{star_history Genie Oxygen Bonito Mongoose}}
16
16
17
17
## Packages
18
18
19
19
### Genie.jl
20
20
{{badge Genie}}
21
-
The most popular web app framework is [Genie.jl](https://github.com/GenieFramework/Genie.jl). As of September 2023 it has more than 2000 stars, making it one of the most starred Julia packages out there. It describes itself as follows:
22
-
> Genie is a full-stack web framework that provides a streamlined and efficient workflow for developing modern web applications. It builds on Julia's strengths (high-level, high-performance, dynamic, JIT compiled), exposing a rich API and a powerful toolset for productive web development.
21
+
> 🧞The highly productive Julia web framework
23
22
24
-
It also has a no-code GUI for building web apps, which is rather easy to use, with a licence price.
23
+
The most popular web app framework is [Genie.jl](https://github.com/GenieFramework/Genie.jl). As of September 2023 it has more than 2000 stars, making it one of the most starred Julia packages out there.
24
+
25
+
From the package README:
26
+
27
+
[Genie.jl](https://github.com/GenieFramework/Genie.jl) is the backbone of the Genie Framework, which provides a streamlined and efficient workflow for developing modern web applications.
28
+
It builds on Julia's strengths (high-level, high-performance, dynamic, JIT compiled), exposing a rich API and a powerful toolset for productive web development.
29
+
30
+
Genie Framework is composed of four main components:
31
+
32
+
*[Genie.jl](https://github.com/GenieFramework/Genie.jl): the server backend, providing features for routing, templating, authentication, and much more.
33
+
*[Stipple.jl](https://github.com/GenieFramework/Stipple.jl): a package for building reactive UIs with a simple and powerful low-code API in pure Julia.
34
+
*[Genie Builder](https://learn.genieframework.com/docs/genie-builder/quick-start): a VSCode plugin for building UIs visually in a drag-and-drop editor.
35
+
*[SearchLight.jl](https://github.com/GenieFramework/SearchLight.jl): a complete ORM solution, enabling easy database integration without writing SQL queries.
25
36
26
37
### Oxygen.jl
27
38
{{badge Oxygen}}
28
-
Then there is Oxygen.jl. It describes itself as
29
-
> A micro-framework built on top of the HTTP.jl library. Breathe easy knowing you can quickly spin up a web server with abstractions you're already familiar with.
39
+
> 💨 A breath of fresh air for programming web apps in Julia
40
+
41
+
From the package README:
42
+
43
+
A micro-framework built on top of the HTTP.jl library. Breathe easy knowing you can quickly spin up a web server with abstractions you're already familiar with.
* Middleware chaining (at the application, router, and route levels)
59
+
* Static & Dynamic file hosting
60
+
* Hot reloads with Revise.jl
61
+
* Templating Support
62
+
* Plotting Support
63
+
* Protocol Buffer Support
64
+
* Route tagging
65
+
* Repeat tasks
66
+
30
67
31
68
### Bonito.jl
32
69
{{badge Bonito}}
33
-
Finally, there is [Bonito.jl](https://github.com/SimonDanisch/Bonito.jl). It describes itself as follows:
34
-
> Easy way of building interactive applications from Julia. Uses Hyperscript to create HTML descriptions, and allows to execute Javascript & building of widgets. It also supports an offline mode, that exports your interactive app to a folder, and optionally records a statemap for all UI elements, so that a running Julia process isn't necessary anymore.
70
+
> Serving JS to the browser
71
+
72
+
[Bonito.jl](https://github.com/SimonDanisch/Bonito.jl) is mainly developed by [SimonDanisch](https://github.com/SimonDanisch) who is also the main contributer to [Makie.jl](https://github.com/MakieOrg/Makie.jl).
73
+
74
+
From the package README:
75
+
76
+
Easy way of building interactive applications from Julia. Uses Hyperscript to create HTML descriptions, and allows to execute Javascript & building of widgets. It also supports an offline mode, that exports your interactive app to a folder, and optionally records a statemap for all UI elements, so that a running Julia process isn't necessary anymore.
77
+
78
+
### Mongoose.jl
79
+
{{badge Mongoose}}
80
+
81
+
> Julia package to build simple web servers
82
+
83
+
From the package README:
84
+
85
+
[Mongoose.jl](https://github.com/AbrJA/Mongoose.jl) is a Julia package that provides a lightweight and efficient interface for building HTTP servers and web applications.
86
+
It leverages the [Mongoose C](https://github.com/cesanta/mongoose) library to deliver fast, embeddable web server capabilities directly from Julia code.
87
+
The package is designed for simplicity and ease of use. With Mongoose.jl, users can define routes, handle HTTP requests, and serve dynamic or static content with minimal setup.
35
88
36
89
## Other
37
90
It is worth mentioning the github organization [JuliaWeb](https://github.com/JuliaWeb). JuliaWeb hosts a number of repositories which implement the tools needed to build web apps.
38
91
39
-
This section is not yet written well. If you have used or developed Julia packages in this domain, we would love your help! Please visit the ["Contributing" section](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io#contributing) of the [repository that hosts this website](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io) for information on contributions.
92
+
If you have used or developed Julia packages in this domain, we would love your help! Please visit the ["Contributing" section](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io#contributing) of the [repository that hosts this website](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io) for information on contributions.
0 commit comments