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
Finding what libraries are available for Clojure is predominantly an internet search. There is a lack of central advice as to which of the many libraries available libraries to use and inconsistent opinions often provided.
Whilst there are many commonly used libraries, there are many commonly used alternatives. There are numerous questions in the Clojurians Slack regarding libraries, from those new to Clojure and those more experienced.
Goal
The Practicalli "Which Clojure Library" project would provide a consistent way to find and understand the purpose of Clojure libraries. Each library description would be based on commercial and community experiences, not rely on unfiltered social media content. The community would be able to update aspects of each library description to keep the information as relevant as possible.
Major Features
search for libraries by topic, e.g. web server, routing, html template, etc
consistent information for each library (integration with Git for common project information)
provide rationale, characteristics and usefulness of each project
common stacks and describe their benefits and constraints (in a consistent way)
link to the major libraries that compose the stack
The first phase of the project would provide a website that included the most commonly used libraries, each with a comprehensive description of their purpose and related libraries / stacks.
Library Detail Page
Each Library page should contain
project description: a curated description of the project that clearly defines its purpose e.g similar to some of the work by Freshcode
Project usefulness: an unbiased guide to the library benefits and constraints
Project status: stable, active, deprecated
Project shared repository: url, changelog, stars, followers, software license, status badges, frequency of commits, number of (active) maintainers
Project languages: predominant languages used to create the project
Documentation:
clj-docs available?
curated list of (up to date) tutorials
recommended getting started guide
standards the project provides or uses
code examples (where relevant)
support channels: slack, zulip, discord, etc (highlight active channel)
related libraries and technology stacks
alternatives: libraries providing similar features
community usage statistics: manual use added by community users directly or pulled from shared community user projects
community rating (favourite, ease of use, docs quality)
community comments (heavily moderated)
Which stack
Once libraries are built up to a usable level, start defining stacks that are commonly constructed from those libraries
commonly used stacks by high level architecture
project templates
Identify Clojure libraries
Use tools.deps find-libs and similar tools)
query maven central and clojars
published versions available
software license
Categorise libraries
Identify standard topic categories for libraries and assign each library one or more of the topics
Related Libraries & Stacks
When a user views the details of a library, they see related libraries and technical stacks that use that library
Each related library has a brief definition of its relationship
Register actual use of a library
enable developers to say they actually use the library (optionally identifying commercial use)
manually
scan project dependencies on shared Git repository
Identify commonly used transitive dependencies
Identify common 'helper' libraries to support library and project developers
Clojure Toolbox - mostly effective when searching for a known name, not so useful searching for a topic, e.g web server doesnt include http-kit or manifold as options. No help in deciding which library to use.
The challenge
Finding what libraries are available for Clojure is predominantly an internet search. There is a lack of central advice as to which of the many libraries available libraries to use and inconsistent opinions often provided.
Whilst there are many commonly used libraries, there are many commonly used alternatives. There are numerous questions in the Clojurians Slack regarding libraries, from those new to Clojure and those more experienced.
Goal
The Practicalli "Which Clojure Library" project would provide a consistent way to find and understand the purpose of Clojure libraries. Each library description would be based on commercial and community experiences, not rely on unfiltered social media content. The community would be able to update aspects of each library description to keep the information as relevant as possible.
Major Features
The first phase of the project would provide a website that included the most commonly used libraries, each with a comprehensive description of their purpose and related libraries / stacks.
Library Detail Page
Each Library page should contain
Which stack
Once libraries are built up to a usable level, start defining stacks that are commonly constructed from those libraries
Identify Clojure libraries
Use tools.deps find-libs and similar tools)
Categorise libraries
Identify standard topic categories for libraries and assign each library one or more of the topics
Related Libraries & Stacks
When a user views the details of a library, they see related libraries and technical stacks that use that library
Each related library has a brief definition of its relationship
Register actual use of a library
enable developers to say they actually use the library (optionally identifying commercial use)
Identify commonly used transitive dependencies
Identify common 'helper' libraries to support library and project developers
Additional: Clojure Architecture Patterns & Kata
Common patterns found in Clojure solutions
Related tools
Library sources
The text was updated successfully, but these errors were encountered: