/Julia.jl

Curated decibans of Julia programming language.

Primary LanguageJuliaOtherNOASSERTION

Julia.jl

Julia.jl aggregates and curates decibans of knowledge resources for programming in Julia, an all-purpose programming language that addresses the needs of high-performance numerical analysis and computational science.


INDEX

For Base packages, check if the package you seek is listed in the built-in package manager on github, or check METADATA for registered Julia packages, then use the built-in package manager to install it after checking the requirements for respective versions. Pkg3.jl is an alpha next-generation package manager for Julia that creates a Manifest.toml file that records the exact versions of each dependency and their transitive dependencies.

To create a package, check out the Julia Package Development Kit and here is a sample Julia package model. The latest interesting package statistics are available at the Julia Package Ecosystem Pulse webpage which mirrors the current core development on github. Abandoned packages that no longer have a maintainer or no longer fit into the Julia oraganization that initially hosted the package are listed in the Julia Archive organisation.

  • AI.md :: Algorithms, DataMining, Data Structures, HMM, ML, NLP, ...
  • API.md :: Language API's - C++, Fortran, Go, Java, JavaScript, MATLAB, Perl, Python, R, ...
  • Biology.md :: Bioinformatics, genomics, agriculture, food science, medicine, genetic engineering, Neuroscience, et. al...
  • DesktopApplications.md :: Front-end client application software, viz. Debuggers, Documentation generators, Desktop User Interface for word processors, GUI spreadsheets, etc..
  • DevOps.md :: DevOps tools for infrastructure management, continuous integration (CI), continuous delivery (CD), package management, release engineering (RE), release management (RM), software configuration management (SCM), Test Driven Development, Sandbox, Functional/ Unit testing,... Quality-related tools, et al..
  • Chemistry.md :: Analytical chemistry, cheminformatics, crystallography, nanochemistry, nuclear chemistry ...
  • DataBase.md :: NoSQL, RDBMS and Middleware API's.
  • Earth-Science.md :: software related to the subcategories of cartography, climatology, geobiology, geochemistry, geography, geoinformatics, geology‎, geophysics‎, geoscience/GIS, geomathematics, meteorology, oceanography, etc...
  • FileIO.md :: File IO (Input/Output) functionality and support for various data types and file formats.
  • Graphics.md :: Plotting, Graphics and other Visualization tools.
  • Hardware.md :: Software for cross-platform hardware, Robotics, and other API libraries.
  • i18n-L10n.md :: Transliteration, Internationalisation (i18n) and Localisation (L10n)
  • Mathematics.md:: Algebra, Geometry,... anything Math related.
  • OpenDataScience.md :: OpenData + OpenScience, Free Data Sets, Reproducible research, et al.
  • Physics.md :: Julia software related to Physics.
  • Programming-Paradigms.md :: Programming Paradigms and language concepts that are used in the type system, data types, etc..
  • Publications.md :: Research Papers (journal and conference publications).
  • Resources.md :: List of community resources, development links, including events, (un)conferences, forums/ meetup groups, NEWS, blogs, cookbooks, cheatsheets, IJulia NoteBooks, and other useful resources.
  • Server.md :: HTTP/Web, Networking, and other server-side utils...
  • Space-Science.md :: Astronomy, Imaging, Planetary and space science related packages.
  • Statistics.md :: Actuarial Science, Finance, economics, stochastic, insurance Statistics, Operations research and Benchmarks and Optimization toolkits....
  • Super-Computing.md :: HPC, Distributed Computing, Cloud computing, Cluster computing, Grid computing, Kernels and architectures like ARM, MIPS, GPU, CUDA, etc...
  • Utilities.md :: Handy toolkits and other general utilities for your Desktop.

DISCLAIMER : As a new language in the scientific computing scene it is frequently in a state of flux due to the addition of new libraries, resulting in frequent changes and page reordering. Since the Julia.jl repo only provides a list (of links) of Julia packages out in the wild, it should not be considered an endorsment of any particular package for software quality, technical features, coding style/organization, etc...


LICENSE

  • COPYRIGHT © 2012-Now SVAKSHA, herewith dual-licensed for the data (ODbL-v1.0+) and the software (AGPLv3+), respectively.
  • The data (aggregated and curated decibans of knowledge resources for Julia language) in this repository (Julia.jl) is released under the Open Database License (ODbL-v1.0). The Open Database License (ODbL) grants anyone the freedom to share, create and adapt the data or database with proper credit attribution as specified in the license and offer any new work under the same terms, and release a public copy if using the new work for commercial purposes.
  • The software used in Julia.jl is released under the AGPLv3 License, and above, as detailed in the LICENSE-AGPLv3.md file.
  • ALL copies and forks of this work must retain the Copyright, respective Licence files for program code (AGPLv3) and data (ODbL) along with this permission notice in all copies or substantial portions of the new work.

The motivation for this change is to make it easier for people to re-use this data as a knowledge resource within a database. For example, julia-observer is a visual tool for browsing through packages that pulls data from Julia.jl, METADATA.jl and various sources. By releasing the website code publicly are an example on how one can build upon or transform the data to benefit the community.

Mirrors


CONTRIBUTE

Contributions to Julia.jl are welcome in the form of pull requests (PR). Here are some guidelines and tips on how to submit a Bug Report (BR) and/or PR:

Guidelines

The Julia community has ethical guidelines aimed at respecting Copyright, Licenses and attribution standards{1} and {2} which you are requested to follow while submitting materials to be listed. Additionally, if you find any material (or code repos) that violates these ethical standards, please file a bug report for their removal from Julia.jl.

BugReport-PullRequest

  1. Add your link as per the top-level Category page within the topic sub-section(s), in alphabetical order, with notes (if any) in the markdown files. Before creating a new top-level tag within the various categories, please check wikipedia or other resources first. If you are unable to decide, discuss it (via a BR, not a PR ;-)).
  2. Then, type julia src/scrape.jl to run the scraper file and commit the db.csv file too.
  3. For broken links or outdated information, submit a bug report (BR), or make the necessary changes and submit a PR. Both are welcome. Please submit separate PR's for each link or change added.
  4. For Documentation and cookbooks, check if it matches the categories listed, else, list it on the Resources.md page.
  5. For those unable to use git, create a github account, then fork the Julia.jl repo on the user interface. Then edit the page by clicking on the "pencil" icon on the markdown page, then click on save and submit a PR. Github does this automatically in 8 steps.

Package Status

Please note that this repo lists packages that are outdated and/or worked on older versions of Julia. These continue to remain listed as its openly available along with the hope that someone may want to continue with the work as a fork as it aligns with their research or work. These comments led to a BR discussing the addition of metadata tags that will enable programmers and package users to easily distinguish the status of various Julia packages that are under various stages of development. Currently, METADATA has a tag system but not all package authors use it, making it harder for lay users to know if the package maintenance is active or not.

Lets experiment with asking package authors and core-commiters to tag their Julia packages on the following criteria :

On a scale of 1 to 5 (1=lowest,..5=highest), please rank your package for,

  • Usability : Does the package do what it says it does? is it easy to figure out? Is the package production-ready and actively maintained (issues/PRs are responded and resolved in a timely manner, and maintenance and testing is at par with Julia release cycles).
  • Quality : Does the package have tests? are there lots of bugs? Do you have good documentation? Can it be used in production environments that expect prompt security patches?
  • Activity : Should a 3rd party user bother to use your library, or is it really only intended to be used by the package author? Let's say, an experimental "throw-away toy repo" whose development has now been abandoned.
  • License : Which software license do you use? If you dont have a license, please state None.