Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
straight-shoota committed May 9, 2019
0 parents commit 96497a3
Show file tree
Hide file tree
Showing 54 changed files with 980 additions and 0 deletions.
21 changes: 21 additions & 0 deletions LICENSE
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2018-2019 Johannes Müller

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
50 changes: 50 additions & 0 deletions README.md
@@ -0,0 +1,50 @@
This is the shard catalog for https://shardbox.org

This repository contains a list of categories and the shards in each category.
For shardbox it provides both a taxonomy and a way to recognize new shards.
The shardbox database is regularly synced with the definitions of this catalog.

# Contributing

Pull requests against this repo are welcome.

You can use this to announce new shards to shardbox.org.

# Format

The catalog is contained in `./catalog` forlder. It contains a `.yml` file for each category.

Every category the following properties:

* `name` (string, required): Human-readable name of the category
* `slug` (string, implicit): Computer-readable name of the category, implict from the file name
* `description` (string, optional): Optional description
* `shards` (sequence, required): List of shard entries

Each shard entry requires exactly one reference to the shards canonical repository.
It is expressed as a mapping from a resolver to an url used for that resolver.
For example `github: shardbox/shardbox-core`
This is the same as defining dependencies in a `shard.yml` file (see [specification](https://github.com/crystal-lang/shards/blob/master/SPEC.md#dependencies)).
All resolvers supported by `shards` are supported, except for `path` (because it's not publicly resolvable).

Optional properties:

* `description` (string, optional): Description of the shard
* `mirror` (sequence, optional): A list of current repository mappings for the same shard
* `legacy` (sequence, optional): A list of discontinued repository mappings for the same shard

`mirror` and `legacy` are a list of repository mappings pointing to alternate sources
for this shard. `mirror` describes currently valid alternatives and `legacy`
discontinued repo references.

The reason for these properties is that the same shard can be available from different
sources and other shards can use these different repositories as dependencies (including historical releases).
When different repositories reference the *same* shard, they should show up as one.

Example:
```yaml
- github: kemalcr/kemal
description: Lightning Fast, Super Simple web framework. Inspired by Sinatra
legacy:
- github: sdogruyol/kemal
```
44 changes: 44 additions & 0 deletions catalog/Algorithms_and_Data_structures.yml
@@ -0,0 +1,44 @@
---
name: Algorithms and Data structures
shards:
- github: chenkovsky/aho_corasick
description: AhoCorasick algorithm
- github: spider-gazelle/bisect
description: Inserting values into a sorted array
- github: elorest/bitfields
description: Pure Crystal implementation of BitFields. Handles encoding/decoding
of bytes.
- github: philnash/crotp
description: HOTP and TOTP implementation for two factor authentication
- github: MakeNowJust/crystal-diff
description: A Crystal sequence differencing implementation
- github: abvdasker/crystal-linked-list
description: Implementation of Linked List
- github: unn4m3d/crystaledge
description: A pure Vector Math library
- github: TobiasGSmollett/crystalg
description: A Generic Algorithm Library
- github: jtomschroeder/crystalline
description: A collection of containers and algorithms
- github: drujensen/delimiter_tree
description: A tree structure that is built using a delimiter
- github: tcrouch/edits.cr
description: Collection of edit distance algorithms
- github: mettuaditya/graphlb
description: Collection of graph datastructure and algorithms
- github: TobiasGSmollett/hash_ring
description: An Implementation of Consistent Hash Ring
- github: Sija/ksuid.cr
description: K-Sortable Globally Unique IDs
- github: mccallofthewild/markov
description: Build Markov Chains and run Markov Processes
- github: tcrouch/multiset.cr
description: Implementation of a multiset
- github: kuende/murmur3
description: Implementation of Murmur3 hash algorithm used by Cassandra
- github: obsidian/oak
description: A flexible Radix Tree implementation
- github: luislavena/radix
description: Radix Tree implementation
- github: johnjansen/ternary_search_tree
description: Ternary Search Tree
5 changes: 5 additions & 0 deletions catalog/Api_Builders.yml
@@ -0,0 +1,5 @@
---
name: Api Builders
shards:
- github: blocknotes/kemal-rest-api
description: A library to create RESTful API with Kemal
5 changes: 5 additions & 0 deletions catalog/Blockchain.yml
@@ -0,0 +1,5 @@
---
name: Blockchain
shards:
- github: SushiChain/SushiChain
description: A custom blockchain platform
17 changes: 17 additions & 0 deletions catalog/CLI_Builders.yml
@@ -0,0 +1,17 @@
---
name: CLI Builders
shards:
- github: jwaldrip/admiral.cr
description: A robust DSL for writing command line interfaces
- github: mosop/cli
description: Library for building command-line interface applications
- github: j8r/clicr
description: ' A simple declarative command line interface builder'
- github: at-grandpa/clim
description: Slim command line interface builder
- github: mrrooijen/commander
description: Command-line interface builder
- github: f/completion
description: Easy command line completion engine
- github: mosop/optarg
description: Yet another library for parsing command-line options and arguments
14 changes: 14 additions & 0 deletions catalog/CLI_Utils.yml
@@ -0,0 +1,14 @@
---
name: CLI Utils
shards:
- github: j8r/cride
description: A light CLI text editor/IDE
- github: TPei/progress_bar.cr
description: A simple and customizable progress bar
- github: epoch/tallboy
description: Generate ASCII character tables with support for spanning cells over
multiple columns
- github: benoist/terminal_table.cr
description: Simple ASCII table generator
- git: https://git.sceptique.eu/Sceptique/todo
description: Todo list working in command line
45 changes: 45 additions & 0 deletions catalog/C_bindings.yml
@@ -0,0 +1,45 @@
---
name: C bindings
shards:
- github: TamasSzekeres/asound-cr
description: Bindings for ALSA/libasound
- github: TamasSzekeres/cairo-cr
description: Bindings for [Cairo](https://cairographics.org/) graphics library
- github: ysbaddaden/clang.cr
description: Libclang bindings
- github: vonKingsley/crass
description: Bindings for libsass
- github: maiha/crt.cr
description: Bindings for libncursesw and crt
- github: ruivieira/crystal-gsl
description: GNU Scientific Library bindings
- github: blocknotes/curl-crystal
description: Bindings for [libcurl](https://curl.haxx.se/libcurl/)
- github: jessedoyle/duktape.cr
description: Bindings for the [Duktape](https://github.com/svaarala/duktape) javascript
engine
- github: Sija/gphoto2.cr
description: Bindings for the [libgphoto2](http://www.gphoto.org/) library
- github: olbat/icu.cr
description: Bindings for the [ICU](http://site.icu-project.org/) library
- github: splattael/libnotify.cr
description: Bindings for Libnotify
- github: maiha/pcap.cr
description: Bindings for libpcap
- github: chris-huxtable/pledge.cr
description: Bindings for OpenBSD's `pledge(2)`
- github: ysbaddaden/posix
description: POSIX/C bindings
- github: mjago/soundfile
description: Bindings for [libsndfile](http://www.mega-nerd.com/libsndfile/) library
- github: spider-gazelle/ssh2.cr
description: Bindings for libssh2 library
- github: chris-huxtable/syslog.cr
description: Bindings for `syslog`
- github: andrewsuzuki/termbox-crystal
description: Bindings and extension library for [termbox](https://github.com/nsf/termbox)
(terminal UI library)
- github: TamasSzekeres/x11-cr
description: X11 bindings
- github: woodruffw/x_do.cr
description: Bindings for libxdo ([`xdotool`](https://github.com/jordansissel/xdotool))
13 changes: 13 additions & 0 deletions catalog/Caching.yml
@@ -0,0 +1,13 @@
---
name: Caching
shards:
- github: crystal-community/bloom_filter
description: Implementation of Bloom filter
- github: marceloboeira/bojack
description: A non-reliable in-memory key-value store
- github: samueleaton/cache-hash
description: A key/value store where entries expire after a specified interval
- github: comandeo/crystal-memcached
description: Implementation of a memcached client
- github: CodeSteak/Nuummite
description: A tiny persistent embedded key-value store
7 changes: 7 additions & 0 deletions catalog/Code_Analysis_and_Metrics.yml
@@ -0,0 +1,7 @@
---
name: Code Analysis and Metrics
shards:
- github: veelenga/ameba
description: A static code analysis tool
- github: Groogy/trashman
description: A simple memory profiler for Crystal applications
11 changes: 11 additions & 0 deletions catalog/Configuration.yml
@@ -0,0 +1,11 @@
---
name: Configuration
shards:
- github: gdotdesign/cr-dotenv
description: Loads .env file
- github: philnash/envyable.cr
description: ' A simple YAML to ENV config loader'
- github: luckyframework/habitat
description: Type safe configuration for your classes and modules
- github: icyleaf/totem
description: Load and parse a configuration in JSON, YAML, dotenv formats
22 changes: 22 additions & 0 deletions catalog/Converters.yml
@@ -0,0 +1,22 @@
---
name: Converters
shards:
- github: Sija/base62.cr
description: Base62 encoder/decoder, well suited for url-shortening
- github: crystal-money/money
description: Handling money and currency conversion with ease (almost complete port
of [RubyMoney](https://github.com/RubyMoney/money))
- github: dorkrawk/moola
description: Library for dealing with money and conversion (inspired by [RubyMoney](https://github.com/RubyMoney/money))
- github: SuperPaintman/ms
description: Library to easily convert various time formats to milliseconds and
milliseconds to human readable format
- github: straight-shoota/sass.cr
description: Compile SASS/SCSS to CSS ([libsass](https://github.com/sass/libsass/)
binding)
- github: vladfaust/time_format.cr
description: Convert time in human readable format with ease
- github: izniburak/turkish-number
description: Turn integers into the Turkish words
- github: blocknotes/wkhtmltopdf-crystal
description: Bindings / wrapper for libwkhtmltox (HTML to PDF / image converter)
22 changes: 22 additions & 0 deletions catalog/Data_Formats.yml
@@ -0,0 +1,22 @@
---
name: Data Formats
shards:
- github: spider-gazelle/bindata
description: Binary data parser helper with an [ASN.1](https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)
parser
- github: chris-huxtable/config.cr
description: Easy to use configuration format parser
- github: c910335/crinder
description: Class based json renderer
- github: chris-huxtable/front_matter.cr
description: Separates a files front matter from its content
- github: delef/geoip2.cr
description: GeoIP2 reader
- github: impatienttraveller/json-tools
description: An implementation of JSON Patch and Pointer RFC's
- github: delef/maxminddb.cr
description: MaxMindDB reader
- github: crystal-community/toml.cr
description: TOML parser
- github: colstrom/zq
description: Command-line ZPL processor
7 changes: 7 additions & 0 deletions catalog/Data_Generators.yml
@@ -0,0 +1,7 @@
---
name: Data Generators
shards:
- github: askn/faker
description: A library for generating fake data
- github: splattael/hashids.cr
description: A library to generate YouTube-like ids from one or many numbers
33 changes: 33 additions & 0 deletions catalog/Database_Drivers_Clients.yml
@@ -0,0 +1,33 @@
---
name: Database Drivers/Clients
shards:
- github: TechMagister/couchdb.cr
description: CouchDB client
- github: crystal-lang/crystal-db
description: Common db api
- github: puppetpies/crystal-monetdb-libmapi
description: Bindings for MonetDB
- github: crystal-lang/crystal-mysql
description: MySQL connector for Crystal
- github: will/crystal-pg
description: A Postgres driver
legacy:
- github: asterite/crystal-pg
- github: stefanwille/crystal-redis
description: Full featured Redis client
- github: kingsleyh/crystal-rethinkdb
description: Driver for RethinkDB / RebirthDB
- github: crystal-lang/crystal-sqlite3
description: SQLite3 bindings
- github: measurechina/eventql-crystal
description: EventQL driver
- github: crystal-community/leveldb
description: Crystal bindings for LevelDB
- github: ambercommunity/mongo.cr
description: Binding for MongoDB C driver
legacy:
github: datanoise/mongo.cr
- github: maiha/rocksdb.cr
description: RocksDB client
- github: vladfaust/tarantool-crystal
description: Tarantool driver
12 changes: 12 additions & 0 deletions catalog/Database_Tools.yml
@@ -0,0 +1,12 @@
---
name: Database Tools
shards:
- github: Crecto/crecto-admin
description: Admin dashboard for Crecto and your database
- github: juanedi/micrate
description: Database migration tool
- github: vladfaust/migrate.cr
description: A simpler database migration tool with transactions
- github: aisrael/migro
description: A database migration tool that allows migrations to be specified in
either YAML or raw SQL
15 changes: 15 additions & 0 deletions catalog/Development_Tools.yml
@@ -0,0 +1,15 @@
---
name: Development Tools
shards:
- github: f/guardian
description: File change watcher for Crystal and Non-Crystal libs
- github: faustinoaq/kemal-watcher
description: Kemal plugin to watch files and live-reload the browser
- github: samueleaton/sentry
description: Watches src files, rebuilds/reruns application on file changes
- github: faustinoaq/sentry-run
description: Reload code changes using Sentry.run
- github: diggersheep/warden
description: Watches files, run command and a git command if succeed on file changes
- github: faustinoaq/watcher
description: Watch file changes using File.stat
13 changes: 13 additions & 0 deletions catalog/Email.yml
@@ -0,0 +1,13 @@
---
name: Email
shards:
- github: luckyframework/carbon
description: Fun, testable, and adapter-based email library
- github: arcage/crystal-email
description: Simple e-mail sending library
- git: https://git.sceptique.eu/Sceptique/CrystalEmail
description: A RFC compliant Email validator
- github: tijn/devmail
description: A combined SMTP/POP3-server with volatile mail storage
- github: dlanileonardo/sendgrid.cr
description: Simple Sendgrid Client
9 changes: 9 additions & 0 deletions catalog/Environment_Management.yml
@@ -0,0 +1,9 @@
---
name: Environment Management
shards:
- github: marciogm/asdf-crystal
description: Plugin for asdf version manager
- github: pine/crenv
description: Crystal version manager
- github: maiha/rcm.cr
description: Redis Cluster Manager

0 comments on commit 96497a3

Please sign in to comment.