Skip to content

Commit 6a4fcb1

Browse files
committed
Merge branch 'main' into non-std_docslink
2 parents 675dd2f + b5f4990 commit 6a4fcb1

5 files changed

Lines changed: 131 additions & 15 deletions

File tree

docs/comparisons/math/einsum.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ From README.md of this package:
2222
From README.md of this package:
2323
> 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
2424
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+
2537
### TensorOperations.jl
2638
{{badge TensorOperations}}
2739

@@ -39,4 +51,4 @@ Tortilla.jl was announced in JuliaCon2018, but the package is not public yet.
3951
* [For Loops 2.0: Index Notation and the Future of Tensor Compilers | Willow Ahrens | JuliaCon 2018](https://www.youtube.com/watch?v=Rp7sTl9oPNI)
4052

4153
## Star History
42-
{{star_history Tullio Einsum OMEinsum TensorOperations TensorCast ArrayMeta}}
54+
{{star_history Tullio Einsum OMEinsum TensorOperations TensorCast ArrayMeta Tensorial}}

docs/comparisons/utility/package_templates.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,59 @@ There are several ways to create a Julia packages from templates.
1111
### PkgTemplates.jl
1212
{{badge PkgTemplates}}
1313

14+
> Create new Julia packages, the easy way
15+
1416
This package is the the most popular package generator.
1517

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+
1632
### PkgSkeleton.jl
1733
{{badge PkgSkeleton}}
1834

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.
46+
47+
48+
### BestieTemplate.jl
49+
{{badge BestieTemplate}}
50+
51+
[BestieTemplate.jl](https://github.com/JuliaBesties/BestieTemplate.jl)
52+
53+
> Template for Julia Programming Language packages using the copier engine.
54+
55+
A newer package generator announced at JuliaCon2024.
56+
57+
The main features of this package/template are:
58+
59+
* It provides a curated (opinionated) list of tools and best practices for Julia package development
60+
* It can be applied and reapplied to existing packages, allowing the updates in the template to be imported into the package
61+
62+
It is a bit heavy as it is based on the [copier](https://copier.readthedocs.io/en/stable/) python package.
63+
64+
All of the options are listed [here](https://juliabesties.github.io/BestieTemplate.jl/stable/30-questions/#Table-format).
65+
66+
###
2067

2168
### Pkg.jl
2269
{{badge Pkg}}
@@ -39,4 +86,4 @@ Here are some examples:
3986
* [JuliaSmoothOptimizers/JSOTemplate.jl](https://github.com/JuliaSmoothOptimizers/JSOTemplate.jl)
4087

4188
## Star History
42-
{{star_history PkgTemplates PkgSkeleton Pkg}}
89+
{{star_history PkgTemplates PkgSkeleton Pkg BestieTemplate PackageMaker}}

docs/comparisons/web/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ title = "About Web"
44

55
# About Web
66
This is a meta-section for domains related to webpage generation. This currently includes pages for:
7-
- [Static Websites](../static_websites#staticwebsites)
8-
- [Web apps](../web_apps#web_apps)
7+
- [Static Websites](static_websites)
8+
- [Web apps](web_apps)

docs/comparisons/web/web_apps.md

Lines changed: 62 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,81 @@ A web app is an interactive website. There are several Julia packages that help
1212
## Overview
1313
The most popular by far is [Genie.jl](#geniejl). This is the recommended package for most users when it comes to building web apps.
1414

15-
{{star_history Genie Oxygen Bonito}}
15+
{{star_history Genie Oxygen Bonito Mongoose}}
1616

1717
## Packages
1818

1919
### Genie.jl
2020
{{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
2322
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.
2536

2637
### Oxygen.jl
2738
{{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.
44+
45+
Features:
46+
47+
* Straightforward routing
48+
* Real-time Metrics Dashboard
49+
* Auto-generated swagger documentation
50+
* Out-of-the-box JSON serialization & deserialization (customizable)
51+
* Type definition support for path parameters
52+
* Request Extractors
53+
* Application Context
54+
* Multiple Instance Support
55+
* Multithreading support
56+
* Websockets, Streaming, and Server-Sent Events
57+
* Cron Scheduling (on endpoints & functions)
58+
* 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+
3067

3168
### Bonito.jl
3269
{{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.
3588

3689
## Other
3790
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.
3891

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.

docs/utils.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const PKGINFOS = [
1616
PkgInfo(pkgname="TensorOperations", username="Jutho", branch="master"),
1717
PkgInfo(pkgname="TensorCast", username="mcabbott", branch="master"),
1818
PkgInfo(pkgname="ArrayMeta", username="shashi", branch="master", docslink=nothing, codecovlink=nothing, registered=false),
19+
PkgInfo(pkgname="Tensorial", username="KeitaNakamura", branch="main"),
1920
# PkgInfo(pkgname="Tortilla", username="willow-ahrens"),
2021
PkgInfo(pkgname="Chain", username="jkrumbiegel", branch="master", docslink=nothing, codecovlink=nothing),
2122
PkgInfo(pkgname="Lazy", username="MikeInnes", branch="master", docslink=nothing, codecovlink=nothing),
@@ -26,6 +27,7 @@ const PKGINFOS = [
2627
PkgInfo(pkgname="Genie", username="GenieFramework", branch="master", codecovlink=nothing, docslink="https://GenieFramework.github.io/Genie.jl/dev/"),
2728
PkgInfo(pkgname="Oxygen", username="OxygenFramework", branch="master"),
2829
PkgInfo(pkgname="Bonito", username="SimonDanisch", branch="master", docslink="https://SimonDanisch.github.io/Bonito.jl/stable/"),
30+
PkgInfo(pkgname="Mongoose", username="AbrJA", branch="main", docslink="https://abrja.github.io/Mongoose.jl/dev/"),
2931
PkgInfo(pkgname="Plots", username="JuliaPlots", branch="master", docslink="https://docs.juliaplots.org/", codecovlink=nothing),
3032
PkgInfo(pkgname="Makie", username="MakieOrg", branch="master", docslink="https://docs.makie.org/", codecovlink=nothing),
3133
PkgInfo(pkgname="AlgebraOfGraphics", username="MakieOrg", branch="master", codecovlink=nothing),
@@ -150,8 +152,10 @@ const PKGINFOS = [
150152
# PkgInfo(pkgname="LopShelve", username="machkouroke", docslink="https://lopuniverse.me/LopShelve.jl/"),
151153
PkgInfo(pkgname="PeriodicTable", username="JuliaPhysics", branch="master", docslink=nothing),
152154
PkgInfo(pkgname="PhysicalConstants", username="JuliaPhysics", branch="master"),
153-
PkgInfo(pkgname="Mendeleev", username="Eben60", branch="main", docslink="https://eben60.github.io/Mendeleev.jl/"),
155+
PkgInfo(pkgname="Mendeleev", username="Eben60", branch="main", docslink="https://eben60.github.io/Mendeleev.jl"),
154156
PkgInfo(pkgname="IsotopeTable", username="Gregstrq", branch="main", docslink=nothing),
157+
PkgInfo(pkgname="BestieTemplate", username="JuliaBesties", branch="main"),
158+
PkgInfo(pkgname="PackageMaker", username="Eben60", branch="main", docslink="https://eben60.github.io/PackageMaker.jl"),
155159
]
156160

157161
function get_pkginfo(pkgname)

0 commit comments

Comments
 (0)