diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml new file mode 100644 index 00000000..5d249d4a --- /dev/null +++ b/.github/workflows/update.yaml @@ -0,0 +1,21 @@ +name: Update gh-pages branch on alire.ada.dev +on: + schedule: + - cron: '0 0 * * *' + push: +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: alire-project/setup-alire@v1 + - run: bash -v update-gh-pages.sh + env: + GITHUB_TOKEN: ${{ secrets.GH_PAGES_UPDATE }} + + - name: Request Github Pages build job + run: >- + curl -L -X POST + -H "Content-Type: application/json" + -H "Authorization: token ${{ secrets.GH_PAGES_UPDATE }}" + "https://api.github.com/repos/${{ github.repository }}/pages/builds" diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..49448204 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata +Gemfile.lock diff --git a/404.html b/404.html new file mode 100644 index 00000000..c472b4ea --- /dev/null +++ b/404.html @@ -0,0 +1,24 @@ +--- +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..e7611006 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +alire.ada.dev \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..75618b5b --- /dev/null +++ b/Gemfile @@ -0,0 +1,33 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +#gem "jekyll", "~> 3.8.6" + +# gem "devlopr" + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins + +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.6" +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do + gem "tzinfo", "~> 1.2" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform? + diff --git a/README.md b/README.md new file mode 100644 index 00000000..f61b2896 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# alire.ada.dev +Official website for the project diff --git a/_badges/aaa.json b/_badges/aaa.json new file mode 100644 index 00000000..4cbad2bb --- /dev/null +++ b/_badges/aaa.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aaa" +version: "0.2.6" +--- diff --git a/_badges/ada_fuse.json b/_badges/ada_fuse.json new file mode 100644 index 00000000..08c78ead --- /dev/null +++ b/_badges/ada_fuse.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_fuse" +version: "1.0.1" +--- diff --git a/_badges/ada_language_server.json b/_badges/ada_language_server.json new file mode 100644 index 00000000..c36d7770 --- /dev/null +++ b/_badges/ada_language_server.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_language_server" +version: "23.0.0" +--- diff --git a/_badges/ada_lua.json b/_badges/ada_lua.json new file mode 100644 index 00000000..e04779da --- /dev/null +++ b/_badges/ada_lua.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_lua" +version: "0.1.0" +--- diff --git a/_badges/ada_pretty.json b/_badges/ada_pretty.json new file mode 100644 index 00000000..385b0932 --- /dev/null +++ b/_badges/ada_pretty.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_pretty" +version: "1.0.0" +--- diff --git a/_badges/ada_toml.json b/_badges/ada_toml.json new file mode 100644 index 00000000..f23bd50e --- /dev/null +++ b/_badges/ada_toml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_toml" +version: "0.3.0" +--- diff --git a/_badges/ada_voxel_space_demo.json b/_badges/ada_voxel_space_demo.json new file mode 100644 index 00000000..0cbb0510 --- /dev/null +++ b/_badges/ada_voxel_space_demo.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_voxel_space_demo" +version: "1.0.1" +--- diff --git a/_badges/adabots.json b/_badges/adabots.json new file mode 100644 index 00000000..01f069b0 --- /dev/null +++ b/_badges/adabots.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adabots" +version: "1.7.0" +--- diff --git a/_badges/adacl.json b/_badges/adacl.json new file mode 100644 index 00000000..7ef41869 --- /dev/null +++ b/_badges/adacl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adacl" +version: "5.15.1" +--- diff --git a/_badges/adayaml.json b/_badges/adayaml.json new file mode 100644 index 00000000..d61e046b --- /dev/null +++ b/_badges/adayaml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adayaml" +version: "0.3.0" +--- diff --git a/_badges/adl_middleware.json b/_badges/adl_middleware.json new file mode 100644 index 00000000..3a284e55 --- /dev/null +++ b/_badges/adl_middleware.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adl_middleware" +version: "0.2.0" +--- diff --git a/_badges/admpfr.json b/_badges/admpfr.json new file mode 100644 index 00000000..44bb3c21 --- /dev/null +++ b/_badges/admpfr.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "admpfr" +version: "4.1.0+20220920" +--- diff --git a/_badges/ado.json b/_badges/ado.json new file mode 100644 index 00000000..8561762a --- /dev/null +++ b/_badges/ado.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado" +version: "2.4.0" +--- diff --git a/_badges/ado_all.json b/_badges/ado_all.json new file mode 100644 index 00000000..f282c53d --- /dev/null +++ b/_badges/ado_all.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_all" +version: "2.4.0" +--- diff --git a/_badges/ado_mysql.json b/_badges/ado_mysql.json new file mode 100644 index 00000000..ebc1e1d3 --- /dev/null +++ b/_badges/ado_mysql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_mysql" +version: "2.4.0" +--- diff --git a/_badges/ado_postgresql.json b/_badges/ado_postgresql.json new file mode 100644 index 00000000..377c6241 --- /dev/null +++ b/_badges/ado_postgresql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_postgresql" +version: "2.4.0" +--- diff --git a/_badges/ado_sqlite.json b/_badges/ado_sqlite.json new file mode 100644 index 00000000..b0aff124 --- /dev/null +++ b/_badges/ado_sqlite.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_sqlite" +version: "2.4.0" +--- diff --git a/_badges/aflex.json b/_badges/aflex.json new file mode 100644 index 00000000..3c76fe2f --- /dev/null +++ b/_badges/aflex.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aflex" +version: "1.6.0" +--- diff --git a/_badges/agpl.json b/_badges/agpl.json new file mode 100644 index 00000000..fbe0a8ae --- /dev/null +++ b/_badges/agpl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "agpl" +version: "1.0.0" +--- diff --git a/_badges/aicwl.json b/_badges/aicwl.json new file mode 100644 index 00000000..922edff1 --- /dev/null +++ b/_badges/aicwl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aicwl" +version: "3.24.1" +--- diff --git a/_badges/ajunitgen.json b/_badges/ajunitgen.json new file mode 100644 index 00000000..4ae4656b --- /dev/null +++ b/_badges/ajunitgen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ajunitgen" +version: "1.0.1" +--- diff --git a/_badges/akt.json b/_badges/akt.json new file mode 100644 index 00000000..ade2726d --- /dev/null +++ b/_badges/akt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "akt" +version: "1.4.0" +--- diff --git a/_badges/alire-badge.json b/_badges/alire-badge.json new file mode 100644 index 00000000..3f740f62 --- /dev/null +++ b/_badges/alire-badge.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "" +version: "Alire" +--- diff --git a/_badges/anagram.json b/_badges/anagram.json new file mode 100644 index 00000000..4c3bd758 --- /dev/null +++ b/_badges/anagram.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "anagram" +version: "1.0.0" +--- diff --git a/_badges/ansiada.json b/_badges/ansiada.json new file mode 100644 index 00000000..4c9aae72 --- /dev/null +++ b/_badges/ansiada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ansiada" +version: "1.0.0" +--- diff --git a/_badges/apdf.json b/_badges/apdf.json new file mode 100644 index 00000000..1c875078 --- /dev/null +++ b/_badges/apdf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "apdf" +version: "6.0.0" +--- diff --git a/_badges/are.json b/_badges/are.json new file mode 100644 index 00000000..4dbf0353 --- /dev/null +++ b/_badges/are.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "are" +version: "1.3.0" +--- diff --git a/_badges/asfml.json b/_badges/asfml.json new file mode 100644 index 00000000..86ab0e83 --- /dev/null +++ b/_badges/asfml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "asfml" +version: "2.5.4" +--- diff --git a/_badges/ashell.json b/_badges/ashell.json new file mode 100644 index 00000000..dfb10829 --- /dev/null +++ b/_badges/ashell.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ashell" +version: "1.3.0" +--- diff --git a/_badges/asis.json b/_badges/asis.json new file mode 100644 index 00000000..986749eb --- /dev/null +++ b/_badges/asis.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "asis" +version: "2019.0.0" +--- diff --git a/_badges/atari_atr_tools.json b/_badges/atari_atr_tools.json new file mode 100644 index 00000000..970bd203 --- /dev/null +++ b/_badges/atari_atr_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "atari_atr_tools" +version: "1.5.0" +--- diff --git a/_badges/atari_exe_tools.json b/_badges/atari_exe_tools.json new file mode 100644 index 00000000..552050e5 --- /dev/null +++ b/_badges/atari_exe_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "atari_exe_tools" +version: "1.5.0" +--- diff --git a/_badges/atomic.json b/_badges/atomic.json new file mode 100644 index 00000000..dd07fa5b --- /dev/null +++ b/_badges/atomic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "atomic" +version: "0.5.0" +--- diff --git a/_badges/audio_base.json b/_badges/audio_base.json new file mode 100644 index 00000000..47745c1d --- /dev/null +++ b/_badges/audio_base.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "audio_base" +version: "1.0.0" +--- diff --git a/_badges/audio_wavefiles.json b/_badges/audio_wavefiles.json new file mode 100644 index 00000000..8398f5a8 --- /dev/null +++ b/_badges/audio_wavefiles.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "audio_wavefiles" +version: "2.0.0" +--- diff --git a/_badges/aunit.json b/_badges/aunit.json new file mode 100644 index 00000000..6a7365b5 --- /dev/null +++ b/_badges/aunit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aunit" +version: "23.0.0" +--- diff --git a/_badges/automate.json b/_badges/automate.json new file mode 100644 index 00000000..dbef8ed0 --- /dev/null +++ b/_badges/automate.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "automate" +version: "2.2.2" +--- diff --git a/_badges/avltrees.json b/_badges/avltrees.json new file mode 100644 index 00000000..756f3aa5 --- /dev/null +++ b/_badges/avltrees.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "avltrees" +version: "0.1.0" +--- diff --git a/_badges/avrada_examples.json b/_badges/avrada_examples.json new file mode 100644 index 00000000..91d80b61 --- /dev/null +++ b/_badges/avrada_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "avrada_examples" +version: "1.0.1" +--- diff --git a/_badges/avrada_lib.json b/_badges/avrada_lib.json new file mode 100644 index 00000000..6f3c6aa5 --- /dev/null +++ b/_badges/avrada_lib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "avrada_lib" +version: "2.1.0" +--- diff --git a/_badges/avrada_mcu.json b/_badges/avrada_mcu.json new file mode 100644 index 00000000..552c045b --- /dev/null +++ b/_badges/avrada_mcu.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "avrada_mcu" +version: "2.2.0" +--- diff --git a/_badges/avrada_rts.json b/_badges/avrada_rts.json new file mode 100644 index 00000000..34d31a02 --- /dev/null +++ b/_badges/avrada_rts.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "avrada_rts" +version: "2.0.1" +--- diff --git a/_badges/awa.json b/_badges/awa.json new file mode 100644 index 00000000..737ba052 --- /dev/null +++ b/_badges/awa.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "awa" +version: "2.4.0" +--- diff --git a/_badges/awa_unit.json b/_badges/awa_unit.json new file mode 100644 index 00000000..71175db7 --- /dev/null +++ b/_badges/awa_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "awa_unit" +version: "2.4.0" +--- diff --git a/_badges/aws.json b/_badges/aws.json new file mode 100644 index 00000000..7ef1d87d --- /dev/null +++ b/_badges/aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aws" +version: "23.0.0" +--- diff --git a/_badges/axmpp.json b/_badges/axmpp.json new file mode 100644 index 00000000..2c7933d0 --- /dev/null +++ b/_badges/axmpp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "axmpp" +version: "1.0.0" +--- diff --git a/_badges/ayacc.json b/_badges/ayacc.json new file mode 100644 index 00000000..c9377cb6 --- /dev/null +++ b/_badges/ayacc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ayacc" +version: "1.4.0" +--- diff --git a/_badges/b2ssum.json b/_badges/b2ssum.json new file mode 100644 index 00000000..5b1a28c6 --- /dev/null +++ b/_badges/b2ssum.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "b2ssum" +version: "0.1.3" +--- diff --git a/_badges/bar_codes.json b/_badges/bar_codes.json new file mode 100644 index 00000000..886647cf --- /dev/null +++ b/_badges/bar_codes.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bar_codes" +version: "2.0.0" +--- diff --git a/_badges/basalt.json b/_badges/basalt.json new file mode 100644 index 00000000..8a32d5fd --- /dev/null +++ b/_badges/basalt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "basalt" +version: "0.3.0" +--- diff --git a/_badges/base64.json b/_badges/base64.json new file mode 100644 index 00000000..38a93825 --- /dev/null +++ b/_badges/base64.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "base64" +version: "1.0.1" +--- diff --git a/_badges/bb_pico_bsp.json b/_badges/bb_pico_bsp.json new file mode 100644 index 00000000..a30b157d --- /dev/null +++ b/_badges/bb_pico_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bb_pico_bsp" +version: "0.1.0" +--- diff --git a/_badges/bbqueue.json b/_badges/bbqueue.json new file mode 100644 index 00000000..9600d51f --- /dev/null +++ b/_badges/bbqueue.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbqueue" +version: "0.3.1" +--- diff --git a/_badges/bingada.json b/_badges/bingada.json new file mode 100644 index 00000000..8d7e2f18 --- /dev/null +++ b/_badges/bingada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bingada" +version: "1.0.0" +--- diff --git a/_badges/blake2s.json b/_badges/blake2s.json new file mode 100644 index 00000000..18002109 --- /dev/null +++ b/_badges/blake2s.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "blake2s" +version: "0.1.3" +--- diff --git a/_badges/brackelib.json b/_badges/brackelib.json new file mode 100644 index 00000000..624c068e --- /dev/null +++ b/_badges/brackelib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "brackelib" +version: "0.0.2" +--- diff --git a/_badges/c_strings.json b/_badges/c_strings.json new file mode 100644 index 00000000..0a790f6f --- /dev/null +++ b/_badges/c_strings.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "c_strings" +version: "1.0.0" +--- diff --git a/_badges/canberra_ada.json b/_badges/canberra_ada.json new file mode 100644 index 00000000..cac50145 --- /dev/null +++ b/_badges/canberra_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "canberra_ada" +version: "2.0.2" +--- diff --git a/_badges/cashe.json b/_badges/cashe.json new file mode 100644 index 00000000..f43afddb --- /dev/null +++ b/_badges/cashe.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cashe" +version: "1.0.0" +--- diff --git a/_badges/cbsg.json b/_badges/cbsg.json new file mode 100644 index 00000000..a4c803cc --- /dev/null +++ b/_badges/cbsg.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cbsg" +version: "0.0.1" +--- diff --git a/_badges/chacha20.json b/_badges/chacha20.json new file mode 100644 index 00000000..13dcc2b6 --- /dev/null +++ b/_badges/chacha20.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "chacha20" +version: "0.1.0" +--- diff --git a/_badges/chests.json b/_badges/chests.json new file mode 100644 index 00000000..20abd8d3 --- /dev/null +++ b/_badges/chests.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "chests" +version: "0.1.1" +--- diff --git a/_badges/clic.json b/_badges/clic.json new file mode 100644 index 00000000..e1e847b9 --- /dev/null +++ b/_badges/clic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "clic" +version: "0.2.1" +--- diff --git a/_badges/cmd_ada.json b/_badges/cmd_ada.json new file mode 100644 index 00000000..c588ddef --- /dev/null +++ b/_badges/cmd_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cmd_ada" +version: "0.0.1" +--- diff --git a/_badges/cobs.json b/_badges/cobs.json new file mode 100644 index 00000000..d0dda808 --- /dev/null +++ b/_badges/cobs.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cobs" +version: "1.1.0" +--- diff --git a/_badges/cortex_m.json b/_badges/cortex_m.json new file mode 100644 index 00000000..7e5ae582 --- /dev/null +++ b/_badges/cortex_m.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cortex_m" +version: "0.5.0" +--- diff --git a/_badges/curl.json b/_badges/curl.json new file mode 100644 index 00000000..2e7ad054 --- /dev/null +++ b/_badges/curl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "curl" +version: +--- diff --git a/_badges/dashera.json b/_badges/dashera.json new file mode 100644 index 00000000..9ad66d86 --- /dev/null +++ b/_badges/dashera.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dashera" +version: "0.14.0" +--- diff --git a/_badges/dcf.json b/_badges/dcf.json new file mode 100644 index 00000000..28bfc627 --- /dev/null +++ b/_badges/dcf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dcf" +version: "2.0.3" +--- diff --git a/_badges/dependency_graph_extractor.json b/_badges/dependency_graph_extractor.json new file mode 100644 index 00000000..952efb80 --- /dev/null +++ b/_badges/dependency_graph_extractor.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dependency_graph_extractor" +version: "22.0.0" +--- diff --git a/_badges/dg_loada.json b/_badges/dg_loada.json new file mode 100644 index 00000000..fb611ebd --- /dev/null +++ b/_badges/dg_loada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dg_loada" +version: "1.4.3" +--- diff --git a/_badges/dir_iterators.json b/_badges/dir_iterators.json new file mode 100644 index 00000000..de13c07d --- /dev/null +++ b/_badges/dir_iterators.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dir_iterators" +version: "0.0.4" +--- diff --git a/_badges/dotenv.json b/_badges/dotenv.json new file mode 100644 index 00000000..7153b268 --- /dev/null +++ b/_badges/dotenv.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dotenv" +version: "1.0.0" +--- diff --git a/_badges/dummyserver.json b/_badges/dummyserver.json new file mode 100644 index 00000000..7ed3d0a2 --- /dev/null +++ b/_badges/dummyserver.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dummyserver" +version: "1.0.0" +--- diff --git a/_badges/dynamo.json b/_badges/dynamo.json new file mode 100644 index 00000000..000b1106 --- /dev/null +++ b/_badges/dynamo.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dynamo" +version: "1.4.0" +--- diff --git a/_badges/eagle_lander.json b/_badges/eagle_lander.json new file mode 100644 index 00000000..feb0bf94 --- /dev/null +++ b/_badges/eagle_lander.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "eagle_lander" +version: "1.2.0" +--- diff --git a/_badges/edc_client.json b/_badges/edc_client.json new file mode 100644 index 00000000..c1dd0d62 --- /dev/null +++ b/_badges/edc_client.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "edc_client" +version: "1.5.1" +--- diff --git a/_badges/eeprom_i2c.json b/_badges/eeprom_i2c.json new file mode 100644 index 00000000..a9a41fe3 --- /dev/null +++ b/_badges/eeprom_i2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "eeprom_i2c" +version: "6.0.0" +--- diff --git a/_badges/elada.json b/_badges/elada.json new file mode 100644 index 00000000..b8d8502c --- /dev/null +++ b/_badges/elada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "elada" +version: "1.8.6" +--- diff --git a/_badges/elevator.json b/_badges/elevator.json new file mode 100644 index 00000000..825fbf61 --- /dev/null +++ b/_badges/elevator.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "elevator" +version: "1.0.0" +--- diff --git a/_badges/emacs_ada_mode.json b/_badges/emacs_ada_mode.json new file mode 100644 index 00000000..32a9841e --- /dev/null +++ b/_badges/emacs_ada_mode.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_ada_mode" +version: "8.0.5" +--- diff --git a/_badges/emacs_gpr_mode.json b/_badges/emacs_gpr_mode.json new file mode 100644 index 00000000..d9ec852a --- /dev/null +++ b/_badges/emacs_gpr_mode.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_gpr_mode" +version: "1.0.3" +--- diff --git a/_badges/emacs_gpr_query.json b/_badges/emacs_gpr_query.json new file mode 100644 index 00000000..a3535eda --- /dev/null +++ b/_badges/emacs_gpr_query.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_gpr_query" +version: "1.0.1" +--- diff --git a/_badges/emacs_wisi.json b/_badges/emacs_wisi.json new file mode 100644 index 00000000..d2ab1d17 --- /dev/null +++ b/_badges/emacs_wisi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_wisi" +version: "4.2.0" +--- diff --git a/_badges/emacs_wisitoken_grammar_mode.json b/_badges/emacs_wisitoken_grammar_mode.json new file mode 100644 index 00000000..2db00df8 --- /dev/null +++ b/_badges/emacs_wisitoken_grammar_mode.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_wisitoken_grammar_mode" +version: "1.3.0" +--- diff --git a/_badges/embedded_components.json b/_badges/embedded_components.json new file mode 100644 index 00000000..8d473a24 --- /dev/null +++ b/_badges/embedded_components.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "embedded_components" +version: "0.2.0" +--- diff --git a/_badges/emojis.json b/_badges/emojis.json new file mode 100644 index 00000000..0f703389 --- /dev/null +++ b/_badges/emojis.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emojis" +version: "1.0.1" +--- diff --git a/_badges/endianness.json b/_badges/endianness.json new file mode 100644 index 00000000..0bd81c53 --- /dev/null +++ b/_badges/endianness.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "endianness" +version: "1.0.0" +--- diff --git a/_badges/epoll.json b/_badges/epoll.json new file mode 100644 index 00000000..70d304f8 --- /dev/null +++ b/_badges/epoll.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "epoll" +version: "0.1.1" +--- diff --git a/_badges/esp_idf.json b/_badges/esp_idf.json new file mode 100644 index 00000000..62ec49a2 --- /dev/null +++ b/_badges/esp_idf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "esp_idf" +version: "5.0.2-1" +--- diff --git a/_badges/euler_tools.json b/_badges/euler_tools.json new file mode 100644 index 00000000..59c7eb91 --- /dev/null +++ b/_badges/euler_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "euler_tools" +version: "1.2.1" +--- diff --git a/_badges/evdev.json b/_badges/evdev.json new file mode 100644 index 00000000..6db74200 --- /dev/null +++ b/_badges/evdev.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "evdev" +version: "2.0.2" +--- diff --git a/_badges/ews.json b/_badges/ews.json new file mode 100644 index 00000000..88af324e --- /dev/null +++ b/_badges/ews.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ews" +version: "1.11.0" +--- diff --git a/_badges/excel_writer.json b/_badges/excel_writer.json new file mode 100644 index 00000000..79d93b21 --- /dev/null +++ b/_badges/excel_writer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "excel_writer" +version: "18.0.0" +--- diff --git a/_badges/fastpbkdf2_ada.json b/_badges/fastpbkdf2_ada.json new file mode 100644 index 00000000..d0d751d1 --- /dev/null +++ b/_badges/fastpbkdf2_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "fastpbkdf2_ada" +version: "2.0.0" +--- diff --git a/_badges/felix.json b/_badges/felix.json new file mode 100644 index 00000000..d596a4dc --- /dev/null +++ b/_badges/felix.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "felix" +version: "0.2.0" +--- diff --git a/_badges/florist.json b/_badges/florist.json new file mode 100644 index 00000000..72a1eeb0 --- /dev/null +++ b/_badges/florist.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "florist" +version: "6.0.0" +--- diff --git a/_badges/florist_blady.json b/_badges/florist_blady.json new file mode 100644 index 00000000..146721c5 --- /dev/null +++ b/_badges/florist_blady.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "florist_blady" +version: "6.0.0" +--- diff --git a/_badges/freetypeada.json b/_badges/freetypeada.json new file mode 100644 index 00000000..a65ad3f1 --- /dev/null +++ b/_badges/freetypeada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "freetypeada" +version: "0.1.0" +--- diff --git a/_badges/garlic.json b/_badges/garlic.json new file mode 100644 index 00000000..24c7e171 --- /dev/null +++ b/_badges/garlic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "garlic" +version: "6.0.1" +--- diff --git a/_badges/geo_coords.json b/_badges/geo_coords.json new file mode 100644 index 00000000..e02d7dc4 --- /dev/null +++ b/_badges/geo_coords.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "geo_coords" +version: "1.0.0" +--- diff --git a/_badges/geste.json b/_badges/geste.json new file mode 100644 index 00000000..27ce1924 --- /dev/null +++ b/_badges/geste.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "geste" +version: "1.1.0" +--- diff --git a/_badges/geste_examples.json b/_badges/geste_examples.json new file mode 100644 index 00000000..987eddc6 --- /dev/null +++ b/_badges/geste_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "geste_examples" +version: "1.0.1" +--- diff --git a/_badges/get_password.json b/_badges/get_password.json new file mode 100644 index 00000000..e7ab8065 --- /dev/null +++ b/_badges/get_password.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "get_password" +version: "1.0.0-rc" +--- diff --git a/_badges/getopt.json b/_badges/getopt.json new file mode 100644 index 00000000..b47be5e2 --- /dev/null +++ b/_badges/getopt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "getopt" +version: "2.0.0" +--- diff --git a/_badges/gid.json b/_badges/gid.json new file mode 100644 index 00000000..16a960a9 --- /dev/null +++ b/_badges/gid.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gid" +version: "10.0.0" +--- diff --git a/_badges/glut.json b/_badges/glut.json new file mode 100644 index 00000000..dd7881c3 --- /dev/null +++ b/_badges/glut.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "glut" +version: +--- diff --git a/_badges/gnat_arm_elf.json b/_badges/gnat_arm_elf.json new file mode 100644 index 00000000..82d5dbe7 --- /dev/null +++ b/_badges/gnat_arm_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_arm_elf" +version: "13.1.0" +--- diff --git a/_badges/gnat_avr_elf.json b/_badges/gnat_avr_elf.json new file mode 100644 index 00000000..3a1152fd --- /dev/null +++ b/_badges/gnat_avr_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_avr_elf" +version: "13.1.0" +--- diff --git a/_badges/gnat_external.json b/_badges/gnat_external.json new file mode 100644 index 00000000..920d279f --- /dev/null +++ b/_badges/gnat_external.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_external" +version: +--- diff --git a/_badges/gnat_math_extensions.json b/_badges/gnat_math_extensions.json new file mode 100644 index 00000000..682c4129 --- /dev/null +++ b/_badges/gnat_math_extensions.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_math_extensions" +version: "1.1.0" +--- diff --git a/_badges/gnat_native.json b/_badges/gnat_native.json new file mode 100644 index 00000000..52d74c56 --- /dev/null +++ b/_badges/gnat_native.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_native" +version: "13.1.0" +--- diff --git a/_badges/gnat_riscv64_elf.json b/_badges/gnat_riscv64_elf.json new file mode 100644 index 00000000..11436710 --- /dev/null +++ b/_badges/gnat_riscv64_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_riscv64_elf" +version: "13.1.0" +--- diff --git a/_badges/gnatcoll.json b/_badges/gnatcoll.json new file mode 100644 index 00000000..b4d4f7ce --- /dev/null +++ b/_badges/gnatcoll.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_gmp.json b/_badges/gnatcoll_gmp.json new file mode 100644 index 00000000..05f994cf --- /dev/null +++ b/_badges/gnatcoll_gmp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_gmp" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_iconv.json b/_badges/gnatcoll_iconv.json new file mode 100644 index 00000000..512ea786 --- /dev/null +++ b/_badges/gnatcoll_iconv.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_iconv" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_lzma.json b/_badges/gnatcoll_lzma.json new file mode 100644 index 00000000..1c81c287 --- /dev/null +++ b/_badges/gnatcoll_lzma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_lzma" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_omp.json b/_badges/gnatcoll_omp.json new file mode 100644 index 00000000..2951cad3 --- /dev/null +++ b/_badges/gnatcoll_omp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_omp" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_postgres.json b/_badges/gnatcoll_postgres.json new file mode 100644 index 00000000..86f06e1f --- /dev/null +++ b/_badges/gnatcoll_postgres.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_postgres" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_python.json b/_badges/gnatcoll_python.json new file mode 100644 index 00000000..e0813a7c --- /dev/null +++ b/_badges/gnatcoll_python.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_python" +version: "21.0.0" +--- diff --git a/_badges/gnatcoll_python3.json b/_badges/gnatcoll_python3.json new file mode 100644 index 00000000..cb3d8f42 --- /dev/null +++ b/_badges/gnatcoll_python3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_python3" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_readline.json b/_badges/gnatcoll_readline.json new file mode 100644 index 00000000..7c7b8e31 --- /dev/null +++ b/_badges/gnatcoll_readline.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_readline" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_sql.json b/_badges/gnatcoll_sql.json new file mode 100644 index 00000000..a2ac8e73 --- /dev/null +++ b/_badges/gnatcoll_sql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_sql" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_sqlite.json b/_badges/gnatcoll_sqlite.json new file mode 100644 index 00000000..1cb89a14 --- /dev/null +++ b/_badges/gnatcoll_sqlite.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_sqlite" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_syslog.json b/_badges/gnatcoll_syslog.json new file mode 100644 index 00000000..141e98fb --- /dev/null +++ b/_badges/gnatcoll_syslog.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_syslog" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_xref.json b/_badges/gnatcoll_xref.json new file mode 100644 index 00000000..5916cd33 --- /dev/null +++ b/_badges/gnatcoll_xref.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_xref" +version: "23.0.0" +--- diff --git a/_badges/gnatcoll_zlib.json b/_badges/gnatcoll_zlib.json new file mode 100644 index 00000000..8e02955d --- /dev/null +++ b/_badges/gnatcoll_zlib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_zlib" +version: "23.0.0" +--- diff --git a/_badges/gnatcov.json b/_badges/gnatcov.json new file mode 100644 index 00000000..d3ceb46c --- /dev/null +++ b/_badges/gnatcov.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcov" +version: "22.0.1" +--- diff --git a/_badges/gnatdist_garlic.json b/_badges/gnatdist_garlic.json new file mode 100644 index 00000000..3ef6a132 --- /dev/null +++ b/_badges/gnatdist_garlic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatdist_garlic" +version: "6.0.1" +--- diff --git a/_badges/gnatdoc.json b/_badges/gnatdoc.json new file mode 100644 index 00000000..7006bf08 --- /dev/null +++ b/_badges/gnatdoc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatdoc" +version: "23.0.0" +--- diff --git a/_badges/gnatprove.json b/_badges/gnatprove.json new file mode 100644 index 00000000..4114371d --- /dev/null +++ b/_badges/gnatprove.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatprove" +version: "12.1.1" +--- diff --git a/_badges/gnoga.json b/_badges/gnoga.json new file mode 100644 index 00000000..786fc3bd --- /dev/null +++ b/_badges/gnoga.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnoga" +version: "2.1.2" +--- diff --git a/_badges/gpr_unit_provider.json b/_badges/gpr_unit_provider.json new file mode 100644 index 00000000..b82873a2 --- /dev/null +++ b/_badges/gpr_unit_provider.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gpr_unit_provider" +version: "23.0.0" +--- diff --git a/_badges/gprbuild.json b/_badges/gprbuild.json new file mode 100644 index 00000000..70fae8fb --- /dev/null +++ b/_badges/gprbuild.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gprbuild" +version: "22.0.1" +--- diff --git a/_badges/gtkada.json b/_badges/gtkada.json new file mode 100644 index 00000000..8f32b78b --- /dev/null +++ b/_badges/gtkada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gtkada" +version: "23.0.0" +--- diff --git a/_badges/gwindows.json b/_badges/gwindows.json new file mode 100644 index 00000000..150ce2d1 --- /dev/null +++ b/_badges/gwindows.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gwindows" +version: +--- diff --git a/_badges/hac.json b/_badges/hac.json new file mode 100644 index 00000000..65ce6ef4 --- /dev/null +++ b/_badges/hac.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hac" +version: "0.26.0" +--- diff --git a/_badges/hal.json b/_badges/hal.json new file mode 100644 index 00000000..51b15ea9 --- /dev/null +++ b/_badges/hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hal" +version: "0.3.0" +--- diff --git a/_badges/hangman.json b/_badges/hangman.json new file mode 100644 index 00000000..4c3bca53 --- /dev/null +++ b/_badges/hangman.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hangman" +version: "1.0.0" +--- diff --git a/_badges/hello.json b/_badges/hello.json new file mode 100644 index 00000000..8a74f279 --- /dev/null +++ b/_badges/hello.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hello" +version: "1.0.2" +--- diff --git a/_badges/hmac.json b/_badges/hmac.json new file mode 100644 index 00000000..bd679f0a --- /dev/null +++ b/_badges/hmac.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hmac" +version: "2.0.0" +--- diff --git a/_badges/honki_tonks_zivilisationen.json b/_badges/honki_tonks_zivilisationen.json new file mode 100644 index 00000000..f03a295d --- /dev/null +++ b/_badges/honki_tonks_zivilisationen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "honki_tonks_zivilisationen" +version: "0.5.1590-dev" +--- diff --git a/_badges/hungarian.json b/_badges/hungarian.json new file mode 100644 index 00000000..1f13beff --- /dev/null +++ b/_badges/hungarian.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hungarian" +version: "1.0.0" +--- diff --git a/_badges/ini_files.json b/_badges/ini_files.json new file mode 100644 index 00000000..8c7280b8 --- /dev/null +++ b/_badges/ini_files.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ini_files" +version: "10.0.0" +--- diff --git a/_badges/inotify.json b/_badges/inotify.json new file mode 100644 index 00000000..c7c5b260 --- /dev/null +++ b/_badges/inotify.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "inotify" +version: "2.0.1" +--- diff --git a/_badges/iso.json b/_badges/iso.json new file mode 100644 index 00000000..a4766c8f --- /dev/null +++ b/_badges/iso.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "iso" +version: "2.0.0" +--- diff --git a/_badges/iterators.json b/_badges/iterators.json new file mode 100644 index 00000000..d97d8c19 --- /dev/null +++ b/_badges/iterators.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "iterators" +version: "0.2.0" +--- diff --git a/_badges/itsybitsy_bsp.json b/_badges/itsybitsy_bsp.json new file mode 100644 index 00000000..a7ed7fe2 --- /dev/null +++ b/_badges/itsybitsy_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "itsybitsy_bsp" +version: "0.0.4" +--- diff --git a/_badges/itsybitsy_rp2040_bsp.json b/_badges/itsybitsy_rp2040_bsp.json new file mode 100644 index 00000000..247cb772 --- /dev/null +++ b/_badges/itsybitsy_rp2040_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "itsybitsy_rp2040_bsp" +version: "0.2.0" +--- diff --git a/_badges/j2ada.json b/_badges/j2ada.json new file mode 100644 index 00000000..c05f54bd --- /dev/null +++ b/_badges/j2ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "j2ada" +version: "1.4.2" +--- diff --git a/_badges/json.json b/_badges/json.json new file mode 100644 index 00000000..8050b16d --- /dev/null +++ b/_badges/json.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "json" +version: "5.0.3" +--- diff --git a/_badges/jupyter_kernel.json b/_badges/jupyter_kernel.json new file mode 100644 index 00000000..7e767aff --- /dev/null +++ b/_badges/jupyter_kernel.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "jupyter_kernel" +version: "1.0.0" +--- diff --git a/_badges/jwt.json b/_badges/jwt.json new file mode 100644 index 00000000..e7d1305a --- /dev/null +++ b/_badges/jwt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "jwt" +version: "1.0.0" +--- diff --git a/_badges/keypadder.json b/_badges/keypadder.json new file mode 100644 index 00000000..a2486b18 --- /dev/null +++ b/_badges/keypadder.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "keypadder" +version: "0.3.0" +--- diff --git a/_badges/keystoreada.json b/_badges/keystoreada.json new file mode 100644 index 00000000..ea802da0 --- /dev/null +++ b/_badges/keystoreada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "keystoreada" +version: "1.4.0" +--- diff --git a/_badges/labs_radar.json b/_badges/labs_radar.json new file mode 100644 index 00000000..77acbe0e --- /dev/null +++ b/_badges/labs_radar.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "labs_radar" +version: "0.2.0" +--- diff --git a/_badges/labs_solar_system.json b/_badges/labs_solar_system.json new file mode 100644 index 00000000..ca74e9e3 --- /dev/null +++ b/_badges/labs_solar_system.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "labs_solar_system" +version: "1.0.0" +--- diff --git a/_badges/labs_standalone.json b/_badges/labs_standalone.json new file mode 100644 index 00000000..8ea471b9 --- /dev/null +++ b/_badges/labs_standalone.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "labs_standalone" +version: "0.1.0" +--- diff --git a/_badges/lace.json b/_badges/lace.json new file mode 100644 index 00000000..18ac3d1b --- /dev/null +++ b/_badges/lace.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace" +version: "0.1.0" +--- diff --git a/_badges/lace_box2d.json b/_badges/lace_box2d.json new file mode 100644 index 00000000..48600380 --- /dev/null +++ b/_badges/lace_box2d.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_box2d" +version: "0.1.0" +--- diff --git a/_badges/lace_bullet.json b/_badges/lace_bullet.json new file mode 100644 index 00000000..c12f1389 --- /dev/null +++ b/_badges/lace_bullet.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_bullet" +version: "0.1.0" +--- diff --git a/_badges/lace_c_math.json b/_badges/lace_c_math.json new file mode 100644 index 00000000..059a29c5 --- /dev/null +++ b/_badges/lace_c_math.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_c_math" +version: "0.1.0" +--- diff --git a/_badges/lace_collada.json b/_badges/lace_collada.json new file mode 100644 index 00000000..7c4cd835 --- /dev/null +++ b/_badges/lace_collada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_collada" +version: "0.1.0" +--- diff --git a/_badges/lace_gel.json b/_badges/lace_gel.json new file mode 100644 index 00000000..56f9dcea --- /dev/null +++ b/_badges/lace_gel.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_gel" +version: "0.1.0" +--- diff --git a/_badges/lace_gel_animation_demo.json b/_badges/lace_gel_animation_demo.json new file mode 100644 index 00000000..8a431792 --- /dev/null +++ b/_badges/lace_gel_animation_demo.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_gel_animation_demo" +version: "0.1.0" +--- diff --git a/_badges/lace_gel_full_demo.json b/_badges/lace_gel_full_demo.json new file mode 100644 index 00000000..89bd6655 --- /dev/null +++ b/_badges/lace_gel_full_demo.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_gel_full_demo" +version: "0.1.0" +--- diff --git a/_badges/lace_math.json b/_badges/lace_math.json new file mode 100644 index 00000000..50b536f3 --- /dev/null +++ b/_badges/lace_math.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_math" +version: "0.1.0" +--- diff --git a/_badges/lace_opengl.json b/_badges/lace_opengl.json new file mode 100644 index 00000000..a4d9ebdb --- /dev/null +++ b/_badges/lace_opengl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_opengl" +version: "0.1.0" +--- diff --git a/_badges/lace_physics.json b/_badges/lace_physics.json new file mode 100644 index 00000000..7cea0cbc --- /dev/null +++ b/_badges/lace_physics.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_physics" +version: "0.1.0" +--- diff --git a/_badges/lace_shared.json b/_badges/lace_shared.json new file mode 100644 index 00000000..2414400e --- /dev/null +++ b/_badges/lace_shared.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_shared" +version: "0.1.0" +--- diff --git a/_badges/lace_swig.json b/_badges/lace_swig.json new file mode 100644 index 00000000..62e65528 --- /dev/null +++ b/_badges/lace_swig.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_swig" +version: "0.1.0" +--- diff --git a/_badges/lace_xml.json b/_badges/lace_xml.json new file mode 100644 index 00000000..c8e31cc9 --- /dev/null +++ b/_badges/lace_xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lace_xml" +version: "0.1.0" +--- diff --git a/_badges/lal_highlight.json b/_badges/lal_highlight.json new file mode 100644 index 00000000..6a7fc48c --- /dev/null +++ b/_badges/lal_highlight.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lal_highlight" +version: "21.0.0" +--- diff --git a/_badges/langkit_support.json b/_badges/langkit_support.json new file mode 100644 index 00000000..1580c2e4 --- /dev/null +++ b/_badges/langkit_support.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "langkit_support" +version: "23.0.0" +--- diff --git a/_badges/lea.json b/_badges/lea.json new file mode 100644 index 00000000..77dc983f --- /dev/null +++ b/_badges/lea.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lea" +version: +--- diff --git a/_badges/libadalang.json b/_badges/libadalang.json new file mode 100644 index 00000000..dfe578ec --- /dev/null +++ b/_badges/libadalang.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang" +version: "23.0.0" +--- diff --git a/_badges/libadalang2xml.json b/_badges/libadalang2xml.json new file mode 100644 index 00000000..8a04e2a8 --- /dev/null +++ b/_badges/libadalang2xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang2xml" +version: "1.0.0" +--- diff --git a/_badges/libadalang_tools.json b/_badges/libadalang_tools.json new file mode 100644 index 00000000..c6734128 --- /dev/null +++ b/_badges/libadalang_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang_tools" +version: "23.0.0" +--- diff --git a/_badges/libblas.json b/_badges/libblas.json new file mode 100644 index 00000000..07b7c3d7 --- /dev/null +++ b/_badges/libblas.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libblas" +version: +--- diff --git a/_badges/libbullet.json b/_badges/libbullet.json new file mode 100644 index 00000000..5349595f --- /dev/null +++ b/_badges/libbullet.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libbullet" +version: +--- diff --git a/_badges/libcanberra.json b/_badges/libcanberra.json new file mode 100644 index 00000000..5d89ec25 --- /dev/null +++ b/_badges/libcanberra.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libcanberra" +version: +--- diff --git a/_badges/libclntsh.json b/_badges/libclntsh.json new file mode 100644 index 00000000..c36fdaeb --- /dev/null +++ b/_badges/libclntsh.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libclntsh" +version: +--- diff --git a/_badges/libcsfml.json b/_badges/libcsfml.json new file mode 100644 index 00000000..c1aedb5f --- /dev/null +++ b/_badges/libcsfml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libcsfml" +version: +--- diff --git a/_badges/libcurl.json b/_badges/libcurl.json new file mode 100644 index 00000000..51a01252 --- /dev/null +++ b/_badges/libcurl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libcurl" +version: +--- diff --git a/_badges/libegl.json b/_badges/libegl.json new file mode 100644 index 00000000..ea80d363 --- /dev/null +++ b/_badges/libegl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libegl" +version: +--- diff --git a/_badges/libexpat.json b/_badges/libexpat.json new file mode 100644 index 00000000..21beee74 --- /dev/null +++ b/_badges/libexpat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libexpat" +version: +--- diff --git a/_badges/libfbclient.json b/_badges/libfbclient.json new file mode 100644 index 00000000..57e28a70 --- /dev/null +++ b/_badges/libfbclient.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libfbclient" +version: +--- diff --git a/_badges/libfreetype.json b/_badges/libfreetype.json new file mode 100644 index 00000000..e4397d3b --- /dev/null +++ b/_badges/libfreetype.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libfreetype" +version: +--- diff --git a/_badges/libftdi1.json b/_badges/libftdi1.json new file mode 100644 index 00000000..ae47afc3 --- /dev/null +++ b/_badges/libftdi1.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libftdi1" +version: +--- diff --git a/_badges/libfuse.json b/_badges/libfuse.json new file mode 100644 index 00000000..ae24dd40 --- /dev/null +++ b/_badges/libfuse.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libfuse" +version: +--- diff --git a/_badges/libglfw3.json b/_badges/libglfw3.json new file mode 100644 index 00000000..26310bdb --- /dev/null +++ b/_badges/libglfw3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libglfw3" +version: +--- diff --git a/_badges/libgmp.json b/_badges/libgmp.json new file mode 100644 index 00000000..615ed262 --- /dev/null +++ b/_badges/libgmp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgmp" +version: +--- diff --git a/_badges/libgnatdoc.json b/_badges/libgnatdoc.json new file mode 100644 index 00000000..3dadc376 --- /dev/null +++ b/_badges/libgnatdoc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgnatdoc" +version: "23.0.0" +--- diff --git a/_badges/libgnutls.json b/_badges/libgnutls.json new file mode 100644 index 00000000..7c1a5b38 --- /dev/null +++ b/_badges/libgnutls.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgnutls" +version: +--- diff --git a/_badges/libgomp.json b/_badges/libgomp.json new file mode 100644 index 00000000..fccbd18d --- /dev/null +++ b/_badges/libgomp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgomp" +version: +--- diff --git a/_badges/libgpiod.json b/_badges/libgpiod.json new file mode 100644 index 00000000..8cc26fda --- /dev/null +++ b/_badges/libgpiod.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgpiod" +version: +--- diff --git a/_badges/libgpr.json b/_badges/libgpr.json new file mode 100644 index 00000000..5351ad53 --- /dev/null +++ b/_badges/libgpr.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgpr" +version: "23.0.0" +--- diff --git a/_badges/libgpr2.json b/_badges/libgpr2.json new file mode 100644 index 00000000..94c1bba3 --- /dev/null +++ b/_badges/libgpr2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgpr2" +version: "23.0.0" +--- diff --git a/_badges/libgraph_easy_perl.json b/_badges/libgraph_easy_perl.json new file mode 100644 index 00000000..02408cbd --- /dev/null +++ b/_badges/libgraph_easy_perl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgraph_easy_perl" +version: +--- diff --git a/_badges/libgsl.json b/_badges/libgsl.json new file mode 100644 index 00000000..422bd151 --- /dev/null +++ b/_badges/libgsl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgsl" +version: +--- diff --git a/_badges/libgtk3.json b/_badges/libgtk3.json new file mode 100644 index 00000000..4f8f0ab3 --- /dev/null +++ b/_badges/libgtk3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgtk3" +version: +--- diff --git a/_badges/libhello.json b/_badges/libhello.json new file mode 100644 index 00000000..20cffae5 --- /dev/null +++ b/_badges/libhello.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libhello" +version: "1.0.1" +--- diff --git a/_badges/libhidapi.json b/_badges/libhidapi.json new file mode 100644 index 00000000..f100bcc5 --- /dev/null +++ b/_badges/libhidapi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libhidapi" +version: +--- diff --git a/_badges/libi2c.json b/_badges/libi2c.json new file mode 100644 index 00000000..55413e1e --- /dev/null +++ b/_badges/libi2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libi2c" +version: +--- diff --git a/_badges/libiconv.json b/_badges/libiconv.json new file mode 100644 index 00000000..fc4aaaeb --- /dev/null +++ b/_badges/libiconv.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libiconv" +version: +--- diff --git a/_badges/libkeccak.json b/_badges/libkeccak.json new file mode 100644 index 00000000..974e9d93 --- /dev/null +++ b/_badges/libkeccak.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libkeccak" +version: "3.0.0" +--- diff --git a/_badges/liblapack.json b/_badges/liblapack.json new file mode 100644 index 00000000..3f0b3716 --- /dev/null +++ b/_badges/liblapack.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "liblapack" +version: +--- diff --git a/_badges/liblua.json b/_badges/liblua.json new file mode 100644 index 00000000..0c48ee03 --- /dev/null +++ b/_badges/liblua.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "liblua" +version: +--- diff --git a/_badges/liblzma.json b/_badges/liblzma.json new file mode 100644 index 00000000..c557d6d0 --- /dev/null +++ b/_badges/liblzma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "liblzma" +version: +--- diff --git a/_badges/libmariadb.json b/_badges/libmariadb.json new file mode 100644 index 00000000..f93267b4 --- /dev/null +++ b/_badges/libmariadb.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libmariadb" +version: +--- diff --git a/_badges/libmesa.json b/_badges/libmesa.json new file mode 100644 index 00000000..32e17404 --- /dev/null +++ b/_badges/libmesa.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libmesa" +version: +--- diff --git a/_badges/libmpfr.json b/_badges/libmpfr.json new file mode 100644 index 00000000..2e965b78 --- /dev/null +++ b/_badges/libmpfr.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libmpfr" +version: +--- diff --git a/_badges/libmysqlclient.json b/_badges/libmysqlclient.json new file mode 100644 index 00000000..9534ee9a --- /dev/null +++ b/_badges/libmysqlclient.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libmysqlclient" +version: +--- diff --git a/_badges/libopus.json b/_badges/libopus.json new file mode 100644 index 00000000..01188f8a --- /dev/null +++ b/_badges/libopus.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libopus" +version: +--- diff --git a/_badges/libpq.json b/_badges/libpq.json new file mode 100644 index 00000000..3debbdd1 --- /dev/null +++ b/_badges/libpq.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libpq" +version: +--- diff --git a/_badges/libpulse.json b/_badges/libpulse.json new file mode 100644 index 00000000..a4c020eb --- /dev/null +++ b/_badges/libpulse.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libpulse" +version: +--- diff --git a/_badges/libpython2dev.json b/_badges/libpython2dev.json new file mode 100644 index 00000000..00769993 --- /dev/null +++ b/_badges/libpython2dev.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libpython2dev" +version: +--- diff --git a/_badges/libpython3dev.json b/_badges/libpython3dev.json new file mode 100644 index 00000000..741bc3ba --- /dev/null +++ b/_badges/libpython3dev.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libpython3dev" +version: +--- diff --git a/_badges/libreadline.json b/_badges/libreadline.json new file mode 100644 index 00000000..475e6a4c --- /dev/null +++ b/_badges/libreadline.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libreadline" +version: +--- diff --git a/_badges/librtmidi.json b/_badges/librtmidi.json new file mode 100644 index 00000000..062396c6 --- /dev/null +++ b/_badges/librtmidi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "librtmidi" +version: +--- diff --git a/_badges/libsdl2.json b/_badges/libsdl2.json new file mode 100644 index 00000000..4fb45652 --- /dev/null +++ b/_badges/libsdl2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsdl2" +version: +--- diff --git a/_badges/libsdl2_image.json b/_badges/libsdl2_image.json new file mode 100644 index 00000000..02cdfffa --- /dev/null +++ b/_badges/libsdl2_image.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsdl2_image" +version: +--- diff --git a/_badges/libsdl2_ttf.json b/_badges/libsdl2_ttf.json new file mode 100644 index 00000000..c3b4890b --- /dev/null +++ b/_badges/libsdl2_ttf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsdl2_ttf" +version: +--- diff --git a/_badges/libsimpleio.json b/_badges/libsimpleio.json new file mode 100644 index 00000000..91b5c227 --- /dev/null +++ b/_badges/libsimpleio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsimpleio" +version: "1.21136.1" +--- diff --git a/_badges/libsqlite3.json b/_badges/libsqlite3.json new file mode 100644 index 00000000..22b3ed53 --- /dev/null +++ b/_badges/libsqlite3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsqlite3" +version: +--- diff --git a/_badges/libtcl.json b/_badges/libtcl.json new file mode 100644 index 00000000..fc52bcb5 --- /dev/null +++ b/_badges/libtcl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libtcl" +version: +--- diff --git a/_badges/libtk.json b/_badges/libtk.json new file mode 100644 index 00000000..593380b6 --- /dev/null +++ b/_badges/libtk.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libtk" +version: +--- diff --git a/_badges/libtls.json b/_badges/libtls.json new file mode 100644 index 00000000..a2b68e47 --- /dev/null +++ b/_badges/libtls.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libtls" +version: +--- diff --git a/_badges/libusb.json b/_badges/libusb.json new file mode 100644 index 00000000..dbd31807 --- /dev/null +++ b/_badges/libusb.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libusb" +version: +--- diff --git a/_badges/libwayland.json b/_badges/libwayland.json new file mode 100644 index 00000000..e8ac8e6c --- /dev/null +++ b/_badges/libwayland.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libwayland" +version: +--- diff --git a/_badges/libx11.json b/_badges/libx11.json new file mode 100644 index 00000000..9679e801 --- /dev/null +++ b/_badges/libx11.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libx11" +version: +--- diff --git a/_badges/libzmq.json b/_badges/libzmq.json new file mode 100644 index 00000000..c60585c0 --- /dev/null +++ b/_badges/libzmq.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libzmq" +version: +--- diff --git a/_badges/linenoise_ada.json b/_badges/linenoise_ada.json new file mode 100644 index 00000000..6bda75ec --- /dev/null +++ b/_badges/linenoise_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "linenoise_ada" +version: "1.1.2" +--- diff --git a/_badges/linux_hal.json b/_badges/linux_hal.json new file mode 100644 index 00000000..9559e330 --- /dev/null +++ b/_badges/linux_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "linux_hal" +version: "1.1.0" +--- diff --git a/_badges/littlefs.json b/_badges/littlefs.json new file mode 100644 index 00000000..470be714 --- /dev/null +++ b/_badges/littlefs.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "littlefs" +version: "0.3.1" +--- diff --git a/_badges/lmdb_ada.json b/_badges/lmdb_ada.json new file mode 100644 index 00000000..639f6f91 --- /dev/null +++ b/_badges/lmdb_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lmdb_ada" +version: "1.2.0" +--- diff --git a/_badges/loga.json b/_badges/loga.json new file mode 100644 index 00000000..a6354588 --- /dev/null +++ b/_badges/loga.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "loga" +version: "1.0.0" +--- diff --git a/_badges/ltp_305.json b/_badges/ltp_305.json new file mode 100644 index 00000000..508324db --- /dev/null +++ b/_badges/ltp_305.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ltp_305" +version: "0.2.0" +--- diff --git a/_badges/lvgl_ada.json b/_badges/lvgl_ada.json new file mode 100644 index 00000000..ce393dad --- /dev/null +++ b/_badges/lvgl_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lvgl_ada" +version: "1.0.0" +--- diff --git a/_badges/lvgl_ada_examples.json b/_badges/lvgl_ada_examples.json new file mode 100644 index 00000000..9ebcb387 --- /dev/null +++ b/_badges/lvgl_ada_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lvgl_ada_examples" +version: "0.1.0" +--- diff --git a/_badges/lvgl_ada_simulator.json b/_badges/lvgl_ada_simulator.json new file mode 100644 index 00000000..ffcdae91 --- /dev/null +++ b/_badges/lvgl_ada_simulator.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lvgl_ada_simulator" +version: "1.0.0" +--- diff --git a/_badges/lzmada.json b/_badges/lzmada.json new file mode 100644 index 00000000..5d9fe89c --- /dev/null +++ b/_badges/lzmada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lzmada" +version: "1.1.3" +--- diff --git a/_badges/m4_tool.json b/_badges/m4_tool.json new file mode 100644 index 00000000..6fa35a3c --- /dev/null +++ b/_badges/m4_tool.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "m4_tool" +version: +--- diff --git a/_badges/mage.json b/_badges/mage.json new file mode 100644 index 00000000..c6b39665 --- /dev/null +++ b/_badges/mage.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mage" +version: "0.6.1" +--- diff --git a/_badges/mage_hat.json b/_badges/mage_hat.json new file mode 100644 index 00000000..26e91166 --- /dev/null +++ b/_badges/mage_hat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mage_hat" +version: "0.3.0" +--- diff --git a/_badges/make.json b/_badges/make.json new file mode 100644 index 00000000..35bca1df --- /dev/null +++ b/_badges/make.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "make" +version: +--- diff --git a/_badges/mandelbrot_ascii.json b/_badges/mandelbrot_ascii.json new file mode 100644 index 00000000..3b868db4 --- /dev/null +++ b/_badges/mandelbrot_ascii.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mandelbrot_ascii" +version: "1.0.0" +--- diff --git a/_badges/markdown.json b/_badges/markdown.json new file mode 100644 index 00000000..c229adb2 --- /dev/null +++ b/_badges/markdown.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "markdown" +version: "23.0.0" +--- diff --git a/_badges/mathpaqs.json b/_badges/mathpaqs.json new file mode 100644 index 00000000..ac56c890 --- /dev/null +++ b/_badges/mathpaqs.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mathpaqs" +version: "20230121.0.0" +--- diff --git a/_badges/matreshka_amf.json b/_badges/matreshka_amf.json new file mode 100644 index 00000000..c8706188 --- /dev/null +++ b/_badges/matreshka_amf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf" +version: "21.0.0" +--- diff --git a/_badges/matreshka_amf_dd.json b/_badges/matreshka_amf_dd.json new file mode 100644 index 00000000..d4b01cdf --- /dev/null +++ b/_badges/matreshka_amf_dd.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf_dd" +version: "21.0.0" +--- diff --git a/_badges/matreshka_amf_mofext.json b/_badges/matreshka_amf_mofext.json new file mode 100644 index 00000000..421fb09c --- /dev/null +++ b/_badges/matreshka_amf_mofext.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf_mofext" +version: "21.0.0" +--- diff --git a/_badges/matreshka_amf_ocl.json b/_badges/matreshka_amf_ocl.json new file mode 100644 index 00000000..8e9ff390 --- /dev/null +++ b/_badges/matreshka_amf_ocl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf_ocl" +version: "21.0.0" +--- diff --git a/_badges/matreshka_amf_uml.json b/_badges/matreshka_amf_uml.json new file mode 100644 index 00000000..3f7a6ecd --- /dev/null +++ b/_badges/matreshka_amf_uml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf_uml" +version: "21.0.0" +--- diff --git a/_badges/matreshka_amf_utp.json b/_badges/matreshka_amf_utp.json new file mode 100644 index 00000000..ad388fb5 --- /dev/null +++ b/_badges/matreshka_amf_utp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_amf_utp" +version: "21.0.0" +--- diff --git a/_badges/matreshka_fastcgi.json b/_badges/matreshka_fastcgi.json new file mode 100644 index 00000000..ebd671a2 --- /dev/null +++ b/_badges/matreshka_fastcgi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_fastcgi" +version: "21.0.0" +--- diff --git a/_badges/matreshka_league.json b/_badges/matreshka_league.json new file mode 100644 index 00000000..d19bc93c --- /dev/null +++ b/_badges/matreshka_league.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_league" +version: "21.0.0" +--- diff --git a/_badges/matreshka_servlet.json b/_badges/matreshka_servlet.json new file mode 100644 index 00000000..cbcc1ca3 --- /dev/null +++ b/_badges/matreshka_servlet.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_servlet" +version: "21.0.0" +--- diff --git a/_badges/matreshka_soap.json b/_badges/matreshka_soap.json new file mode 100644 index 00000000..23742f7e --- /dev/null +++ b/_badges/matreshka_soap.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_soap" +version: "21.0.0" +--- diff --git a/_badges/matreshka_soap_wsse.json b/_badges/matreshka_soap_wsse.json new file mode 100644 index 00000000..7eb60a84 --- /dev/null +++ b/_badges/matreshka_soap_wsse.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_soap_wsse" +version: "21.0.0" +--- diff --git a/_badges/matreshka_spikedog_api.json b/_badges/matreshka_spikedog_api.json new file mode 100644 index 00000000..47e34299 --- /dev/null +++ b/_badges/matreshka_spikedog_api.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_spikedog_api" +version: "21.0.0" +--- diff --git a/_badges/matreshka_spikedog_awsd.json b/_badges/matreshka_spikedog_awsd.json new file mode 100644 index 00000000..47a45993 --- /dev/null +++ b/_badges/matreshka_spikedog_awsd.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_spikedog_awsd" +version: "21.0.0" +--- diff --git a/_badges/matreshka_spikedog_core.json b/_badges/matreshka_spikedog_core.json new file mode 100644 index 00000000..123abbd1 --- /dev/null +++ b/_badges/matreshka_spikedog_core.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_spikedog_core" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql.json b/_badges/matreshka_sql.json new file mode 100644 index 00000000..a9b1c437 --- /dev/null +++ b/_badges/matreshka_sql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql_firebird.json b/_badges/matreshka_sql_firebird.json new file mode 100644 index 00000000..3c2ff176 --- /dev/null +++ b/_badges/matreshka_sql_firebird.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql_firebird" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql_mysql.json b/_badges/matreshka_sql_mysql.json new file mode 100644 index 00000000..d9094207 --- /dev/null +++ b/_badges/matreshka_sql_mysql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql_mysql" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql_oracle.json b/_badges/matreshka_sql_oracle.json new file mode 100644 index 00000000..51db66a7 --- /dev/null +++ b/_badges/matreshka_sql_oracle.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql_oracle" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql_postgresql.json b/_badges/matreshka_sql_postgresql.json new file mode 100644 index 00000000..817989a4 --- /dev/null +++ b/_badges/matreshka_sql_postgresql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql_postgresql" +version: "21.0.0" +--- diff --git a/_badges/matreshka_sql_sqlite3.json b/_badges/matreshka_sql_sqlite3.json new file mode 100644 index 00000000..5a452967 --- /dev/null +++ b/_badges/matreshka_sql_sqlite3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_sql_sqlite3" +version: "21.0.0" +--- diff --git a/_badges/matreshka_xml.json b/_badges/matreshka_xml.json new file mode 100644 index 00000000..b06f12cd --- /dev/null +++ b/_badges/matreshka_xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "matreshka_xml" +version: "21.0.0" +--- diff --git a/_badges/mcp2221.json b/_badges/mcp2221.json new file mode 100644 index 00000000..3601c8ef --- /dev/null +++ b/_badges/mcp2221.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mcp2221" +version: "1.21136.1" +--- diff --git a/_badges/microbit_bsp.json b/_badges/microbit_bsp.json new file mode 100644 index 00000000..c8dd7f47 --- /dev/null +++ b/_badges/microbit_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "microbit_bsp" +version: "0.2.0" +--- diff --git a/_badges/microbit_examples.json b/_badges/microbit_examples.json new file mode 100644 index 00000000..1f565f63 --- /dev/null +++ b/_badges/microbit_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "microbit_examples" +version: "0.1.0" +--- diff --git a/_badges/midi.json b/_badges/midi.json new file mode 100644 index 00000000..9588bd2b --- /dev/null +++ b/_badges/midi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "midi" +version: "0.2.0" +--- diff --git a/_badges/minimal_containers.json b/_badges/minimal_containers.json new file mode 100644 index 00000000..d7cc6ae8 --- /dev/null +++ b/_badges/minimal_containers.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "minimal_containers" +version: "1.0.0" +--- diff --git a/_badges/minirest.json b/_badges/minirest.json new file mode 100644 index 00000000..7621a975 --- /dev/null +++ b/_badges/minirest.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "minirest" +version: "0.2.0" +--- diff --git a/_badges/minisamd51_bsp.json b/_badges/minisamd51_bsp.json new file mode 100644 index 00000000..25764833 --- /dev/null +++ b/_badges/minisamd51_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "minisamd51_bsp" +version: "0.1.0" +--- diff --git a/_badges/minisamd51_example.json b/_badges/minisamd51_example.json new file mode 100644 index 00000000..476f8e3d --- /dev/null +++ b/_badges/minisamd51_example.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "minisamd51_example" +version: "0.1.1" +--- diff --git a/_badges/mold_lib.json b/_badges/mold_lib.json new file mode 100644 index 00000000..340ff1e2 --- /dev/null +++ b/_badges/mold_lib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mold_lib" +version: "0.2.1" +--- diff --git a/_badges/mos6502_create_led.json b/_badges/mos6502_create_led.json new file mode 100644 index 00000000..a5ddb151 --- /dev/null +++ b/_badges/mos6502_create_led.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mos6502_create_led" +version: "1.5.0" +--- diff --git a/_badges/mos6502_create_nop.json b/_badges/mos6502_create_nop.json new file mode 100644 index 00000000..847fd093 --- /dev/null +++ b/_badges/mos6502_create_nop.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mos6502_create_nop" +version: "1.5.0" +--- diff --git a/_badges/mos6502_create_reset.json b/_badges/mos6502_create_reset.json new file mode 100644 index 00000000..5910b8b3 --- /dev/null +++ b/_badges/mos6502_create_reset.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mos6502_create_reset" +version: "1.5.0" +--- diff --git a/_badges/msys2_runtime.json b/_badges/msys2_runtime.json new file mode 100644 index 00000000..88bb0b52 --- /dev/null +++ b/_badges/msys2_runtime.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "msys2_runtime" +version: +--- diff --git a/_badges/muntsos_beaglebone.json b/_badges/muntsos_beaglebone.json new file mode 100644 index 00000000..eb1eeaec --- /dev/null +++ b/_badges/muntsos_beaglebone.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_beaglebone" +version: "2.0.0" +--- diff --git a/_badges/muntsos_dev_aarch64.json b/_badges/muntsos_dev_aarch64.json new file mode 100644 index 00000000..8bf8735d --- /dev/null +++ b/_badges/muntsos_dev_aarch64.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_dev_aarch64" +version: +--- diff --git a/_badges/muntsos_dev_beaglebone.json b/_badges/muntsos_dev_beaglebone.json new file mode 100644 index 00000000..29992d9c --- /dev/null +++ b/_badges/muntsos_dev_beaglebone.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_dev_beaglebone" +version: +--- diff --git a/_badges/muntsos_dev_raspberrypi1.json b/_badges/muntsos_dev_raspberrypi1.json new file mode 100644 index 00000000..40e6bcbb --- /dev/null +++ b/_badges/muntsos_dev_raspberrypi1.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_dev_raspberrypi1" +version: +--- diff --git a/_badges/muntsos_dev_raspberrypi2.json b/_badges/muntsos_dev_raspberrypi2.json new file mode 100644 index 00000000..4298e1c1 --- /dev/null +++ b/_badges/muntsos_dev_raspberrypi2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_dev_raspberrypi2" +version: +--- diff --git a/_badges/muntsos_raspberrypi1.json b/_badges/muntsos_raspberrypi1.json new file mode 100644 index 00000000..73283da6 --- /dev/null +++ b/_badges/muntsos_raspberrypi1.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi1" +version: "2.0.0" +--- diff --git a/_badges/muntsos_raspberrypi2.json b/_badges/muntsos_raspberrypi2.json new file mode 100644 index 00000000..b1bf775c --- /dev/null +++ b/_badges/muntsos_raspberrypi2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi2" +version: "2.0.0" +--- diff --git a/_badges/muntsos_raspberrypi3.json b/_badges/muntsos_raspberrypi3.json new file mode 100644 index 00000000..4be21df4 --- /dev/null +++ b/_badges/muntsos_raspberrypi3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi3" +version: "2.0.0" +--- diff --git a/_badges/muntsos_raspberrypi4.json b/_badges/muntsos_raspberrypi4.json new file mode 100644 index 00000000..8ac850fc --- /dev/null +++ b/_badges/muntsos_raspberrypi4.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi4" +version: "2.0.0" +--- diff --git a/_badges/ncursesada.json b/_badges/ncursesada.json new file mode 100644 index 00000000..764a9786 --- /dev/null +++ b/_badges/ncursesada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ncursesada" +version: "6.3.0" +--- diff --git a/_badges/nrf5x_hal.json b/_badges/nrf5x_hal.json new file mode 100644 index 00000000..e80db7f9 --- /dev/null +++ b/_badges/nrf5x_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "nrf5x_hal" +version: "0.1.0" +--- diff --git a/_badges/openai.json b/_badges/openai.json new file mode 100644 index 00000000..1d7825bb --- /dev/null +++ b/_badges/openai.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openai" +version: "1.0.0" +--- diff --git a/_badges/openapi.json b/_badges/openapi.json new file mode 100644 index 00000000..13c5d77f --- /dev/null +++ b/_badges/openapi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openapi" +version: "0.7.0" +--- diff --git a/_badges/openapi_server.json b/_badges/openapi_server.json new file mode 100644 index 00000000..5e5f598f --- /dev/null +++ b/_badges/openapi_server.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openapi_server" +version: "0.7.0" +--- diff --git a/_badges/openglada.json b/_badges/openglada.json new file mode 100644 index 00000000..40da67f2 --- /dev/null +++ b/_badges/openglada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openglada" +version: "0.9.0" +--- diff --git a/_badges/openglada_glfw.json b/_badges/openglada_glfw.json new file mode 100644 index 00000000..ddbdd702 --- /dev/null +++ b/_badges/openglada_glfw.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openglada_glfw" +version: "0.9.0" +--- diff --git a/_badges/openglada_images.json b/_badges/openglada_images.json new file mode 100644 index 00000000..cf48e982 --- /dev/null +++ b/_badges/openglada_images.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openglada_images" +version: "0.9.0" +--- diff --git a/_badges/openglada_text.json b/_badges/openglada_text.json new file mode 100644 index 00000000..180b32d3 --- /dev/null +++ b/_badges/openglada_text.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openglada_text" +version: "0.9.0" +--- diff --git a/_badges/openssl.json b/_badges/openssl.json new file mode 100644 index 00000000..0ca36a7e --- /dev/null +++ b/_badges/openssl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openssl" +version: +--- diff --git a/_badges/optional.json b/_badges/optional.json new file mode 100644 index 00000000..d86f8337 --- /dev/null +++ b/_badges/optional.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "optional" +version: "0.1.0" +--- diff --git a/_badges/orka.json b/_badges/orka.json new file mode 100644 index 00000000..b19145c2 --- /dev/null +++ b/_badges/orka.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka" +version: "1.0.0" +--- diff --git a/_badges/orka_awt.json b/_badges/orka_awt.json new file mode 100644 index 00000000..72d5cf53 --- /dev/null +++ b/_badges/orka_awt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_awt" +version: "1.0.0" +--- diff --git a/_badges/orka_egl.json b/_badges/orka_egl.json new file mode 100644 index 00000000..1237f81c --- /dev/null +++ b/_badges/orka_egl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_egl" +version: "1.0.0" +--- diff --git a/_badges/orka_numerics.json b/_badges/orka_numerics.json new file mode 100644 index 00000000..51629d44 --- /dev/null +++ b/_badges/orka_numerics.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_numerics" +version: "1.0.0" +--- diff --git a/_badges/orka_opengl.json b/_badges/orka_opengl.json new file mode 100644 index 00000000..eeb55a4e --- /dev/null +++ b/_badges/orka_opengl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_opengl" +version: "1.0.0" +--- diff --git a/_badges/orka_plugin_archives.json b/_badges/orka_plugin_archives.json new file mode 100644 index 00000000..378f1140 --- /dev/null +++ b/_badges/orka_plugin_archives.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_plugin_archives" +version: "1.0.0" +--- diff --git a/_badges/orka_plugin_atmosphere.json b/_badges/orka_plugin_atmosphere.json new file mode 100644 index 00000000..31f74052 --- /dev/null +++ b/_badges/orka_plugin_atmosphere.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_plugin_atmosphere" +version: "1.0.0" +--- diff --git a/_badges/orka_plugin_gltf.json b/_badges/orka_plugin_gltf.json new file mode 100644 index 00000000..990a984b --- /dev/null +++ b/_badges/orka_plugin_gltf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_plugin_gltf" +version: "1.0.0" +--- diff --git a/_badges/orka_plugin_terrain.json b/_badges/orka_plugin_terrain.json new file mode 100644 index 00000000..60b8da0f --- /dev/null +++ b/_badges/orka_plugin_terrain.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_plugin_terrain" +version: "1.0.0" +--- diff --git a/_badges/orka_simd.json b/_badges/orka_simd.json new file mode 100644 index 00000000..b92cf1fb --- /dev/null +++ b/_badges/orka_simd.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_simd" +version: "1.0.0" +--- diff --git a/_badges/orka_tensors_cpu.json b/_badges/orka_tensors_cpu.json new file mode 100644 index 00000000..8159258b --- /dev/null +++ b/_badges/orka_tensors_cpu.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_tensors_cpu" +version: "1.0.0" +--- diff --git a/_badges/orka_tensors_gpu.json b/_badges/orka_tensors_gpu.json new file mode 100644 index 00000000..cfa7a150 --- /dev/null +++ b/_badges/orka_tensors_gpu.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_tensors_gpu" +version: "1.0.0" +--- diff --git a/_badges/orka_tools.json b/_badges/orka_tools.json new file mode 100644 index 00000000..b590320a --- /dev/null +++ b/_badges/orka_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_tools" +version: "1.0.0" +--- diff --git a/_badges/orka_transforms.json b/_badges/orka_transforms.json new file mode 100644 index 00000000..c992fcb4 --- /dev/null +++ b/_badges/orka_transforms.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_transforms" +version: "1.0.0" +--- diff --git a/_badges/orka_types.json b/_badges/orka_types.json new file mode 100644 index 00000000..6d3df3fc --- /dev/null +++ b/_badges/orka_types.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "orka_types" +version: "1.0.0" +--- diff --git a/_badges/parse_args.json b/_badges/parse_args.json new file mode 100644 index 00000000..6fad1425 --- /dev/null +++ b/_badges/parse_args.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "parse_args" +version: "0.9.0" +--- diff --git a/_badges/partord.json b/_badges/partord.json new file mode 100644 index 00000000..194f8b32 --- /dev/null +++ b/_badges/partord.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "partord" +version: "1.0.0" +--- diff --git a/_badges/pbkdf2.json b/_badges/pbkdf2.json new file mode 100644 index 00000000..5173e128 --- /dev/null +++ b/_badges/pbkdf2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pbkdf2" +version: "3.0.0" +--- diff --git a/_badges/pico_bsp.json b/_badges/pico_bsp.json new file mode 100644 index 00000000..6b1ca7a0 --- /dev/null +++ b/_badges/pico_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pico_bsp" +version: "2.0.0" +--- diff --git a/_badges/pico_examples.json b/_badges/pico_examples.json new file mode 100644 index 00000000..9f7684cf --- /dev/null +++ b/_badges/pico_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pico_examples" +version: "2.0.0" +--- diff --git a/_badges/pkg_config.json b/_badges/pkg_config.json new file mode 100644 index 00000000..4f17b541 --- /dev/null +++ b/_badges/pkg_config.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pkg_config" +version: +--- diff --git a/_badges/play_2048.json b/_badges/play_2048.json new file mode 100644 index 00000000..328dbea5 --- /dev/null +++ b/_badges/play_2048.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "play_2048" +version: "1.0.0" +--- diff --git a/_badges/plplot.json b/_badges/plplot.json new file mode 100644 index 00000000..2235da8b --- /dev/null +++ b/_badges/plplot.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "plplot" +version: +--- diff --git a/_badges/postgresql.json b/_badges/postgresql.json new file mode 100644 index 00000000..99b18f55 --- /dev/null +++ b/_badges/postgresql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "postgresql" +version: +--- diff --git a/_badges/powerjoular.json b/_badges/powerjoular.json new file mode 100644 index 00000000..910da8a5 --- /dev/null +++ b/_badges/powerjoular.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "powerjoular" +version: "0.6.0" +--- diff --git a/_badges/ppag.json b/_badges/ppag.json new file mode 100644 index 00000000..93277422 --- /dev/null +++ b/_badges/ppag.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ppag" +version: "2.1.1" +--- diff --git a/_badges/program_proofs_in_spark.json b/_badges/program_proofs_in_spark.json new file mode 100644 index 00000000..3792ba98 --- /dev/null +++ b/_badges/program_proofs_in_spark.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "program_proofs_in_spark" +version: "0.1.1" +--- diff --git a/_badges/progress_indicators.json b/_badges/progress_indicators.json new file mode 100644 index 00000000..da31813f --- /dev/null +++ b/_badges/progress_indicators.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "progress_indicators" +version: "0.0.1" +--- diff --git a/_badges/protobuf.json b/_badges/protobuf.json new file mode 100644 index 00000000..45eac263 --- /dev/null +++ b/_badges/protobuf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "protobuf" +version: "1.0.0" +--- diff --git a/_badges/pygamer_bsp.json b/_badges/pygamer_bsp.json new file mode 100644 index 00000000..71a3b1e1 --- /dev/null +++ b/_badges/pygamer_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pygamer_bsp" +version: "1.0.0" +--- diff --git a/_badges/pygamer_simulator.json b/_badges/pygamer_simulator.json new file mode 100644 index 00000000..f0458d8c --- /dev/null +++ b/_badges/pygamer_simulator.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pygamer_simulator" +version: "1.0.0" +--- diff --git a/_badges/qoi.json b/_badges/qoi.json new file mode 100644 index 00000000..2620f649 --- /dev/null +++ b/_badges/qoi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "qoi" +version: "0.1.0" +--- diff --git a/_badges/raspberry_bsp.json b/_badges/raspberry_bsp.json new file mode 100644 index 00000000..d9d6c44b --- /dev/null +++ b/_badges/raspberry_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "raspberry_bsp" +version: "1.0.0" +--- diff --git a/_badges/rclada.json b/_badges/rclada.json new file mode 100644 index 00000000..013cac4f --- /dev/null +++ b/_badges/rclada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rclada" +version: "0.1.0" +--- diff --git a/_badges/rclada_examples.json b/_badges/rclada_examples.json new file mode 100644 index 00000000..7918b71c --- /dev/null +++ b/_badges/rclada_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rclada_examples" +version: "0.1.0" +--- diff --git a/_badges/re2c.json b/_badges/re2c.json new file mode 100644 index 00000000..f2fa06d3 --- /dev/null +++ b/_badges/re2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "re2c" +version: +--- diff --git a/_badges/rejuvenation.json b/_badges/rejuvenation.json new file mode 100644 index 00000000..a604100c --- /dev/null +++ b/_badges/rejuvenation.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rejuvenation" +version: "23.0.0" +--- diff --git a/_badges/remoteio.json b/_badges/remoteio.json new file mode 100644 index 00000000..b054385a --- /dev/null +++ b/_badges/remoteio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "remoteio" +version: "1.21136.1" +--- diff --git a/_badges/resources.json b/_badges/resources.json new file mode 100644 index 00000000..8854d1d6 --- /dev/null +++ b/_badges/resources.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "resources" +version: "0.1.0" +--- diff --git a/_badges/rewriters.json b/_badges/rewriters.json new file mode 100644 index 00000000..edf30a21 --- /dev/null +++ b/_badges/rewriters.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rewriters" +version: "23.0.0" +--- diff --git a/_badges/ros2_foxy.json b/_badges/ros2_foxy.json new file mode 100644 index 00000000..8df21c43 --- /dev/null +++ b/_badges/ros2_foxy.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ros2_foxy" +version: +--- diff --git a/_badges/rp2040_hal.json b/_badges/rp2040_hal.json new file mode 100644 index 00000000..cf841641 --- /dev/null +++ b/_badges/rp2040_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rp2040_hal" +version: "2.0.1" +--- diff --git a/_badges/rsfile.json b/_badges/rsfile.json new file mode 100644 index 00000000..8cba6bfa --- /dev/null +++ b/_badges/rsfile.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rsfile" +version: "1.0.1" +--- diff --git a/_badges/rtmidi.json b/_badges/rtmidi.json new file mode 100644 index 00000000..90c8c51b --- /dev/null +++ b/_badges/rtmidi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rtmidi" +version: "0.1.0" +--- diff --git a/_badges/rxada.json b/_badges/rxada.json new file mode 100644 index 00000000..20d1d515 --- /dev/null +++ b/_badges/rxada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rxada" +version: "0.1.1" +--- diff --git a/_badges/saatana.json b/_badges/saatana.json new file mode 100644 index 00000000..492d39d4 --- /dev/null +++ b/_badges/saatana.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "saatana" +version: "2.0.2" +--- diff --git a/_badges/samd51_hal.json b/_badges/samd51_hal.json new file mode 100644 index 00000000..f3168915 --- /dev/null +++ b/_badges/samd51_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "samd51_hal" +version: "0.3.0" +--- diff --git a/_badges/scripted_testing.json b/_badges/scripted_testing.json new file mode 100644 index 00000000..76f4db34 --- /dev/null +++ b/_badges/scripted_testing.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "scripted_testing" +version: "2.0.0" +--- diff --git a/_badges/sdlada.json b/_badges/sdlada.json new file mode 100644 index 00000000..685ff5ae --- /dev/null +++ b/_badges/sdlada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sdlada" +version: "2.5.5" +--- diff --git a/_badges/security.json b/_badges/security.json new file mode 100644 index 00000000..24288329 --- /dev/null +++ b/_badges/security.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "security" +version: "1.5.0" +--- diff --git a/_badges/semantic_versioning.json b/_badges/semantic_versioning.json new file mode 100644 index 00000000..2b536a8b --- /dev/null +++ b/_badges/semantic_versioning.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "semantic_versioning" +version: "2.1.0" +--- diff --git a/_badges/septum.json b/_badges/septum.json new file mode 100644 index 00000000..f43ca600 --- /dev/null +++ b/_badges/septum.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "septum" +version: "0.0.7" +--- diff --git a/_badges/serverfaces.json b/_badges/serverfaces.json new file mode 100644 index 00000000..315a3605 --- /dev/null +++ b/_badges/serverfaces.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "serverfaces" +version: "1.6.0" +--- diff --git a/_badges/serverfaces_unit.json b/_badges/serverfaces_unit.json new file mode 100644 index 00000000..b079f233 --- /dev/null +++ b/_badges/serverfaces_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "serverfaces_unit" +version: "1.6.0" +--- diff --git a/_badges/servletada.json b/_badges/servletada.json new file mode 100644 index 00000000..20fcf4f8 --- /dev/null +++ b/_badges/servletada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada" +version: "1.7.0" +--- diff --git a/_badges/servletada_aws.json b/_badges/servletada_aws.json new file mode 100644 index 00000000..95fe8971 --- /dev/null +++ b/_badges/servletada_aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_aws" +version: "1.6.0" +--- diff --git a/_badges/servletada_ews.json b/_badges/servletada_ews.json new file mode 100644 index 00000000..3dce5259 --- /dev/null +++ b/_badges/servletada_ews.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_ews" +version: "1.7.0" +--- diff --git a/_badges/servletada_unit.json b/_badges/servletada_unit.json new file mode 100644 index 00000000..2e3408e7 --- /dev/null +++ b/_badges/servletada_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_unit" +version: "1.7.0" +--- diff --git a/_badges/sh1107.json b/_badges/sh1107.json new file mode 100644 index 00000000..22be7ac5 --- /dev/null +++ b/_badges/sh1107.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sh1107" +version: "1.2.2" +--- diff --git a/_badges/sha1.json b/_badges/sha1.json new file mode 100644 index 00000000..d014a6e9 --- /dev/null +++ b/_badges/sha1.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sha1" +version: "2.0.0" +--- diff --git a/_badges/sha2.json b/_badges/sha2.json new file mode 100644 index 00000000..f4b34bd3 --- /dev/null +++ b/_badges/sha2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sha2" +version: "2.0.0" +--- diff --git a/_badges/shoot_n_loot.json b/_badges/shoot_n_loot.json new file mode 100644 index 00000000..7d9ee6ef --- /dev/null +++ b/_badges/shoot_n_loot.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "shoot_n_loot" +version: "1.0.0" +--- diff --git a/_badges/si_units.json b/_badges/si_units.json new file mode 100644 index 00000000..607b0ca4 --- /dev/null +++ b/_badges/si_units.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "si_units" +version: "0.2.0" +--- diff --git a/_badges/simh_tapes.json b/_badges/simh_tapes.json new file mode 100644 index 00000000..12998786 --- /dev/null +++ b/_badges/simh_tapes.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simh_tapes" +version: "0.1.1" +--- diff --git a/_badges/simple_components.json b/_badges/simple_components.json new file mode 100644 index 00000000..2c220499 --- /dev/null +++ b/_badges/simple_components.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simple_components" +version: "4.62.0" +--- diff --git a/_badges/simple_logging.json b/_badges/simple_logging.json new file mode 100644 index 00000000..7c4c64fa --- /dev/null +++ b/_badges/simple_logging.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simple_logging" +version: "1.2.0" +--- diff --git a/_badges/simple_regex.json b/_badges/simple_regex.json new file mode 100644 index 00000000..c0313d77 --- /dev/null +++ b/_badges/simple_regex.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simple_regex" +version: "0.1.0" +--- diff --git a/_badges/slip.json b/_badges/slip.json new file mode 100644 index 00000000..868da875 --- /dev/null +++ b/_badges/slip.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "slip" +version: "0.0.1" +--- diff --git a/_badges/socketcan.json b/_badges/socketcan.json new file mode 100644 index 00000000..8f16a1a2 --- /dev/null +++ b/_badges/socketcan.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "socketcan" +version: "1.0.0" +--- diff --git a/_badges/spark_unbound.json b/_badges/spark_unbound.json new file mode 100644 index 00000000..d59a5c7a --- /dev/null +++ b/_badges/spark_unbound.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spark_unbound" +version: "0.2.1" +--- diff --git a/_badges/sparknacl.json b/_badges/sparknacl.json new file mode 100644 index 00000000..d2a33692 --- /dev/null +++ b/_badges/sparknacl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sparknacl" +version: "4.0.0" +--- diff --git a/_badges/spat.json b/_badges/spat.json new file mode 100644 index 00000000..f99c502f --- /dev/null +++ b/_badges/spat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spat" +version: "1.3.0" +--- diff --git a/_badges/spawn.json b/_badges/spawn.json new file mode 100644 index 00000000..0a28d165 --- /dev/null +++ b/_badges/spawn.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spawn" +version: "23.0.0" +--- diff --git a/_badges/spawn_glib.json b/_badges/spawn_glib.json new file mode 100644 index 00000000..31c21f31 --- /dev/null +++ b/_badges/spawn_glib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spawn_glib" +version: "23.0.0" +--- diff --git a/_badges/spdx.json b/_badges/spdx.json new file mode 100644 index 00000000..712ae270 --- /dev/null +++ b/_badges/spdx.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spdx" +version: "0.2.0" +--- diff --git a/_badges/specfun.json b/_badges/specfun.json new file mode 100644 index 00000000..c08943ac --- /dev/null +++ b/_badges/specfun.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "specfun" +version: "1.0.0" +--- diff --git a/_badges/spoon.json b/_badges/spoon.json new file mode 100644 index 00000000..630adff3 --- /dev/null +++ b/_badges/spoon.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spoon" +version: "1.0.1" +--- diff --git a/_badges/startup_gen.json b/_badges/startup_gen.json new file mode 100644 index 00000000..2929e921 --- /dev/null +++ b/_badges/startup_gen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "startup_gen" +version: "23.0.0" +--- diff --git a/_badges/stephes_ada_library.json b/_badges/stephes_ada_library.json new file mode 100644 index 00000000..664ecf62 --- /dev/null +++ b/_badges/stephes_ada_library.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "stephes_ada_library" +version: "3.7.2" +--- diff --git a/_badges/stm32f0x2_hal.json b/_badges/stm32f0x2_hal.json new file mode 100644 index 00000000..fe40f5fd --- /dev/null +++ b/_badges/stm32f0x2_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "stm32f0x2_hal" +version: "0.1.0" +--- diff --git a/_badges/stopwatch.json b/_badges/stopwatch.json new file mode 100644 index 00000000..f22282e2 --- /dev/null +++ b/_badges/stopwatch.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "stopwatch" +version: "0.1.0" +--- diff --git a/_badges/svd2ada.json b/_badges/svd2ada.json new file mode 100644 index 00000000..fd3f8060 --- /dev/null +++ b/_badges/svd2ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "svd2ada" +version: "0.1.0" +--- diff --git a/_badges/system_random.json b/_badges/system_random.json new file mode 100644 index 00000000..14a660e4 --- /dev/null +++ b/_badges/system_random.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "system_random" +version: "1.0.0" +--- diff --git a/_badges/tash.json b/_badges/tash.json new file mode 100644 index 00000000..8a40a21a --- /dev/null +++ b/_badges/tash.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tash" +version: "8.7.2" +--- diff --git a/_badges/task_coroutines.json b/_badges/task_coroutines.json new file mode 100644 index 00000000..6e715253 --- /dev/null +++ b/_badges/task_coroutines.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "task_coroutines" +version: "0.1.0" +--- diff --git a/_badges/templates_parser.json b/_badges/templates_parser.json new file mode 100644 index 00000000..36bc2c62 --- /dev/null +++ b/_badges/templates_parser.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "templates_parser" +version: "23.0.0" +--- diff --git a/_badges/tiled_code_gen.json b/_badges/tiled_code_gen.json new file mode 100644 index 00000000..e57542ec --- /dev/null +++ b/_badges/tiled_code_gen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tiled_code_gen" +version: "0.1.0" +--- diff --git a/_badges/tiny_rp2040_bsp.json b/_badges/tiny_rp2040_bsp.json new file mode 100644 index 00000000..bf2fefd0 --- /dev/null +++ b/_badges/tiny_rp2040_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tiny_rp2040_bsp" +version: "0.2.1" +--- diff --git a/_badges/tiny_text.json b/_badges/tiny_text.json new file mode 100644 index 00000000..2c8c413b --- /dev/null +++ b/_badges/tiny_text.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tiny_text" +version: "1.0.0" +--- diff --git a/_badges/tlsada.json b/_badges/tlsada.json new file mode 100644 index 00000000..5eba57b6 --- /dev/null +++ b/_badges/tlsada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tlsada" +version: "2.5.2" +--- diff --git a/_badges/toml_slicer.json b/_badges/toml_slicer.json new file mode 100644 index 00000000..03fdf640 --- /dev/null +++ b/_badges/toml_slicer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "toml_slicer" +version: "0.1.1" +--- diff --git a/_badges/trendy_terminal.json b/_badges/trendy_terminal.json new file mode 100644 index 00000000..2618e28e --- /dev/null +++ b/_badges/trendy_terminal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "trendy_terminal" +version: "0.0.5" +--- diff --git a/_badges/trendy_test.json b/_badges/trendy_test.json new file mode 100644 index 00000000..f43c6525 --- /dev/null +++ b/_badges/trendy_test.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "trendy_test" +version: "0.0.3" +--- diff --git a/_badges/tresses.json b/_badges/tresses.json new file mode 100644 index 00000000..a0efce67 --- /dev/null +++ b/_badges/tresses.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tresses" +version: "0.1.0" +--- diff --git a/_badges/umwi.json b/_badges/umwi.json new file mode 100644 index 00000000..5e42c9f5 --- /dev/null +++ b/_badges/umwi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "umwi" +version: "0.1.0" +--- diff --git a/_badges/unixodbc.json b/_badges/unixodbc.json new file mode 100644 index 00000000..a816767d --- /dev/null +++ b/_badges/unixodbc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "unixodbc" +version: +--- diff --git a/_badges/uri_ada.json b/_badges/uri_ada.json new file mode 100644 index 00000000..c1e0cc8d --- /dev/null +++ b/_badges/uri_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "uri_ada" +version: "2.0.0" +--- diff --git a/_badges/uri_mime.json b/_badges/uri_mime.json new file mode 100644 index 00000000..39af3d67 --- /dev/null +++ b/_badges/uri_mime.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "uri_mime" +version: "1.4.0" +--- diff --git a/_badges/usb_embedded.json b/_badges/usb_embedded.json new file mode 100644 index 00000000..de0c69f2 --- /dev/null +++ b/_badges/usb_embedded.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "usb_embedded" +version: "0.3.0" +--- diff --git a/_badges/utf8test.json b/_badges/utf8test.json new file mode 100644 index 00000000..69c012a7 --- /dev/null +++ b/_badges/utf8test.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utf8test" +version: "0.1.0" +--- diff --git a/_badges/utilada.json b/_badges/utilada.json new file mode 100644 index 00000000..50670da0 --- /dev/null +++ b/_badges/utilada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada" +version: "2.6.0" +--- diff --git a/_badges/utilada_aws.json b/_badges/utilada_aws.json new file mode 100644 index 00000000..ae9b4317 --- /dev/null +++ b/_badges/utilada_aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_aws" +version: "2.5.0" +--- diff --git a/_badges/utilada_curl.json b/_badges/utilada_curl.json new file mode 100644 index 00000000..c6a2376c --- /dev/null +++ b/_badges/utilada_curl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_curl" +version: "2.6.0" +--- diff --git a/_badges/utilada_lzma.json b/_badges/utilada_lzma.json new file mode 100644 index 00000000..70c39f62 --- /dev/null +++ b/_badges/utilada_lzma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_lzma" +version: "2.6.0" +--- diff --git a/_badges/utilada_unit.json b/_badges/utilada_unit.json new file mode 100644 index 00000000..a75fb905 --- /dev/null +++ b/_badges/utilada_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_unit" +version: "2.6.0" +--- diff --git a/_badges/utilada_xml.json b/_badges/utilada_xml.json new file mode 100644 index 00000000..8e02571a --- /dev/null +++ b/_badges/utilada_xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_xml" +version: "2.6.0" +--- diff --git a/_badges/uxstrings.json b/_badges/uxstrings.json new file mode 100644 index 00000000..6224daa0 --- /dev/null +++ b/_badges/uxstrings.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "uxstrings" +version: "0.6.0+alpha-20231007" +--- diff --git a/_badges/vanilla.json b/_badges/vanilla.json new file mode 100644 index 00000000..358ce7d2 --- /dev/null +++ b/_badges/vanilla.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "vanilla" +version: "0.9.8" +--- diff --git a/_badges/vaton.json b/_badges/vaton.json new file mode 100644 index 00000000..244ccb3c --- /dev/null +++ b/_badges/vaton.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "vaton" +version: "0.1.0" +--- diff --git a/_badges/virtapu.json b/_badges/virtapu.json new file mode 100644 index 00000000..a53dd0b6 --- /dev/null +++ b/_badges/virtapu.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "virtapu" +version: "0.2.0" +--- diff --git a/_badges/vss.json b/_badges/vss.json new file mode 100644 index 00000000..fdee2e24 --- /dev/null +++ b/_badges/vss.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "vss" +version: "23.0.0" +--- diff --git a/_badges/wayland_ada_info.json b/_badges/wayland_ada_info.json new file mode 100644 index 00000000..a02f86dc --- /dev/null +++ b/_badges/wayland_ada_info.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_ada_info" +version: "1.0.0" +--- diff --git a/_badges/wayland_ada_scanner.json b/_badges/wayland_ada_scanner.json new file mode 100644 index 00000000..4958877e --- /dev/null +++ b/_badges/wayland_ada_scanner.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_ada_scanner" +version: "1.0.0" +--- diff --git a/_badges/wayland_client_ada.json b/_badges/wayland_client_ada.json new file mode 100644 index 00000000..0846054d --- /dev/null +++ b/_badges/wayland_client_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_client_ada" +version: "1.0.0" +--- diff --git a/_badges/wayland_cursor_ada.json b/_badges/wayland_cursor_ada.json new file mode 100644 index 00000000..14db8b9b --- /dev/null +++ b/_badges/wayland_cursor_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_cursor_ada" +version: "1.0.0" +--- diff --git a/_badges/wayland_egl_ada.json b/_badges/wayland_egl_ada.json new file mode 100644 index 00000000..a04045da --- /dev/null +++ b/_badges/wayland_egl_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_egl_ada" +version: "1.0.0" +--- diff --git a/_badges/wayland_protocols_ada.json b/_badges/wayland_protocols_ada.json new file mode 100644 index 00000000..071133f6 --- /dev/null +++ b/_badges/wayland_protocols_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wayland_protocols_ada" +version: "1.0.0" +--- diff --git a/_badges/webdriver.json b/_badges/webdriver.json new file mode 100644 index 00000000..508bc7e3 --- /dev/null +++ b/_badges/webdriver.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "webdriver" +version: "1.0.0" +--- diff --git a/_badges/weechat_ada.json b/_badges/weechat_ada.json new file mode 100644 index 00000000..caab691c --- /dev/null +++ b/_badges/weechat_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "weechat_ada" +version: "3.0.1" +--- diff --git a/_badges/wikiada.json b/_badges/wikiada.json new file mode 100644 index 00000000..65f25881 --- /dev/null +++ b/_badges/wikiada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wikiada" +version: "1.4.1" +--- diff --git a/_badges/win32ada.json b/_badges/win32ada.json new file mode 100644 index 00000000..36522e83 --- /dev/null +++ b/_badges/win32ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "win32ada" +version: +--- diff --git a/_badges/winpthreads.json b/_badges/winpthreads.json new file mode 100644 index 00000000..b2a40ad3 --- /dev/null +++ b/_badges/winpthreads.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "winpthreads" +version: +--- diff --git a/_badges/wisitoken.json b/_badges/wisitoken.json new file mode 100644 index 00000000..e6fe97cf --- /dev/null +++ b/_badges/wisitoken.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wisitoken" +version: "4.1.0" +--- diff --git a/_badges/wordle.json b/_badges/wordle.json new file mode 100644 index 00000000..057660c8 --- /dev/null +++ b/_badges/wordle.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wordle" +version: "0.1.1" +--- diff --git a/_badges/wordlelib.json b/_badges/wordlelib.json new file mode 100644 index 00000000..e100ef88 --- /dev/null +++ b/_badges/wordlelib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wordlelib" +version: "0.1.0" +--- diff --git a/_badges/wordlist.json b/_badges/wordlist.json new file mode 100644 index 00000000..dff173ab --- /dev/null +++ b/_badges/wordlist.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wordlist" +version: "0.1.3" +--- diff --git a/_badges/workers.json b/_badges/workers.json new file mode 100644 index 00000000..7ed0bee3 --- /dev/null +++ b/_badges/workers.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "workers" +version: "0.1.0" +--- diff --git a/_badges/xdg_base_dir.json b/_badges/xdg_base_dir.json new file mode 100644 index 00000000..6697b798 --- /dev/null +++ b/_badges/xdg_base_dir.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xdg_base_dir" +version: "1.0.0" +--- diff --git a/_badges/xia.json b/_badges/xia.json new file mode 100644 index 00000000..2fba49fd --- /dev/null +++ b/_badges/xia.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xia" +version: "1.4.0" +--- diff --git a/_badges/xml_ez_out.json b/_badges/xml_ez_out.json new file mode 100644 index 00000000..97f5fc96 --- /dev/null +++ b/_badges/xml_ez_out.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xml_ez_out" +version: "1.6.0" +--- diff --git a/_badges/xmlada.json b/_badges/xmlada.json new file mode 100644 index 00000000..8480fab2 --- /dev/null +++ b/_badges/xmlada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xmlada" +version: "23.0.0" +--- diff --git a/_badges/xoshiro.json b/_badges/xoshiro.json new file mode 100644 index 00000000..f6782507 --- /dev/null +++ b/_badges/xoshiro.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xoshiro" +version: "1.0.0" +--- diff --git a/_badges/yeison.json b/_badges/yeison.json new file mode 100644 index 00000000..115290d6 --- /dev/null +++ b/_badges/yeison.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "yeison" +version: "0.1.0" +--- diff --git a/_badges/zeromq_ada.json b/_badges/zeromq_ada.json new file mode 100644 index 00000000..87918c43 --- /dev/null +++ b/_badges/zeromq_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zeromq_ada" +version: "4.1.5" +--- diff --git a/_badges/zipada.json b/_badges/zipada.json new file mode 100644 index 00000000..4a71036d --- /dev/null +++ b/_badges/zipada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zipada" +version: "58.0.0" +--- diff --git a/_badges/zipdcf.json b/_badges/zipdcf.json new file mode 100644 index 00000000..2a6ad3b9 --- /dev/null +++ b/_badges/zipdcf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zipdcf" +version: "2.0.3" +--- diff --git a/_badges/zlib.json b/_badges/zlib.json new file mode 100644 index 00000000..73e56f4c --- /dev/null +++ b/_badges/zlib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zlib" +version: +--- diff --git a/_badges/zlib_ada.json b/_badges/zlib_ada.json new file mode 100644 index 00000000..16970f09 --- /dev/null +++ b/_badges/zlib_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zlib_ada" +version: "1.3.0" +--- diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..b29f531b --- /dev/null +++ b/_config.yml @@ -0,0 +1,66 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: Alire +description: A catalog of ready-to-use Ada libraries +baseurl: "" # the subpath of your site, e.g. /blog +url: "" # the base hostname & protocol for your site, e.g. http://example.com + +# Build settings +markdown: kramdown +# theme: devlopr +plugins: + - jekyll-feed + +# Exclude from processing. +# The following items will not be processed, by default. Create a custom list +# to override the default setting. +exclude: + - README.md + - Gemfile + - Gemfile.lock + - node_modules + +collections: + crates: + output: true + badges: + output: true + +include: + - docs + +header_pages: + - crates.md + - search.html + - docs/index.md + +# Devlopr +author_logo: profile.png +twitter_username: adaprogrammers +github_username: alire-project +gitter_room: ada-lang/Alire + +# Search settings +tipue_search: + include: + pages: true + exclude: + files: [index.md, search.html] + +# Set Kramdown table-of-content levels. This setting is for the entire site, +# but so far TOC is only used in the docs. +kramdown: + toc_levels: 1..2 diff --git a/_crates/aaa.md b/_crates/aaa.md new file mode 100644 index 00000000..d28e72e5 --- /dev/null +++ b/_crates/aaa.md @@ -0,0 +1,27 @@ +--- +layout: crate +crate: "aaa" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/mosteo/aaa"] +tags: ["miscellanea", +"utility"] +version: "0.2.6" +short_description: "Alex's Ada Assortment (of miscellaneous utilities)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Alex's Ada Assortment of Utilities + +- Text formatting (paragraphs, tables). +- Indefinite containers. +- Enumeration validity/conversions of string images. +- On-demand stack backtraces. +- String containers and utilities. +- Simple subprocess spawning. +- Write-through minimal cache for objects stored in files + + diff --git a/_crates/ada_fuse.md b/_crates/ada_fuse.md new file mode 100644 index 00000000..300d4ad1 --- /dev/null +++ b/_crates/ada_fuse.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "ada_fuse" +authors: ["Alexander Herr ", +"Nicolai Ruckel ", +"Christopher Lübbemeier "] +maintainers: ["Nicolai Ruckel "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/medsec/ada-fuse"] +tags: [] +version: "1.0.1" +short_description: "Ada bindings for Fuse (Filesystem in Userspace)" +dependencies: [{crate: "libfuse", version: "^2.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ada_language_server.md b/_crates/ada_language_server.md new file mode 100644 index 00000000..17004aae --- /dev/null +++ b/_crates/ada_language_server.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "ada_language_server" +authors: ["AdaCore"] +maintainers: ["Maxim Reznik "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/AdaCore/ada_language_server"] +tags: ["lsp", +"vscode"] +version: "23.0.0" +short_description: "An implementation of the Microsoft's Language Server Protocol for Ada" +dependencies: [{crate: "gnatcoll", version: "23.0.0"}, +{crate: "libadalang", version: "23.0.0"}, +{crate: "libadalang_tools", version: "23.0.0"}, +{crate: "libgnatdoc", version: "23.0.0"}, +{crate: "vss", version: "23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ada_lua.md b/_crates/ada_lua.md new file mode 100644 index 00000000..d5443cc2 --- /dev/null +++ b/_crates/ada_lua.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "ada_lua" +authors: ["Nicolas Roche "] +maintainers: ["Nicolas Roche "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/ada-lua"] +tags: ["lua", +"binding", +"script"] +version: "0.1.0" +short_description: "An Ada binding for lua" +dependencies: [{crate: "liblua", version: "~5.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ada_pretty.md b/_crates/ada_pretty.md new file mode 100644 index 00000000..5537ae18 --- /dev/null +++ b/_crates/ada_pretty.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "ada_pretty" +authors: ["Maxim Reznik"] +maintainers: ["Maxim Reznik "] +licenses: ["MIT"] +websites: ["https://github.com/reznikmm/ada-pretty/"] +tags: ["pretty", +"printing", +"generator"] +version: "1.0.0" +short_description: "Ada Pretty Printer Library" +dependencies: [{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ada_toml.md b/_crates/ada_toml.md new file mode 100644 index 00000000..4bc11b41 --- /dev/null +++ b/_crates/ada_toml.md @@ -0,0 +1,107 @@ +--- +layout: crate +crate: "ada_toml" +authors: ["AdaCore", +"Pierre-Marie de Rodat "] +maintainers: ["pmderodat@kawie.fr"] +licenses: ["BSD-3-Clause"] +websites: [] +tags: [] +version: "0.3.0" +short_description: "TOML parser for Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +ada-toml: TOML parser for Ada +============================= + +`ada-toml` is a pure Ada library for parsing and creating +[TOML](https://github.com/toml-lang/toml#toml) documents. It conforms to the +[version 1.0.0](https://toml.io/en/v1.0.0) of the format standard. + + +Quick tutorial +-------------- + +All basic types and subprograms are in the `TOML` package. All "nodes" in a +TOML documents are materialized using the `TOML.TOML_Value` type. Since TOML +values make up a tree, this type has reference semantics. This means that +modifying a TOML node does not modify the corresponding `TOML_Value` value +itself, but rather the TOML value that is referenced. + +Parsing a TOML file is as easy as using the `TOML.File_IO.Load_File` function: + +```ada +declare + Result : constant TOML.Read_Result := + TOML.File_IO.Load_File ("config.toml"); +begin + if Result.Success then + Ada.Text_IO.Put_Line ("config.toml loaded with success!"); + else + Ada.Text_IO.Put_Line ("error while loading config.toml:"); + Ada.Text_IO.Put_Line + (Ada.Strings.Unbounded.To_String (Result.Message)); + end if; +end; +``` + +Each TOML value has kind, defining which data it contains (a boolean, an +integer, a string, a table, ...). To each kind, one or several primitives are +associated to let one process the underlying data: + +```ada +case Result.Kind is + when TOML.TOML_Boolean => + Ada.Text_IO.Put_Line ("Boolean: " & Result.As_Boolean'Image); + + when TOML.TOML_Integer => + Ada.Text_IO.Put_Line ("Boolean: " & Result.As_Integer'Image); + + when TOML.TOML_String => + Ada.Text_IO.Put_Line ("Boolean: " & Result.As_String); + + when TOML.TOML_Array => + Ada.Text_IO.Put_Line ("Array of " & Result.Length & " elements"); + + when others => + null; +end case; +``` + +There are also primitives to build TOML values: + +```ada +declare + Bool : constant TOML.TOML_Value := TOML.Create_Boolean (False); + Int : constant TOML.TOML_Value := TOML.Create_Integer (10); + Str : constant TOML.TOML_Value := TOML.Create_String ("Hello, world"); + + Table : constant TOML.TOML_Value := TOML.Create_Table; +begin + Table.Set ("bool_field", Bool); + Table.Set ("int_field", Int); + Table.Set ("str_field", Str); +end; +``` + +And finally one can turn a tree of TOML nodes back in text form: + +```ada +Ada.Text_IO.Put_Line ("TOML document:"); +Ada.Text_IO.Put_Line (Table.Dump_As_String); +``` + + +Contributing +------------ + +The development of `ada-toml` happens on +[GitHub](https://github.com/pmderodat/ada-toml). Everyone is welcome to +contribute to this project: please read our [contribution +rules](https://github.com/pmderodat/ada-toml/tree/master/CONTRIBUTING.rst) if +you consider doing so. + + diff --git a/_crates/ada_voxel_space_demo.md b/_crates/ada_voxel_space_demo.md new file mode 100644 index 00000000..693932e3 --- /dev/null +++ b/_crates/ada_voxel_space_demo.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "ada_voxel_space_demo" +authors: [] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: [] +tags: [] +version: "1.0.1" +short_description: "Voxel Space render engine demo in Ada" +dependencies: [{crate: "sdlada", version: "^2.3.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/adabots.md b/_crates/adabots.md new file mode 100644 index 00000000..5b5446a8 --- /dev/null +++ b/_crates/adabots.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "adabots" +authors: ["Tama McGlinn"] +maintainers: ["Tama McGlinn "] +licenses: ["MIT"] +websites: [] +tags: ["learn", +"ada", +"minecraft", +"computercraft", +"robots", +"teach", +"children"] +version: "1.7.0" +short_description: "Learn Ada by programming Minecraft robots" +dependencies: [{crate: "utilada_curl", version: "^2.5.0"}, +{crate: "json", version: "^5.0.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/adacl.md b/_crates/adacl.md new file mode 100644 index 00000000..40e1b03b --- /dev/null +++ b/_crates/adacl.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "adacl" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/adacl/"] +tags: ["library", +"command-line", +"trace", +"logging", +"string", +"aunit", +"assert", +"container", +"smart-pointer", +"ada2022"] +version: "5.15.1" +short_description: "Ada Class Library" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +A class library for Ada for those who like OO programming. + +Currently the following functionality is migrated to Ada 2022: + +* Getopt commandline argument parser +* String utilities +* Trace utility +* Smart pointer + * Reference counted + * Unique pointer + * Shared pointer +* AUnit compatible informative asserts + * generic for arrays types + * generic for discrete types + * generic for access types + +See [GNATdoc](https://adacl.sourceforge.net/gnatdoc/adacl/index.html) for details. + +Development versions and testsuite available using the follwowing index: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code and testsuite available on [SourceForge](https://git.code.sf.net/p/adacl/git) + + diff --git a/_crates/adayaml.md b/_crates/adayaml.md new file mode 100644 index 00000000..df0abd95 --- /dev/null +++ b/_crates/adayaml.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "adayaml" +authors: ["Felix Krause"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://ada.yaml.io/"] +tags: [] +version: "0.3.0" +short_description: "Experimental YAML 1.3 implementation in Ada" +dependencies: [{crate: "simple_components", version: "^4.27"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/adl_middleware.md b/_crates/adl_middleware.md new file mode 100644 index 00000000..5da71520 --- /dev/null +++ b/_crates/adl_middleware.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "adl_middleware" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"nostd", +"fat", +"bitmap"] +version: "0.2.0" +short_description: "Middleware layer of the Ada Drivers Library project" +dependencies: [{crate: "hal", version: "~0.3.0"}] +configuration_variables: [{name: 'Max_Mount_Name_Length', type: 'Integer range 1 .. 9223372036854775807', default: "128"}, +{name: 'Max_Mount_Points', type: 'Integer range 1 .. 9223372036854775807', default: "2"}, +{name: 'Max_Path_Length', type: 'Integer range 1 .. 9223372036854775807', default: "1024"}] +configuration_values: [] + +--- +# adl_middleware + +Middleware layer of the Ada Drivers Library project. + +This crate is a snapshot of the `middleware` of [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/middleware). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + + + diff --git a/_crates/admpfr.md b/_crates/admpfr.md new file mode 100644 index 00000000..76cb6581 --- /dev/null +++ b/_crates/admpfr.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "admpfr" +authors: ["Laurent Thévenoux"] +maintainers: ["Laurent Thévenoux "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/thvnx/admpfr"] +tags: ["mpfr", +"floating-point", +"bindings"] +version: "4.1.0+20220920" +short_description: "Ada bindings for MPFR" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}, +{crate: "libmpfr", version: "^4.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ado.md b/_crates/ado.md new file mode 100644 index 00000000..f9a42646 --- /dev/null +++ b/_crates/ado.md @@ -0,0 +1,52 @@ +--- +layout: crate +crate: "ado" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-ado"] +tags: ["database", +"uml", +"sql"] +version: "2.4.0" +short_description: "Ada Database Objects (Core library)" +dependencies: [{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_xml", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-ado/badge/?version=latest)](https://ada-ado.readthedocs.io/en/latest/?badge=latest) + +Ada Database Objects is an Ada05 library that provides +object relational mapping to access a database in Ada05. +The library supports Postgresql, MySQL, SQLite as databases. +Most of the concepts developped for ADO come from the Java Hibernate ORM. + +The ORM uses an YAML, XML mapping file or an UML model, a code generator and a runtime library +for the implementation. It provides a database driver for [Postgresql](https://www.postgresql.org/), +[MySQL](https://www.mysql.com/) and [SQLite](https://www.sqlite.org/). The ORM helps your +application by providing a mapping of your database tables directly in the target programming +language: Ada05 in our case. The development process is the following: + + * You design your database model either using a UML tool or by writing a YAML or XML description, + * You generate the Ada05 mapping files by using the [Dynamo](https://github.com/stcarrez/dynamo) code generator, + * You generate the SQL database tables by using the same tool, + * You write your application on top of the generated code that gives you direct and simplified access to your database. + +![ADO Development model](https://github.com/stcarrez/ada-ado/wiki/images/ado-orm.png) + +You need at least one of these databases (or all of then). The configure script will now +fail if no supported database was found. Check the [Database Drivers](#database-drivers) +section to install them and run the configure again after the installation. + +# Documentation + + * [Ada Database Objects Programmer's Guide](https://ada-ado.readthedocs.io/en/latest/) + * [Persistence with Ada Database Objects](https://fr.slideshare.net/StephaneCarrez1/persistence-with-ada-database-objects-ado) FOSDEM 2019 + + + diff --git a/_crates/ado_all.md b/_crates/ado_all.md new file mode 100644 index 00000000..486a0099 --- /dev/null +++ b/_crates/ado_all.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "ado_all" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-ado"] +tags: ["database", +"uml", +"sql", +"mysql", +"mariadb", +"sqlite", +"postgresql"] +version: "2.4.0" +short_description: "Ada Database Objects (All drivers)" +dependencies: [{crate: "ado_mysql", version: "^2.4.0"}, +{crate: "ado_postgresql", version: "^2.4.0"}, +{crate: "ado_sqlite", version: "^2.4.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-ado/badge/?version=latest)](https://ada-ado.readthedocs.io/en/latest/?badge=latest) + +This crate give access to the PostgreSQL, MySQL and SQLite drivers for the Ada Database Objects library. + + + diff --git a/_crates/ado_mysql.md b/_crates/ado_mysql.md new file mode 100644 index 00000000..0746c4b6 --- /dev/null +++ b/_crates/ado_mysql.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "ado_mysql" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-ado"] +tags: ["database", +"uml", +"sql", +"mysql", +"mariadb"] +version: "2.4.0" +short_description: "Ada Database Objects (Mysql)" +dependencies: [{crate: "ado", version: "^2.4.0"}, +{crate: "libmariadb", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-ado/badge/?version=latest)](https://ada-ado.readthedocs.io/en/latest/?badge=latest) + +This is the MySQL driver for the Ada Database Objects library. + + + diff --git a/_crates/ado_postgresql.md b/_crates/ado_postgresql.md new file mode 100644 index 00000000..9de96d87 --- /dev/null +++ b/_crates/ado_postgresql.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "ado_postgresql" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-ado"] +tags: ["database", +"uml", +"sql", +"postgresql"] +version: "2.4.0" +short_description: "Ada Database Objects (PostgreSQL)" +dependencies: [{crate: "ado", version: "^2.4.0"}, +{crate: "libpq", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-ado/badge/?version=latest)](https://ada-ado.readthedocs.io/en/latest/?badge=latest) + +This is the PostgreSQL driver for the Ada Database Objects library. + + + diff --git a/_crates/ado_sqlite.md b/_crates/ado_sqlite.md new file mode 100644 index 00000000..9971c588 --- /dev/null +++ b/_crates/ado_sqlite.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "ado_sqlite" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-ado"] +tags: ["database", +"uml", +"sql", +"sqlite"] +version: "2.4.0" +short_description: "Ada Database Objects (SQLite)" +dependencies: [{crate: "ado", version: "^2.4.0"}, +{crate: "libsqlite3", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-ado/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-ado/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-ado/badge/?version=latest)](https://ada-ado.readthedocs.io/en/latest/?badge=latest) + +This is the SQLite driver for the Ada Database Objects library. + + + diff --git a/_crates/aflex.md b/_crates/aflex.md new file mode 100644 index 00000000..dd721282 --- /dev/null +++ b/_crates/aflex.md @@ -0,0 +1,38 @@ +--- +layout: crate +crate: "aflex" +authors: ["John Self"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Unlicense"] +websites: ["https://github.com/Ada-France/aflex"] +tags: ["parser", +"generator", +"grammar"] +version: "1.6.0" +short_description: "An Ada Lexical Analyzer Generator" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Aflex is a lexical analyzer generating tool similar to the Unix tool lex. + +The first implementation was written by John Self of the Arcadia project +at the University of California, Irvine. The last version that was released +appeared to be the aflex 1.4a released in 1994. + +Aflex was used and improved by P2Ada, the Pascal to Ada translator. +This version of Aflex is derived from the P2Ada aflex implementation +released in August 2010. + +This version brings a number of improvements: + +- Aflex generates the spec and body files as separate files so that + there is no need to use gnatchop to split the DFA and IO files. +- Aflex uses the lex file name to generate the package name and + it supports child package with the `%unit` directive. +- Aflex supports reentrant scanner through the use of `%option reentrant`, + `%yyvar` and `%yydecl` directives. + + + diff --git a/_crates/agpl.md b/_crates/agpl.md new file mode 100644 index 00000000..081a3205 --- /dev/null +++ b/_crates/agpl.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "agpl" +authors: ["alejandro@mosteo.com"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: [] +version: "1.0.0" +short_description: "Ada General Purpose Library with a robotics flavor" +dependencies: [{crate: "libgsl", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/aicwl.md b/_crates/aicwl.md new file mode 100644 index 00000000..d6da8299 --- /dev/null +++ b/_crates/aicwl.md @@ -0,0 +1,49 @@ +--- +layout: crate +crate: "aicwl" +authors: ["Dmitry A. Kazakov "] +maintainers: ["Vinzent \"Jellix\" Saranen "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-2.0"] +websites: ["http://www.dmitry-kazakov.de/ada/aicwl.htm"] +tags: ["widgets", +"gauge", +"graphics", +"ui", +"gtk"] +version: "3.24.1" +short_description: "Ada Industrial Control Widgets Library" +dependencies: [{crate: "gtkada", version: ">=17"}] +configuration_variables: [] +configuration_values: [] + +--- +This crate provides a library for designing high-quality industrial control +widgets for Ada applications. The software is based on +[GtkAda](https://docs.adacore.com/live/wave/gtkada/html/gtkada_rm/index.html), +Ada bindings to [Gtk+](https://www.gtk.org/), and +[cairo](https://www.cairographics.org/manual/index.html). + +The key features of the library are: + +* Widgets composed of transparent layers drawn by cairo +* Fully scalable graphics +* Support of time controlled refresh policy for real-time and heavy-duty applications +* Caching graphical operations +* Stream I/O support for serialization and deserialization +* Ready-to-use gauge, meter, oscilloscope widgets +* Editor widget for WYSIWYG design of complex dashboards + +For further information, visit the +[AICWL website](http://www.dmitry-kazakov.de/ada/aicwl.htm). + +Maintainer's note: + +This Alire crate is packaged in a rather minimalistic way to keep dependencies +on external libraries at a minimum. The crate's definition covers the core +functionality of AICWL, though, so it should be sufficient for most needs. + +For example, the original distribution has references to +[Simple Components](http://www.dmitry-kazakov.de/ada/components.htm) which are +not strictly necessary for the core functionality of the library. + + diff --git a/_crates/ajunitgen.md b/_crates/ajunitgen.md new file mode 100644 index 00000000..94211c6c --- /dev/null +++ b/_crates/ajunitgen.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "ajunitgen" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: ["junit", +"xml"] +version: "1.0.1" +short_description: "Generator of JUnit-compatible XML reports" +dependencies: [{crate: "xml_ez_out", version: "^1.6"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/akt.md b/_crates/akt.md new file mode 100644 index 00000000..66929be5 --- /dev/null +++ b/_crates/akt.md @@ -0,0 +1,64 @@ +--- +layout: crate +crate: "akt" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-keystore"] +tags: ["security", +"storage", +"nosql"] +version: "1.4.0" +short_description: "Ada Keystore Tool" +dependencies: [{crate: "keystoreada", version: "^1.4.0"}, +{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) + +# Overview + +AKT is a tool to store and protect your sensitive information and documents by +encrypting them in secure keystore (AES-256, HMAC-256). + +Create the keystore and protect it with a gpg public key: +``` + akt create secure.akt --gpg ... +``` + +Store a small content: +``` + akt set secure.akt bank.password 012345 +``` + +Store files, directory or a tar file: +``` + akt store secure.akt notes.txt + akt store secure.akt contract.doc + akt store secure.akt directory + tar czf - . | akt store secure.akt -- backup +``` + +Edit a content with your $EDITOR: +``` + akt edit secure.akt bank.password + akt edit secure.akt notes.txt +``` + +Get a content: +``` + akt get secure.akt bank.password + akt extract secure.akt contract.doc + akt extract secure.akt -- backup | tar xzf - +``` + +## Documents + +* [Ada Keystore Guide](https://ada-keystore.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-keystore/blob/master/docs/keystore-book.pdf) + + + diff --git a/_crates/anagram.md b/_crates/anagram.md new file mode 100644 index 00000000..9c5610e0 --- /dev/null +++ b/_crates/anagram.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "anagram" +authors: ["Maxim Reznik"] +maintainers: ["Maxim Reznik "] +licenses: ["MIT"] +websites: ["https://github.com/reznikmm/anagram"] +tags: ["grammar", +"syntax", +"analysis", +"bnf", +"ebnf", +"generator"] +version: "1.0.0" +short_description: "Grammar handling and parser generation Ada library" +dependencies: [{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ansiada.md b/_crates/ansiada.md new file mode 100644 index 00000000..bcff0556 --- /dev/null +++ b/_crates/ansiada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "ansiada" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["ansi", +"terminal"] +version: "1.0.0" +short_description: "ANSI escape sequences" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/apdf.md b/_crates/apdf.md new file mode 100644 index 00000000..5e42eeb0 --- /dev/null +++ b/_crates/apdf.md @@ -0,0 +1,48 @@ +--- +layout: crate +crate: "apdf" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://apdf.sourceforge.io/"] +tags: ["pdf", +"adobe"] +version: "6.0.0" +short_description: "Portable package for producing dynamically PDF documents" +dependencies: [{crate: "gid", version: ">=9.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +**PDF_Out** is an Ada package for producing easily and automatically PDF files, from an Ada program, with text, vector graphics and raster graphics. + +![Ada PDF Screenshot](https://apdf.sourceforge.io/pw_ari_parcel_m.png "Screenshot of a page produced by PDF_Out") + +* Ideal for the dynamic production of reports, invoices, tickets, charts, maps etc. +* Vector graphics +* Inclusion of JPEG images +* Object oriented +* Task safe +* Endian-neutral +* Multi-platform, but native code build +* Standalone (no dependency on other libraires, bindings, etc.; no extra component needed for running) +* Unconditionally portable code: OS-, CPU-, compiler- independent code +* Pure Ada 95: this package can be used in projects in Ada 95, Ada 2005, Ada 2012 and later language versions +* Free, open-source + +The creation of a PDF file is as simple as this small procedure: + +```ada +with PDF_Out; + +procedure Small_Demo is + pdf : PDF_Out.PDF_Out_File; +begin + pdf.Create ("small.pdf"); + pdf.Put_Line ("This is a very small demo for PDF_Out..."); + pdf.Close; +end Small_Demo; +``` + + + diff --git a/_crates/are.md b/_crates/are.md new file mode 100644 index 00000000..898497d7 --- /dev/null +++ b/_crates/are.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "are" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/resource-embedder"] +tags: ["resource", +"embedder", +"generator"] +version: "1.3.0" +short_description: "Advanced Resource Embedder" +dependencies: [{crate: "elada", version: "^1.8.6"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "xmlada", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/resource-embedder/badges/build.json)](https://porion.vacs.fr/porion/projects/view/resource-embedder) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/resource-embedder/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/resource-embedder) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/resource-embedder/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/resource-embedder) +[![Documentation Status](https://readthedocs.org/projects/resource-embedder/badge/?version=latest)](https://resource-embedder.readthedocs.io/en/latest/?badge=latest) + +The resource embedder allows to embed files in binaries by producing C, Ada or Go source +files that contain the original files. + +To generate a `config.ads` and `config.adb` Ada package with the resources, you may use: + +``` +are --lang=Ada -o src --resource=config --name-access --fileset='**/*.conf' config +``` + +Complex resource integrations are best described with and XML and are generated with: + +``` +are --lang=Ada -o src --rule=package.xml --name-access . +``` + +For Ada, it generates the following package declaration with the `Get_Content` function +that gives access to the files. The Ada body contains the content of each embedded file. + +```Ada +package Config is + function Get_Content (Name : in String) + return access constant String; +end Config; +``` + + + diff --git a/_crates/asfml.md b/_crates/asfml.md new file mode 100644 index 00000000..9c7770ac --- /dev/null +++ b/_crates/asfml.md @@ -0,0 +1,43 @@ +--- +layout: crate +crate: "asfml" +authors: ["Manuel Gomez", +"Dan Lee Vazquez Garcia"] +maintainers: ["Manuel Gomez "] +licenses: ["custom-zlib-acknowledgement"] +websites: ["https://mgrojo.github.io/ASFML/"] +tags: ["audio", +"games", +"opengl", +"cross-platform", +"multimedia", +"binding", +"graphics", +"sfml"] +version: "2.5.4" +short_description: "An Ada binding to SFML, the Simple and Fast Multimedia Library" +dependencies: [{crate: "libcsfml", version: "^2.5"}] +configuration_variables: [] +configuration_values: [] + +--- +[![ASFML logo](https://raw.githubusercontent.com/mgrojo/ASFML/master/images/ASFML_Logo.svg)](https://www.sfml-dev.org) +![Ada (GNAT)](https://github.com/mgrojo/ASFML/workflows/Ada%20(GNAT)/badge.svg) +[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/ada-lang/Lobby) +[![Mentioned in Awesome Ada](https://awesome.re/mentioned-badge.svg)](https://github.com/ohenley/awesome-ada) + +ASFML is an Ada semi-thick binding to the +[SFML](https://www.sfml-dev.org/) library. It uses Ada types and +portable defined types which eliminates the inclusion of Ada interface +libraries, but most of the functions are directly imported. + +# Documentation +Generated API documentation can be consulted [online](https://mgrojo.github.io/ASFML/doc/). + +The Ada API follows the [CSFML](https://26.customprotocol.com/csfml/index.htm) interface, but +with some changes and additions for ease of use. + +Applicability of the [SFML documentation](https://www.sfml-dev.org/learn.php) is usually straightforward. + + + diff --git a/_crates/ashell.md b/_crates/ashell.md new file mode 100644 index 00000000..be53a47a --- /dev/null +++ b/_crates/ashell.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "ashell" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: ["https://github.com/charlie5/aShell"] +tags: ["spawn", +"os", +"command", +"process", +"directories"] +version: "1.3.0" +short_description: "Allows running and interacting with OS programs." +dependencies: [{crate: "florist_blady", version: "^6.0.0"}, +{crate: "gcc", version: "^11.2.4"}] +configuration_variables: [] +configuration_values: [] + +--- +Useful for writing shell-like applications or applications which start, stop and interact with spawned OS programs. + diff --git a/_crates/asis.md b/_crates/asis.md new file mode 100644 index 00000000..b6b9eeff --- /dev/null +++ b/_crates/asis.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "asis" +authors: ["AdaCore"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["GPL-3.0-only"] +websites: ["https://www.adacore.com/download/more"] +tags: [] +version: "2019.0.0" +short_description: "Ada Semantic Interface Specification or ASIS (library part)" +dependencies: [{crate: "gnat", version: "=2019"}, +{crate: "make", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/atari_atr_tools.md b/_crates/atari_atr_tools.md new file mode 100644 index 00000000..e327dccf --- /dev/null +++ b/_crates/atari_atr_tools.md @@ -0,0 +1,61 @@ +--- +layout: crate +crate: "atari_atr_tools" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/tutorial-6502"] +tags: ["atari", +"tools", +"retrocomputing", +"ada-2022"] +version: "1.5.0" +short_description: "Atari / SIO2PC tools for ATR-files" +dependencies: [{crate: "adacl", version: "^5.15.1"}, +{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a tool to analyse, create and convert ATR files. + +ATR files are used by various Atari 8bit emulators and hardware add ons. Currently implemented + +# Print Header + +```sh +>atr_tools-main --print-header test-DD-DS-80.atr +File name : test-DD-DS-80.atr +Magic : 16#296# +Paragraphs : 46056 +Sector size : 256 +Flags : 2#1# +Bad Sectors : 0 +Unused : 16#0# +Sectors : 2880 +Bytes : 736896 +Boot Sectors : true + +Floppy disk double density, double sided, 80 track +``` + +# Create Floppy image + +```sh +>atr_tools-main --verbose --format-floppy --density=DD --side=SS --track=80 test-DD-SS-80.atr +File created : test-DD-SS-80.atr +Sector size : 256 +Sector per track : 18 +Tracks per side : 80 +Sides per disk : 1 +``` + +Development versions available with: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code and testsuite available on [SourceForge](https://git.code.sf.net/p/tutorial-6502/git) + + diff --git a/_crates/atari_exe_tools.md b/_crates/atari_exe_tools.md new file mode 100644 index 00000000..29d6dab5 --- /dev/null +++ b/_crates/atari_exe_tools.md @@ -0,0 +1,60 @@ +--- +layout: crate +crate: "atari_exe_tools" +authors: ["Martin Krischik"] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/tutorial-6502"] +tags: ["atari", +"tools", +"retrocomputing", +"ada-2022"] +version: "1.5.0" +short_description: "Atari tools for for handling EXE-files" +dependencies: [{crate: "adacl", version: "^5.15.1"}, +{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a tool to analyse Atari 8 bit EXE files. + +# Print Header + +```sh +>exe_tools-main --print-header ./test/share/atari_check_exe_test/HELLO_C.EXE" +File: ./test/share/atari_check_exe_test/HELLO_C.EXE +Magic: $FFFF; Start: $2E00; End: $2EF5; Length: 246 +Magic: $0000; Start: $02E2; End: $02E3; Length: 2; Init: $2E47 +Magic: $0000; Start: $2400; End: $28DE; Length: 1247 +Magic: $0000; Start: $02E0; End: $02E1; Length: 2; Run: $2401 +``` + +# Print Data + +```sh +--print-data ./test/share/atari_check_exe_test/HELLO_A.EXE" +File: ./test/share/atari_check_exe_test/HELLO_A.EXE +2400: 60 60 A2 00 A9 0B 9D 42 03 A9 3F 9D 44 03 A9 24 +2410: 9D 45 03 A9 2E 9D 48 03 A9 00 9D 49 03 20 56 E4 +2420: A2 00 A9 07 9D 42 03 A9 6D 9D 44 03 A9 24 9D 45 +2430: 03 A9 01 9D 48 03 A9 00 9D 49 03 20 56 E4 60 48 +2440: 65 6C 6C 6F 20 57 6F 72 6C 64 21 9B 28 75 73 69 +2450: 6E 67 20 61 20 65 78 65 63 75 74 61 62 6C 65 20 +2460: 69 6E 20 61 73 73 65 6D 62 65 72 29 9B 00 +02E0: 02 24 +Run: $2402 +>exe_tools-main +``` + +The ATASCII part of the hexdump has been removed as Alire is not UTF8 compatible. + +Development versions and testsuite available using the follwowing index: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code including AUnit tests available on [SourceForge](https://git.code.sf.net/p/tutorial-6502/git) + + diff --git a/_crates/atomic.md b/_crates/atomic.md new file mode 100644 index 00000000..bb101170 --- /dev/null +++ b/_crates/atomic.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "atomic" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/atomic"] +tags: ["atomic", +"spark", +"embedded", +"nostd"] +version: "0.5.0" +short_description: "Standalone Ada/SPARK bindings to GCC atomic built-ins" +dependencies: [] +configuration_variables: [{name: 'Backend', type: 'Enum (Intrinsic, armv6m, rp2040_spinlock)', default: "Intrinsic"}, +{name: 'RP2040_Spinlock_ID', type: 'Integer range 0 .. 31', default: "31"}] +configuration_values: [] + +--- + + diff --git a/_crates/audio_base.md b/_crates/audio_base.md new file mode 100644 index 00000000..19ada2b6 --- /dev/null +++ b/_crates/audio_base.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "audio_base" +authors: ["Gustavo A. Hoffmann"] +maintainers: ["gusthoff@gusthoff.com"] +licenses: ["MIT"] +websites: ["https://github.com/Ada-Audio/audio_base"] +tags: ["audio", +"riff"] +version: "1.0.0" +short_description: "Basic Ada packages for audio applications" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +# Audio Base +This crate contains basic Ada packages for audio applications. + + diff --git a/_crates/audio_wavefiles.md b/_crates/audio_wavefiles.md new file mode 100644 index 00000000..5e11af63 --- /dev/null +++ b/_crates/audio_wavefiles.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "audio_wavefiles" +authors: ["Gustavo A. Hoffmann"] +maintainers: ["gusthoff@gusthoff.com"] +licenses: ["MIT"] +websites: ["https://github.com/Ada-Audio/audio_wavefiles"] +tags: ["audio", +"riff", +"wavefiles"] +version: "2.0.0" +short_description: "Ada Wavefile Library" +dependencies: [{crate: "audio_base", version: "^1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Ada Wavefile Library +This crate contains Ada packages for wavefile I/O. + + diff --git a/_crates/aunit.md b/_crates/aunit.md new file mode 100644 index 00000000..02d04025 --- /dev/null +++ b/_crates/aunit.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "aunit" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: ["unit", +"test", +"unit-test"] +version: "23.0.0" +short_description: "Ada unit test framework" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/automate.md b/_crates/automate.md new file mode 100644 index 00000000..d405d3cf --- /dev/null +++ b/_crates/automate.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "automate" +authors: ["Pascal Pignard"] +maintainers: ["Pascal Pignard "] +licenses: ["CECILL-2.1"] +websites: ["https://github.com/Blady-Com/Automate"] +tags: ["automaton", +"generator"] +version: "2.2.2" +short_description: "Ada finite-state machine generator" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/avltrees.md b/_crates/avltrees.md new file mode 100644 index 00000000..8a2f3fe6 --- /dev/null +++ b/_crates/avltrees.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "avltrees" +authors: ["Lev Kujawski"] +maintainers: ["Lev Kujawski "] +licenses: ["LGPL-3.0-or-later"] +websites: ["https://github.com/lkujaw/avltrees"] +tags: ["ada1987", +"data-structures"] +version: "0.1.0" +short_description: "Threaded AVL trees library for Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/avrada_examples.md b/_crates/avrada_examples.md new file mode 100644 index 00000000..7665469e --- /dev/null +++ b/_crates/avrada_examples.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "avrada_examples" +authors: ["Rolf Ebert"] +maintainers: ["Rolf Ebert "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-3.1"] +websites: ["https://sourceforge.net/projects/avr-ada/"] +tags: ["avr", +"embedded", +"demo"] +version: "1.0.1" +short_description: "Sample applications in Ada for AVR microcontrollers" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/avrada_lib.md b/_crates/avrada_lib.md new file mode 100644 index 00000000..a9df8a16 --- /dev/null +++ b/_crates/avrada_lib.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "avrada_lib" +authors: ["Rolf Ebert"] +maintainers: ["Rolf Ebert "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-3.1"] +websites: ["https://sourceforge.net/projects/avr-ada/"] +tags: ["avr", +"embedded", +"drivers"] +version: "2.1.0" +short_description: "Library of drivers for AVR microcontrollers" +dependencies: [{crate: "avrada_mcu", version: "^2.1"}, +{crate: "avrada_rts", version: "^2.0.1"}, +{crate: "gnat_avr_elf", version: "^11 | ^12.2"}] +configuration_variables: [{name: 'Process_Timing_Events_In_Ticks', type: 'Boolean', default: "false"}, +{name: 'UART_Receive_Mode', type: 'Enum (polled, interrupt)', default: "polled"}] +configuration_values: [] + +--- + + diff --git a/_crates/avrada_mcu.md b/_crates/avrada_mcu.md new file mode 100644 index 00000000..6a917fa1 --- /dev/null +++ b/_crates/avrada_mcu.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "avrada_mcu" +authors: ["Rolf Ebert"] +maintainers: ["Rolf Ebert "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-3.1"] +websites: ["https://sourceforge.net/projects/avr-ada/"] +tags: ["avr", +"embedded", +"rts"] +version: "2.2.0" +short_description: "Device (MCU) specific definitions for AVR microcontrollers" +dependencies: [{crate: "avrada_rts", version: "^2.0.1"}, +{crate: "gnat_avr_elf", version: "^11 | ^12.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/avrada_rts.md b/_crates/avrada_rts.md new file mode 100644 index 00000000..ed6c012a --- /dev/null +++ b/_crates/avrada_rts.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "avrada_rts" +authors: ["Adacore", +"Rolf Ebert"] +maintainers: ["Rolf Ebert "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-3.1"] +websites: ["https://sourceforge.net/projects/avr-ada/"] +tags: ["avr", +"embedded", +"rts"] +version: "2.0.1" +short_description: "Minimal run time system (RTS) for AVR 8bit controllers" +dependencies: [{crate: "gnat_avr_elf", version: "^11 | ^12.2"}] +configuration_variables: [{name: 'AVR_MCU', type: 'String', default: "atmega328p"}, +{name: 'Clock_Frequency', type: 'Integer range 0 .. 9223372036854775807', default: "0"}, +{name: 'Sec_Stack_Size', type: 'Integer range 0 .. 1024', default: "63"}] +configuration_values: [] + +--- + + diff --git a/_crates/awa.md b/_crates/awa.md new file mode 100644 index 00000000..d323e8b7 --- /dev/null +++ b/_crates/awa.md @@ -0,0 +1,62 @@ +--- +layout: crate +crate: "awa" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-awa"] +tags: ["web", +"users", +"jobs", +"wiki", +"framework", +"storage", +"blog"] +version: "2.4.0" +short_description: "Ada Web Application" +dependencies: [{crate: "ado", version: "^2.3.0"}, +{crate: "elada", version: "^1.8.5"}, +{crate: "keystoreada", version: "^1.3.3"}, +{crate: "security", version: "^1.4.1"}, +{crate: "serverfaces", version: "^1.5.0"}, +{crate: "servletada", version: "^1.6.0"}, +{crate: "servletada_aws", version: "^1.6.0"}, +{crate: "utilada", version: "^2.5.0"}, +{crate: "utilada_aws", version: "^2.5.0"}, +{crate: "utilada_xml", version: "^2.5.0"}, +{crate: "wikiada", version: "^1.4.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/jenkins/s/https/jenkins.vacs.fr/Bionic-AWA.svg)](https://jenkins.vacs.fr/job/Bionic-AWA/) +[![Test Status](https://img.shields.io/jenkins/t/https/jenkins.vacs.fr/Bionic-AWA.svg)](https://jenkins.vacs.fr/job/Bionic-AWA/) +[![codecov](https://codecov.io/gh/stcarrez/ada-awa/branch/master/graph/badge.svg)](https://codecov.io/gh/stcarrez/ada-awa) +[![Documentation Status](https://readthedocs.org/projects/ada-awa/badge/?version=latest)](https://ada-awa.readthedocs.io/en/latest/?badge=latest) + +Ada Web Application is a framework to build a Web Application in Ada 2012. +The framework provides several ready to use and extendable modules that are common +to many web application. This includes the login, authentication, users, permissions, +managing comments, tags, votes, documents, images. It provides a complete blog, +question and answers and a wiki module. + +AWA simplifies the Web Application development by taking care of user management with +Google+, Facebook authentication and by providing the foundations on top of which you +can construct your own application. AWA provides a powerful permission management +that gives flexibility to applications to grant access and protect your user's resources. + +![AWA Features](https://github.com/stcarrez/ada-awa/wiki/images/awa-features.png) + +# Documentation + +The Ada Web Application programmer's guide describes how to setup the framework, +how you can setup and design your first web application with it, +and it provides detailed description of AWA components: + + * [Ada Web Application programmer's guide](https://ada-awa.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-awa/blob/master/awa/docs/awa-book.pdf) + * [Ada Database Objects Programmer's Guide](https://ada-ado.readthedocs.io/en/latest/) + * [Ada Security Programmer's Guide](https://ada-security.readthedocs.io/en/latest/) + * [Ada Utility Library Programmer's Guide](https://ada-util.readthedocs.io/en/latest/) + + + diff --git a/_crates/awa_unit.md b/_crates/awa_unit.md new file mode 100644 index 00000000..e31cbde1 --- /dev/null +++ b/_crates/awa_unit.md @@ -0,0 +1,37 @@ +--- +layout: crate +crate: "awa_unit" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-awa"] +tags: ["web", +"users", +"jobs", +"framework", +"testing"] +version: "2.4.0" +short_description: "Ada Web Application (Testing framework)" +dependencies: [{crate: "awa", version: "^2.4.0"}, +{crate: "serverfaces_unit", version: "^1.5.0"}, +{crate: "servletada_unit", version: "^1.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/jenkins/s/https/jenkins.vacs.fr/Bionic-AWA.svg)](https://jenkins.vacs.fr/job/Bionic-AWA/) +[![Test Status](https://img.shields.io/jenkins/t/https/jenkins.vacs.fr/Bionic-AWA.svg)](https://jenkins.vacs.fr/job/Bionic-AWA/) +[![codecov](https://codecov.io/gh/stcarrez/ada-awa/branch/master/graph/badge.svg)](https://codecov.io/gh/stcarrez/ada-awa) +[![Documentation Status](https://readthedocs.org/projects/ada-awa/badge/?version=latest)](https://ada-awa.readthedocs.io/en/latest/?badge=latest) + +Ada Web Application is a framework to build a Web Application in Ada 2012. +The framework provides several ready to use and extendable modules that are common +to many web application. This includes the login, authentication, users, permissions, +managing comments, tags, votes, documents, images. It provides a complete blog, +question and answers and a wiki module. + +This library provides a testing framework on top of AWA top help implementing +unit tests for AWA applications. + + + diff --git a/_crates/aws.md b/_crates/aws.md new file mode 100644 index 00000000..2b9e13d2 --- /dev/null +++ b/_crates/aws.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "aws" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/aws"] +tags: ["aws", +"web", +"server", +"http", +"https", +"soap", +"wsdl", +"ssl"] +version: "23.0.0" +short_description: "Ada Web Server" +dependencies: [{crate: "gnat", version: ">=12"}, +{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "make", version: "*"}, +{crate: "openssl", version: "*"}, +{crate: "xmlada", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/axmpp.md b/_crates/axmpp.md new file mode 100644 index 00000000..724326e5 --- /dev/null +++ b/_crates/axmpp.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "axmpp" +authors: ["Alexander Basov", +"Vadim Godunko"] +maintainers: ["Alexander Basov ", +"Max Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/coopht/axmpp"] +tags: ["xmpp", +"jabber", +"messaging"] +version: "1.0.0" +short_description: "XMPP client library in Ada" +dependencies: [{crate: "libgnutls", version: "*"}, +{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ayacc.md b/_crates/ayacc.md new file mode 100644 index 00000000..f28a8a03 --- /dev/null +++ b/_crates/ayacc.md @@ -0,0 +1,39 @@ +--- +layout: crate +crate: "ayacc" +authors: ["David Taback", +"Deepak Tolani"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Unlicense"] +websites: ["https://github.com/Ada-France/ayacc"] +tags: ["parser", +"generator", +"grammar"] +version: "1.4.0" +short_description: "An Ada LARL(1) parser generator" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Ayacc is an Ada parser generator in the style of yacc(1). + +The first implementation was written by David Taback and Deepak Tolani +at the University of California, Irvine. The last version that was released +appeared to be the Ayacc 1.1 released in 1994. + +Ayacc was used and improved by P2Ada, the Pascal to Ada translator. +This version of Ayacc is derived from the P2Ada ayacc implementation +released in August 2010. + +This version brings a number of improvements: + +- Ayacc now uses more standard options to configure the code generation +- The parser was improved to configure the parser stack size and + support Ada child packages. +- The grammar supports the %unit directive to control the Ada child packages. +- Several options provide a better control of the generated code. +- Ayacc can generate a reentrant parser. + + + diff --git a/_crates/b2ssum.md b/_crates/b2ssum.md new file mode 100644 index 00000000..c9837cb0 --- /dev/null +++ b/_crates/b2ssum.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "b2ssum" +authors: ["Lev Kujawski"] +maintainers: ["Lev Kujawski "] +licenses: ["MIT-0"] +websites: ["https://github.com/lkujaw/blake2s"] +tags: ["ada1995", +"hash", +"blake2", +"blake2s"] +version: "0.1.3" +short_description: "BLAKE2s file hash utility" +dependencies: [{crate: "blake2s", version: "~0.1.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bar_codes.md b/_crates/bar_codes.md new file mode 100644 index 00000000..e2de4613 --- /dev/null +++ b/_crates/bar_codes.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "bar_codes" +authors: ["Gautier de Montmollin"] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: [] +tags: ["bar", +"code", +"qr", +"code128"] +version: "2.0.0" +short_description: "Generate various types of bar codes on different output formats" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/basalt.md b/_crates/basalt.md new file mode 100644 index 00000000..987f88ff --- /dev/null +++ b/_crates/basalt.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "basalt" +authors: [] +maintainers: ["kliemann@adacore.com"] +licenses: ["AGPL-3.0-only"] +websites: [] +tags: ["embedded", +"nostd", +"queue", +"spark", +"stack", +"string", +"utils"] +version: "0.3.0" +short_description: "Collection of formally verified building blocks" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/base64.md b/_crates/base64.md new file mode 100644 index 00000000..92e197f8 --- /dev/null +++ b/_crates/base64.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "base64" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/base64"] +tags: ["base64"] +version: "1.0.1" +short_description: "Base64 encoding/decoding routines" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bb_pico_bsp.md b/_crates/bb_pico_bsp.md new file mode 100644 index 00000000..53a9d616 --- /dev/null +++ b/_crates/bb_pico_bsp.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "bb_pico_bsp" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/bb_pico_bsp"] +tags: ["embedded", +"pico", +"handheld", +"featherwing"] +version: "0.1.0" +short_description: "Ada BSP for the Keyboard Featherwing + RPI PICO" +dependencies: [{crate: "embedded_components", version: "~0.1.0"}, +{crate: "lvgl_ada", version: "~0.2.0"}, +{crate: "pico_bsp", version: "^1.0.0"}] +configuration_variables: [] +configuration_values: [{crate: 'lvgl_ada', settings: [{name: 'Color_16_SWAP', value: "true"}, +{name: 'Density_Per_Inch', value: "50"}, +{name: 'Double_Buffering', value: "true"}, +{name: 'Horizontal_Resolution', value: "320"}, +{name: 'Pixel_Bit_Depth', value: "Pix_16bit"}, +{name: 'Theme_Live_Update', value: "true"}, +{name: 'Vertical_Resolution', value: "240"}, +{name: 'Virtual_Display_Buffer_Size', value: "30720"}]}] + +--- + + diff --git a/_crates/bbqueue.md b/_crates/bbqueue.md new file mode 100644 index 00000000..77f0c970 --- /dev/null +++ b/_crates/bbqueue.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "bbqueue" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/bbqueue-spark"] +tags: ["spark", +"nostd", +"embedded", +"lockfree", +"dma", +"bipbuffer"] +version: "0.3.1" +short_description: "DMA friendly lock-free BipBuffer" +dependencies: [{crate: "atomic", version: "~0.5"}, +{crate: "gnat", version: ">=10"}] +configuration_variables: [] +configuration_values: [] + +--- +An Ada/SPARK proved implementation of James Munns' +BBQueue (https://github.com/jamesmunns/bbqueue) + diff --git a/_crates/bingada.md b/_crates/bingada.md new file mode 100644 index 00000000..215fa20e --- /dev/null +++ b/_crates/bingada.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "bingada" +authors: ["Javier Fuica Fernández", +"Manuel Gómez"] +maintainers: ["Manuel Gómez "] +licenses: ["MIT"] +websites: ["https://github.com/jfuica/bingada"] +tags: ["bingo", +"game", +"chance", +"family", +"sound", +"gtk", +"sfml"] +version: "1.0.0" +short_description: "Bingo application in GTKAda with sound in ASFML" +dependencies: [{crate: "gtkada", version: "^21.0.0"}, +{crate: "asfml", version: "^2.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/blake2s.md b/_crates/blake2s.md new file mode 100644 index 00000000..2e639231 --- /dev/null +++ b/_crates/blake2s.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "blake2s" +authors: ["Lev Kujawski"] +maintainers: ["Lev Kujawski "] +licenses: ["MIT-0"] +websites: ["https://github.com/lkujaw/blake2s"] +tags: ["ada1987", +"spark", +"hash", +"blake2", +"blake2s"] +version: "0.1.3" +short_description: "SPARK83 implementation of the BLAKE2s hash function" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/brackelib.md b/_crates/brackelib.md new file mode 100644 index 00000000..e4945574 --- /dev/null +++ b/_crates/brackelib.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "brackelib" +authors: ["Bent Bracke"] +maintainers: ["Bent Bracke "] +licenses: ["CC0-1.0"] +websites: ["https://github.com/bracke/brackelib"] +tags: ["utility", +"adt", +"stack", +"queue"] +version: "0.0.2" +short_description: "Library which contains various utility packages." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Ada library which contains various utility packages. Currently only a few implementations of abstract data types. + diff --git a/_crates/c_strings.md b/_crates/c_strings.md new file mode 100644 index 00000000..99e6fde7 --- /dev/null +++ b/_crates/c_strings.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "c_strings" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: [] +version: "1.0.0" +short_description: "Convenience subprograms to interact with C strings" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/canberra_ada.md b/_crates/canberra_ada.md new file mode 100644 index 00000000..874fcbc4 --- /dev/null +++ b/_crates/canberra_ada.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "canberra_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/canberra-ada"] +tags: ["canberra", +"audio", +"sound", +"linux"] +version: "2.0.2" +short_description: "Ada 2012 bindings for libcanberra" +dependencies: [{crate: "libcanberra", version: "~0.30.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/cashe.md b/_crates/cashe.md new file mode 100644 index 00000000..8b39205f --- /dev/null +++ b/_crates/cashe.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "cashe" +authors: ["AJ Ianozi"] +maintainers: ["AJ Ianozi "] +licenses: ["MIT"] +websites: ["https://github.com/AJ-Ianozi/Cashe/"] +tags: ["currency", +"money", +"decimal", +"finance"] +version: "1.0.0" +short_description: "A fixed-point decimal money library written in Ada." +dependencies: [{crate: "gnat", version: ">=12 & <2000"}, +{crate: "iso", version: "^2.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/cbsg.md b/_crates/cbsg.md new file mode 100644 index 00000000..eaf754b9 --- /dev/null +++ b/_crates/cbsg.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "cbsg" +authors: ["Gautier de Montmollin"] +maintainers: ["Frédéric Praca "] +licenses: ["Apache-2.0"] +websites: ["http://cbsg.sf.net/"] +tags: ["text", +"console"] +version: "0.0.1" +short_description: "Corporate Bullshit Generator library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/chacha20.md b/_crates/chacha20.md new file mode 100644 index 00000000..129e8f10 --- /dev/null +++ b/_crates/chacha20.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "chacha20" +authors: ["Mateus de Lima Oliveira"] +maintainers: ["Mateus de Lima Oliveira "] +licenses: ["MIT"] +websites: ["https://ativarsoft.com"] +tags: ["chacha20", +"security", +"cryptography"] +version: "0.1.0" +short_description: "ChaCha20 implementation in Ada." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/chests.md b/_crates/chests.md new file mode 100644 index 00000000..555e9a17 --- /dev/null +++ b/_crates/chests.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "chests" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/JeremyGrosser/chests"] +tags: ["containers", +"bounded", +"nostd", +"embedded"] +version: "0.1.1" +short_description: "Chests are bounded containers" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/clic.md b/_crates/clic.md new file mode 100644 index 00000000..e1a5ffaa --- /dev/null +++ b/_crates/clic.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "clic" +authors: ["Alejandro R. Mosteo", +"Fabien Chouteau"] +maintainers: ["alejandro@mosteo.com", +"Fabien Chouteau "] +licenses: ["MIT AND GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/alire-project/clic"] +tags: ["cli", +"command-line", +"user-input", +"tty"] +version: "0.2.1" +short_description: "Command Line Interface Components" +dependencies: [{crate: "aaa", version: "~0.2.4"}, +{crate: "ada_toml", version: "~0.2|~0.3"}, +{crate: "ansiada", version: "^1.0"}, +{crate: "simple_logging", version: "^1.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Command Line Interface Components: + - "git like" subcommand handling + - TTY color and formatting + - User input queries + - User configuration + + diff --git a/_crates/cmd_ada.md b/_crates/cmd_ada.md new file mode 100644 index 00000000..156cb600 --- /dev/null +++ b/_crates/cmd_ada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "cmd_ada" +authors: ["Henrik Härkönen"] +maintainers: ["Henrik Härkönen "] +licenses: ["Apache-2.0"] +websites: [] +tags: ["ui", +"command-line"] +version: "0.0.1" +short_description: "Command based text UI, inspired by Python cmd module" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/cobs.md b/_crates/cobs.md new file mode 100644 index 00000000..af23eefd --- /dev/null +++ b/_crates/cobs.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "cobs" +authors: ["Daniel King"] +maintainers: ["Daniel King "] +licenses: ["MIT"] +websites: ["https://github.com/damaki/cobs"] +tags: ["cobs", +"spark", +"embedded", +"nostd"] +version: "1.1.0" +short_description: "Consistent Overhead Byte Stuffing (COBS) encoder/decoder" +dependencies: [{crate: "gnat", version: ">=11.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/cortex_m.md b/_crates/cortex_m.md new file mode 100644 index 00000000..c4c37ad0 --- /dev/null +++ b/_crates/cortex_m.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "cortex_m" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"arm", +"nostd"] +version: "0.5.0" +short_description: "Drivers for Cortex-M micro-controllers (NVIC, SysTick, etc.)" +dependencies: [{crate: "gnat_arm_elf", version: ">=12"}, +{crate: "hal", version: "~0.3"}] +configuration_variables: [{name: 'core', type: 'Enum (m0, m0p, m4, m4f, m7f, m7df)'}] +configuration_values: [] + +--- +# cortex-m + +Ada drivers for the peripherals of ARM Cortex-M micro-controllers +(NVIC,\nSysTick, etc.) + +This crate is a snapshot of the `Cortex-M` support in [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/arch/ARM/cortex_m). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + + + diff --git a/_crates/curl.md b/_crates/curl.md new file mode 100644 index 00000000..187f2a1a --- /dev/null +++ b/_crates/curl.md @@ -0,0 +1 @@ +Not found: curl* diff --git a/_crates/dashera.md b/_crates/dashera.md new file mode 100644 index 00000000..6ca7f865 --- /dev/null +++ b/_crates/dashera.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "dashera" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["MIT"] +websites: ["https://github.com/SMerrony/dashera"] +tags: ["gtk", +"terminal", +"dasher", +"emulator"] +version: "0.14.0" +short_description: "DASHER Terminal Emulator" +dependencies: [{crate: "gtkada", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/dcf.md b/_crates/dcf.md new file mode 100644 index 00000000..d4cb1237 --- /dev/null +++ b/_crates/dcf.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "dcf" +authors: ["onox", +"Gautier de Montmollin"] +maintainers: ["onox "] +licenses: ["MIT"] +websites: ["https://github.com/onox/dcf-ada"] +tags: ["zip", +"document", +"container", +"archive"] +version: "2.0.3" +short_description: "Ada 2012 library for document container files, Zip-based archive files" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/dependency_graph_extractor.md b/_crates/dependency_graph_extractor.md new file mode 100644 index 00000000..3c23076e --- /dev/null +++ b/_crates/dependency_graph_extractor.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "dependency_graph_extractor" +authors: ["Jeroen Ketema", +"Pierre van de Laar"] +maintainers: ["Pierre van de Laar "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/TNO/Dependency_Graph_Extractor-Ada"] +tags: ["extract", +"dependency", +"analysis", +"graph", +"graphml"] +version: "22.0.0" +short_description: "Extract dependency information from Ada projects" +dependencies: [{crate: "libadalang", version: "^22.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/dg_loada.md b/_crates/dg_loada.md new file mode 100644 index 00000000..5a33d18b --- /dev/null +++ b/_crates/dg_loada.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "dg_loada" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["MIT"] +websites: ["https://github.com/SMerrony/dg_loada"] +tags: ["legacy", +"recovering-data", +"dg", +"data-general", +"aos-vs"] +version: "1.4.3" +short_description: "dg_loada loads (restores) legacy DG AOS/VS DUMP_II files" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +dg_loada loads (restores) backup files created by Data General's AOS/VS DUMP_II, and maybe DUMP_III, files on any modern system supported by GNAT Ada. + diff --git a/_crates/dir_iterators.md b/_crates/dir_iterators.md new file mode 100644 index 00000000..8a4ea461 --- /dev/null +++ b/_crates/dir_iterators.md @@ -0,0 +1,76 @@ +--- +layout: crate +crate: "dir_iterators" +authors: ["Paul Jarrett"] +maintainers: ["Paul Jarrett "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/pyjarrett/dir_iterators"] +tags: ["dir", +"files", +"walk"] +version: "0.0.4" +short_description: "Ways of moving around directory trees" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://github.com/pyjarrett/dir_iterators/actions/workflows/build.yml/badge.svg)](https://github.com/pyjarrett/dir_iterators/actions) +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/dir_iterators.json)](https://alire.ada.dev/crates/dir_iterators.html) + +## Iterator-based directory walks + +Provides convenient ways to walk directories based on Ada 2012 user-defined +iterators. + +Inspired by [walkdir for Rust](https://github.com/BurntSushi/walkdir). + + +## Walking a directory tree recursively + +```ada +with Ada.Directories; +with Ada.Text_IO; +with Dir_Iterators.Recursive; + +-- ... + +Dir_Walk : constant Dir_Iterators.Recursive.Recursive_Dir_Walk + := Dir_Iterators.Recursive.Walk (Dir); + +for Dir_Entry of Dir_Walk loop + Ada.Text_IO.Put_Line(Ada.Directories.Full_Name(Dir_Entry)); +end loop; +``` + +## Walking a directory tree recursively with a filter + +Use a filter to prune directories and files from the walk. + +```ada +with Ada.Directories; +with Ada.Text_IO; +with Dir_Iterators.Recursive; + +package AD renames Ada.Directories; + +-- ... + + procedure Foo (Include_Dot_Files : Boolean; Dir_Root : String) is + function Filter (E : Ada.Directories.Directory_Entry_Type) return Boolean is + Name : constant String := Ada.Directories.Simple_Name(E); + begin + return Include_Dot_Files + or else (not (Name'Length > 1 and then Name(1) = '.')); + end Filter; + + Walk : constant Dir_Iterators.Recursive.Recursive_Dir_Walk := + Dir_Iterators.Recursive.Walk (Dir_Root, Filter'Access); + begin + for Dir_Entry of Walk loop + Ada.Text_IO.Put_Line(Ada.Directories.Full_Name(Dir_Entry)); + end loop; + end Foo; +``` + + diff --git a/_crates/dotenv.md b/_crates/dotenv.md new file mode 100644 index 00000000..92233513 --- /dev/null +++ b/_crates/dotenv.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "dotenv" +authors: ["Heziode"] +maintainers: ["Heziode "] +licenses: ["BSD-2-Clause"] +websites: ["https://github.com/Heziode/ada-dotenv"] +tags: ["dotenv", +"env", +"environment", +"variables", +"config", +"settings"] +version: "1.0.0" +short_description: "Loads environment variables from .env for Ada projects." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/dummyserver.md b/_crates/dummyserver.md new file mode 100644 index 00000000..e3fb6da2 --- /dev/null +++ b/_crates/dummyserver.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "dummyserver" +authors: ["Bent Bracke"] +maintainers: ["Bent Bracke "] +licenses: ["CC0-1.0"] +websites: ["https://github.com/bracke/dummyserver"] +tags: ["http", +"server", +"test", +"terminal", +"console"] +version: "1.0.0" +short_description: "DummyServer is a terminal program that serves dummy content" +dependencies: [{crate: "json", version: "^5.0.3"}] +configuration_variables: [] +configuration_values: [] + +--- +DummyServer is a terminal program that serves dummy content (resources). These resources are defined in a single JSON configuration and configuration is thus very simple and fast. The prime purpose of DummyServer is to serve content to test client applications. + diff --git a/_crates/dynamo.md b/_crates/dynamo.md new file mode 100644 index 00000000..f2ae5679 --- /dev/null +++ b/_crates/dynamo.md @@ -0,0 +1,40 @@ +--- +layout: crate +crate: "dynamo" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/dynamo"] +tags: ["uml", +"generator", +"database"] +version: "1.4.0" +short_description: "Dynamo Ada Generator" +dependencies: [{crate: "ado_all", version: "2.4.0"}, +{crate: "ado_mysql", version: "2.4.0"}, +{crate: "ado_postgresql", version: "2.4.0"}, +{crate: "ado_sqlite", version: "2.4.0"}, +{crate: "elada", version: "^1.8.6"}, +{crate: "libgpr", version: "*"}, +{crate: "security", version: "^1.5.0"}, +{crate: "serverfaces", version: "1.6.0"}, +{crate: "servletada", version: "^1.7.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_xml", version: "^2.6.0"}, +{crate: "xmlada", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/dynamo/badges/build.json)](https://porion.vacs.fr/porion/projects/view/dynamo/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/dynamo/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/dynamo/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/dynamo/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/dynamo/summary) + +This Ada05 application is a code generator used to generate +an Ada Web Application or database mappings from hibernate-like +XML description, YAML doctrine model or UML models. It provides various commands for the +generation of a web application which uses the Ada Web Application framework +(https://gitlab.com/stcarrez/ada-awa/). + + + diff --git a/_crates/eagle_lander.md b/_crates/eagle_lander.md new file mode 100644 index 00000000..f55d4a69 --- /dev/null +++ b/_crates/eagle_lander.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "eagle_lander" +authors: [] +maintainers: ["fabien.choutea@gmail.com"] +licenses: ["GPL-3.0-only"] +websites: [] +tags: ["simulator", +"game", +"gtk"] +version: "1.2.0" +short_description: "Apollo 11 lunar lander simulator" +dependencies: [{crate: "gtkada", version: "^21"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/edc_client.md b/_crates/edc_client.md new file mode 100644 index 00000000..6ff1ade6 --- /dev/null +++ b/_crates/edc_client.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "edc_client" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/edc_client"] +tags: ["embedded", +"rp2040"] +version: "1.5.1" +short_description: "Client library for: github.com/hgrodriguez/embedded-dashboard-console" +dependencies: [{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/eeprom_i2c.md b/_crates/eeprom_i2c.md new file mode 100644 index 00000000..c38b4f49 --- /dev/null +++ b/_crates/eeprom_i2c.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "eeprom_i2c" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/eeprom_i2c"] +tags: ["embedded", +"nostd", +"eeprom", +"rp2040", +"i2c"] +version: "6.0.0" +short_description: "EEPROM I2C drivers library for embedded platforms" +dependencies: [{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/elada.md b/_crates/elada.md new file mode 100644 index 00000000..97b0f2c3 --- /dev/null +++ b/_crates/elada.md @@ -0,0 +1,38 @@ +--- +layout: crate +crate: "elada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-el"] +tags: ["web", +"expression", +"expander", +"parser"] +version: "1.8.6" +short_description: "Expression Language Library (JSR245)" +dependencies: [{crate: "utilada", version: "^2.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-el/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-el/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-el/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-el/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-el/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-el/summary) + +This Ada05 library provides the support for a simple Expression Language +close to the Java Unified Expression Language (EL). + +The API provided by the EL library is inspired from the Java +Unified Expression Language shared by the JSP 2.1 and JSF 1.2 technologies. +See Expression Language specification in JSR245 +(https://jcp.org/en/jsr/summary?id=245) + +The EL expression is intensively used in web development applications built +on top of various Java technologies but also on top of +[Ada Web Application](https://gitlab.com/stcarrez/ada-awa) +and [Ada Server Faces](https://gitlab.com/stcarrez/ada-asf). + + + + diff --git a/_crates/elevator.md b/_crates/elevator.md new file mode 100644 index 00000000..2e0dc959 --- /dev/null +++ b/_crates/elevator.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "elevator" +authors: ["Thai Son Hoang"] +maintainers: ["Thai Son Hoang "] +licenses: ["CC-BY-SA-4.0"] +websites: ["https://github.com/ada-Soton/elevator"] +tags: ["elevator", +"teaching"] +version: "1.0.0" +short_description: "A Simple Elevator System" +dependencies: [{crate: "gnatprove", version: "^12.1.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/emacs_ada_mode.md b/_crates/emacs_ada_mode.md new file mode 100644 index 00000000..365aa745 --- /dev/null +++ b/_crates/emacs_ada_mode.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "emacs_ada_mode" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://www.nongnu.org/ada-mode/"] +tags: ["emacs", +"ada-mode"] +version: "8.0.5" +short_description: "Parser for Emacs ada-mode" +dependencies: [{crate: "emacs_wisi", version: "~4.2.0"}, +{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "re2c", version: ">=2.0.3"}, +{crate: "stephes_ada_library", version: "~3.7.2"}, +{crate: "wisitoken", version: "~4.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/emacs_gpr_mode.md b/_crates/emacs_gpr_mode.md new file mode 100644 index 00000000..4c4e323e --- /dev/null +++ b/_crates/emacs_gpr_mode.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "emacs_gpr_mode" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://elpa.gnu.org/packages/gpr-mode.html"] +tags: ["indent", +"highlight", +"parser", +"gpr", +"emacs"] +version: "1.0.3" +short_description: "parser for Emacs gpr mode" +dependencies: [{crate: "emacs_wisi", version: "~4.2.0"}, +{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "re2c", version: ">=2.2"}, +{crate: "stephes_ada_library", version: "~3.7.2"}, +{crate: "wisitoken", version: "~4.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Generalized LR error-correcting parser generated using WisiToken, +interfaced to Emacs via the wisi package. + +Provides semantic highlighting, indent, single-file navigation. + + diff --git a/_crates/emacs_gpr_query.md b/_crates/emacs_gpr_query.md new file mode 100644 index 00000000..794c3d37 --- /dev/null +++ b/_crates/emacs_gpr_query.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "emacs_gpr_query" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://elpa.gnu.org/packages/gpr-query.html"] +tags: ["emacs", +"xref"] +version: "1.0.1" +short_description: "Emacs xref backend using information output by GNAT compiler." +dependencies: [{crate: "gnat", version: ">=11 & <2000"}, +{crate: "gnatcoll", version: "^22.0.0"}, +{crate: "gnatcoll_sqlite", version: "^22.0.0"}, +{crate: "gnatcoll_xref", version: "^22.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/emacs_wisi.md b/_crates/emacs_wisi.md new file mode 100644 index 00000000..07ef4954 --- /dev/null +++ b/_crates/emacs_wisi.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "emacs_wisi" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://elpa.gnu.org/packages/wisi.html"] +tags: ["emacs", +"indent", +"project", +"compile", +"xref"] +version: "4.2.0" +short_description: "Ada code for Emacs wisi ELPA package" +dependencies: [{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "stephes_ada_library", version: "~3.7.2"}, +{crate: "wisitoken", version: "~4.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/emacs_wisitoken_grammar_mode.md b/_crates/emacs_wisitoken_grammar_mode.md new file mode 100644 index 00000000..b8309c0a --- /dev/null +++ b/_crates/emacs_wisitoken_grammar_mode.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "emacs_wisitoken_grammar_mode" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://elpa.gnu.org/packages/wisitoken-grammar-mode.html"] +tags: ["indent", +"highlight", +"parser", +"emacs"] +version: "1.3.0" +short_description: "parser for Emacs wisitoken-grammar mode" +dependencies: [{crate: "emacs_wisi", version: "~4.2.0"}, +{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "re2c", version: ">=2.2"}, +{crate: "stephes_ada_library", version: "~3.7.2"}, +{crate: "wisitoken", version: "~4.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Generalized LR error-correcting parser for WisiToken grammar source +files, generated using WisiToken, interfaced to Emacs via the wisi +package. + +Provides semantic highlighting, indent, single-file navigation. + + diff --git a/_crates/embedded_components.md b/_crates/embedded_components.md new file mode 100644 index 00000000..36a70d6a --- /dev/null +++ b/_crates/embedded_components.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "embedded_components" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"nostd"] +version: "0.2.0" +short_description: "Platform agnostic drivers to interface external components" +dependencies: [{crate: "adl_middleware", version: "~0.2.0"}, +{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# embedded-components + +Platform agnostic drivers to interface external components. + +This crate is a snapshot of the `components` of [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/components). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + + + diff --git a/_crates/emojis.md b/_crates/emojis.md new file mode 100644 index 00000000..10d4c207 --- /dev/null +++ b/_crates/emojis.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "emojis" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/emojis"] +tags: ["emoji", +"string", +"text", +"unicode"] +version: "1.0.1" +short_description: "A library to replace names between colons with emojis" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/endianness.md b/_crates/endianness.md new file mode 100644 index 00000000..1fb0b9b4 --- /dev/null +++ b/_crates/endianness.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "endianness" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/endianness"] +tags: ["spark", +"endianness", +"system"] +version: "1.0.0" +short_description: "Convenience subprograms to convert between Big- and Little-endianness" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/epoll.md b/_crates/epoll.md new file mode 100644 index 00000000..ac3e5237 --- /dev/null +++ b/_crates/epoll.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "epoll" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/JeremyGrosser/epoll-ada"] +tags: ["linux", +"epoll", +"net"] +version: "0.1.1" +short_description: "Linux epoll binding" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/esp_idf.md b/_crates/esp_idf.md new file mode 100644 index 00000000..e2e6026b --- /dev/null +++ b/_crates/esp_idf.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "esp_idf" +authors: [] +maintainers: ["jk@jkliemann.de"] +licenses: ["MIT"] +websites: [] +tags: ["embedded", +"nostd", +"esp", +"binding", +"riscv", +"xtensa"] +version: "5.0.2-1" +short_description: "Ada binding for the ESP-IDF SDK" +dependencies: [{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/euler_tools.md b/_crates/euler_tools.md new file mode 100644 index 00000000..cad2997d --- /dev/null +++ b/_crates/euler_tools.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "euler_tools" +authors: ["Francesc Rocher"] +maintainers: ["Francesc Rocher "] +licenses: ["MIT"] +websites: ["https://github.com/rocher/euler_tools"] +tags: ["project-euler", +"mathematics"] +version: "1.2.1" +short_description: "Assortment of mathematical functions to solve Project Euler problems." +dependencies: [{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/evdev.md b/_crates/evdev.md new file mode 100644 index 00000000..6792ec19 --- /dev/null +++ b/_crates/evdev.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "evdev" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/evdev-ada"] +tags: ["evdev", +"force-feedback", +"linux", +"input"] +version: "2.0.2" +short_description: "Library for input devices and force-feedback using Linux' evdev API" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ews.md b/_crates/ews.md new file mode 100644 index 00000000..a7f9ab44 --- /dev/null +++ b/_crates/ews.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "ews" +authors: ["Simon Wright "] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/simonjwright/ews"] +tags: ["web", +"server"] +version: "1.11.0" +short_description: "Embedded Web Server" +dependencies: [{crate: "xmlada", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +EWS is a web server construction kit, designed for embedded +applications using the GNAT Ada compiler. + +The project is hosted at https://github.com/simonjwright/ews. + + + diff --git a/_crates/excel_writer.md b/_crates/excel_writer.md new file mode 100644 index 00000000..7aaf46e8 --- /dev/null +++ b/_crates/excel_writer.md @@ -0,0 +1,27 @@ +--- +layout: crate +crate: "excel_writer" +authors: ["Gautier de Montmollin"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://excel-writer.sourceforge.io/"] +tags: ["excel", +"spreadsheet", +"xls", +"csv"] +version: "18.0.0" +short_description: "Produce Excel spreadsheets" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Excel_Out is a standalone, portable Ada package for writing Excel spreadsheets with basic formattings, easily and programmatically. + +Enables the automatic production of reports. + +No interaction needed with Excel or MS Office. + +Includes a CSV parser with related tools. + + diff --git a/_crates/fastpbkdf2_ada.md b/_crates/fastpbkdf2_ada.md new file mode 100644 index 00000000..2cb83f67 --- /dev/null +++ b/_crates/fastpbkdf2_ada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "fastpbkdf2_ada" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/fastpbkdf2_ada"] +tags: ["pbkdf2", +"cryptography"] +version: "2.0.0" +short_description: "Binding and an Ada wrapper to fastpbkdf2" +dependencies: [{crate: "openssl", version: "~1.1.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/felix.md b/_crates/felix.md new file mode 100644 index 00000000..965e41a5 --- /dev/null +++ b/_crates/felix.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "felix" +authors: ["Lev Kujawski"] +maintainers: ["Lev Kujawski "] +licenses: ["MIT-0"] +websites: ["https://github.com/lkujaw/felix"] +tags: ["ada1995", +"i18n", +"nls", +"localization", +"localisation", +"l10n"] +version: "0.2.0" +short_description: "X/Open Native Language System (NLS) for Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/florist.md b/_crates/florist.md new file mode 100644 index 00000000..ba9a73be --- /dev/null +++ b/_crates/florist.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "florist_blady" +authors: ["Florida State University (FSU)", +"AdaCore"] +maintainers: ["Pascal Pignard "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/Blady-Com/florist"] +tags: ["florist", +"posix", +"bindings"] +version: "6.0.0" +short_description: "POSIX Ada Bindings" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/florist_blady.md b/_crates/florist_blady.md new file mode 100644 index 00000000..ba9a73be --- /dev/null +++ b/_crates/florist_blady.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "florist_blady" +authors: ["Florida State University (FSU)", +"AdaCore"] +maintainers: ["Pascal Pignard "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/Blady-Com/florist"] +tags: ["florist", +"posix", +"bindings"] +version: "6.0.0" +short_description: "POSIX Ada Bindings" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/freetypeada.md b/_crates/freetypeada.md new file mode 100644 index 00000000..2edb84a6 --- /dev/null +++ b/_crates/freetypeada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "freetypeada" +authors: ["Felix Krause"] +maintainers: ["Felix Krause "] +licenses: ["MIT"] +websites: ["https://github.com/flyx/FreeTypeAda"] +tags: ["fonts", +"rendering"] +version: "0.1.0" +short_description: "Thick binding to the FreeType library" +dependencies: [{crate: "libfreetype", version: "^2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/garlic.md b/_crates/garlic.md new file mode 100644 index 00000000..e65193e2 --- /dev/null +++ b/_crates/garlic.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "garlic" +authors: ["AdaCore"] +maintainers: ["Max Reznik "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-2.0"] +websites: ["https://github.com/reznikmm/garlic/wiki"] +tags: ["dsa", +"distributed", +"annex", +"network", +"glade"] +version: "6.0.1" +short_description: "GNAT Library for Ada Distributed Environment (garlic)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/geo_coords.md b/_crates/geo_coords.md new file mode 100644 index 00000000..51b6e045 --- /dev/null +++ b/_crates/geo_coords.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "geo_coords" +authors: ["Saiffullah Sabir Mohamed"] +maintainers: ["Saiffullah Sabir Mohamed "] +licenses: ["MIT"] +websites: ["https://github.com/TechnicalVillager/geo_coords"] +tags: ["geo", +"coordinates", +"latitude", +"longitude", +"distance", +"bearing", +"haversine"] +version: "1.0.0" +short_description: "Geo coordinates calculation for determining Location, Distance, Bearing" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/geste.md b/_crates/geste.md new file mode 100644 index 00000000..16aabb16 --- /dev/null +++ b/_crates/geste.md @@ -0,0 +1,70 @@ +--- +layout: crate +crate: "geste" +authors: ["Fabien Chouteau "] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/GESTE"] +tags: ["game", +"nostd", +"rendering", +"sprite"] +version: "1.1.0" +short_description: "GEneric Sprite and Tile Engine" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + +[![Build Status](https://travis-ci.org/Fabien-Chouteau/GESTE.svg?branch=master)](https://travis-ci.org/Fabien-Chouteau/GESTE) +[![codecov](https://codecov.io/gh/Fabien-Chouteau/GESTE/branch/master/graph/badge.svg)](https://codecov.io/gh/Fabien-Chouteau/GESTE) + +GESTE is a sprite and tile 2D render engine designed to run on +micro-controllers low performance systems. GESTE also provides a basic math and +physic engine using fixed point arithmetic. + +## Creating maps + +GESTE is developed in parallel with +[tiled-code-gen](https://github.com/Fabien-Chouteau/tiled-code-gen), a tool +that generates code from the [Tiled Map Editor](https://www.mapeditor.org/). + +## Examples + +The crate `geste_examples` contains 3 examples of different game genre: + - platformer + - RPG + - racing + +## Design + +### Layers + +In GESTE, a scene is made of layers. Native layers can be `Sprite`, `Grid` or +`Text`. You can implement you own type of layers if you want to. + + - `Sprite` layers display a single tile at a given position + - `Grid` layers display a grid of tiles at a given position + - `Text` layers display a text at a given position + +Layers have a priority which tells in which order they will be drawn on the +screen. + +### Rendering + +The rendering algorithm is somewhat similar to ray casting. Instead of taking +each objects of the scene and drawing it on the screen, the engine takes each +pixel and tries to find its color from the different objects of the scene. + +For each pixel of the area that is being drawn, GESTE will go through the list +of layers and see if the corresponding pixel inside the layer is transparent or +not. When a non transparent pixel is found, the pixel is pushed to the screen +and the procedure starts again for the next pixel. If all the layers have a +transparent pixel, the background color is used. + +The more layers to go through, the more time time it will take to render a +pixel. + + + diff --git a/_crates/geste_examples.md b/_crates/geste_examples.md new file mode 100644 index 00000000..4c995abd --- /dev/null +++ b/_crates/geste_examples.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "geste_examples" +authors: ["Fabien Chouteau "] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/GESTE-examples"] +tags: [] +version: "1.0.1" +short_description: "Example for the GESTE game engine" +dependencies: [{crate: "geste", version: "^1.0.0"}, +{crate: "sdlada", version: "^2.3.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/get_password.md b/_crates/get_password.md new file mode 100644 index 00000000..5e9fc56f --- /dev/null +++ b/_crates/get_password.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "get_password" +authors: ["Riccardo Bernardini"] +maintainers: ["Riccardo Bernardini "] +licenses: ["MIT"] +websites: ["https://gitlab.com/my-ada-library/get_password"] +tags: ["password", +"echo", +"textio"] +version: "1.0.0-rc" +short_description: "Read a string without echo, in password-like style" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is a small Ada library that provides a procedure Get_Password that reads a string from the terminal replacing each character with a *. The input can be terminated both by the user pressing end-of-line or when the buffer is filled. Currently it works only on POSIX-based system. This version was checked with Spark + diff --git a/_crates/getopt.md b/_crates/getopt.md new file mode 100644 index 00000000..bc2ab77f --- /dev/null +++ b/_crates/getopt.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "getopt" +authors: ["nytpu"] +maintainers: ["nytpu "] +licenses: ["MPL-2.0"] +websites: ["https://git.sr.ht/~nytpu/getopt-ada"] +tags: ["arguments", +"options", +"flags", +"getopt"] +version: "2.0.0" +short_description: "POSIX getopt(3) for Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gid.md b/_crates/gid.md new file mode 100644 index 00000000..9d24e847 --- /dev/null +++ b/_crates/gid.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "gid" +authors: ["Gautier de Montmollin"] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: ["https://gen-img-dec.sourceforge.io/"] +tags: ["image", +"decoder", +"bmp", +"gif", +"jpeg", +"jpg", +"pbm", +"pgm", +"png", +"pnm", +"ppm", +"qoi", +"tga", +"targa"] +version: "10.0.0" +short_description: "Decoding a broad variety of image formats" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/glut.md b/_crates/glut.md new file mode 100644 index 00000000..ae0b3683 --- /dev/null +++ b/_crates/glut.md @@ -0,0 +1 @@ +Not found: glut* diff --git a/_crates/gnat_arm_elf.md b/_crates/gnat_arm_elf.md new file mode 100644 index 00000000..6d3f83a8 --- /dev/null +++ b/_crates/gnat_arm_elf.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnat_arm_elf" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later AND GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "13.1.0" +short_description: "The GNAT Ada compiler - ARM cross-compiler" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnat_avr_elf.md b/_crates/gnat_avr_elf.md new file mode 100644 index 00000000..b6a287bd --- /dev/null +++ b/_crates/gnat_avr_elf.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnat_avr_elf" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later AND GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "13.1.0" +short_description: "The GNAT Ada compiler - AVR cross-compiler" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnat_external.md b/_crates/gnat_external.md new file mode 100644 index 00000000..b6e2b54a --- /dev/null +++ b/_crates/gnat_external.md @@ -0,0 +1 @@ +Not found: gnat_external* diff --git a/_crates/gnat_math_extensions.md b/_crates/gnat_math_extensions.md new file mode 100644 index 00000000..1e1219c1 --- /dev/null +++ b/_crates/gnat_math_extensions.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "gnat_math_extensions" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/simonjwright/gnat_math_extensions"] +tags: ["matrices", +"blas", +"lapack"] +version: "1.1.0" +short_description: "Eigenvalues, eigenvectors for non-symmetric, non-Hermitian matrices" +dependencies: [{crate: "libblas", version: "*"}, +{crate: "liblapack", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnat_native.md b/_crates/gnat_native.md new file mode 100644 index 00000000..97cd806a --- /dev/null +++ b/_crates/gnat_native.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnat_native" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later AND GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "13.1.0" +short_description: "The GNAT Ada compiler - Native" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnat_riscv64_elf.md b/_crates/gnat_riscv64_elf.md new file mode 100644 index 00000000..939f9861 --- /dev/null +++ b/_crates/gnat_riscv64_elf.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnat_riscv64_elf" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later AND GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "13.1.0" +short_description: "The GNAT Ada compiler - RISC-V cross-compiler" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll.md b/_crates/gnatcoll.md new file mode 100644 index 00000000..fc3acff9 --- /dev/null +++ b/_crates/gnatcoll.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-core"] +tags: ["gnatcoll", +"json", +"email", +"refcount", +"projects", +"gpr", +"vfs"] +version: "23.0.0" +short_description: "GNAT Components Collection - Core packages" +dependencies: [{crate: "libgpr", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_gmp.md b/_crates/gnatcoll_gmp.md new file mode 100644 index 00000000..58b2953d --- /dev/null +++ b/_crates/gnatcoll_gmp.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll_gmp" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"gmp", +"arbitrary", +"precision", +"arithmetic"] +version: "23.0.0" +short_description: "GNAT Components Collection - GNU Multiple Precision Arithmetic binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "libgmp", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_iconv.md b/_crates/gnatcoll_iconv.md new file mode 100644 index 00000000..127a16d1 --- /dev/null +++ b/_crates/gnatcoll_iconv.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "gnatcoll_iconv" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"iconv", +"i18n"] +version: "23.0.0" +short_description: "GNAT Components Collection - iconv binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_lzma.md b/_crates/gnatcoll_lzma.md new file mode 100644 index 00000000..3391420b --- /dev/null +++ b/_crates/gnatcoll_lzma.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll_lzma" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"lzma", +"compression", +"7z", +"7zip"] +version: "23.0.0" +short_description: "GNAT Components Collection - lzma binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "liblzma", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_omp.md b/_crates/gnatcoll_omp.md new file mode 100644 index 00000000..4e70e8e9 --- /dev/null +++ b/_crates/gnatcoll_omp.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gnatcoll_omp" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"openmp", +"libgomp"] +version: "23.0.0" +short_description: "GNAT Components Collection - OpenMP binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "libgomp", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_postgres.md b/_crates/gnatcoll_postgres.md new file mode 100644 index 00000000..5f33626f --- /dev/null +++ b/_crates/gnatcoll_postgres.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll_postgres" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-db"] +tags: ["gnatcoll", +"gnatcoll-db", +"postgres", +"postgresql", +"database"] +version: "23.0.0" +short_description: "GNAT Components Collection - postgres" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "gnatcoll_sql", version: "~23.0.0"}, +{crate: "postgresql", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_python.md b/_crates/gnatcoll_python.md new file mode 100644 index 00000000..3aef8a97 --- /dev/null +++ b/_crates/gnatcoll_python.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gnatcoll_python" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"python", +"python2"] +version: "21.0.0" +short_description: "GNAT Components Collection - python2 binding" +dependencies: [{crate: "gnatcoll", version: "~21.0.0"}, +{crate: "libpython2dev", version: "^2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_python3.md b/_crates/gnatcoll_python3.md new file mode 100644 index 00000000..a0124998 --- /dev/null +++ b/_crates/gnatcoll_python3.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gnatcoll_python3" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"python", +"python3"] +version: "23.0.0" +short_description: "GNAT Components Collection - python3 binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "libpython3dev", version: "^3.10"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_readline.md b/_crates/gnatcoll_readline.md new file mode 100644 index 00000000..13aba0b3 --- /dev/null +++ b/_crates/gnatcoll_readline.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gnatcoll_readline" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"readline", +"cli"] +version: "23.0.0" +short_description: "GNAT Components Collection - readline binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "libreadline", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_sql.md b/_crates/gnatcoll_sql.md new file mode 100644 index 00000000..6edb6492 --- /dev/null +++ b/_crates/gnatcoll_sql.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "gnatcoll_sql" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-db"] +tags: ["gnatcoll", +"gnatcoll-db", +"sql", +"database"] +version: "23.0.0" +short_description: "GNAT Components Collection - sql" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_sqlite.md b/_crates/gnatcoll_sqlite.md new file mode 100644 index 00000000..584e503e --- /dev/null +++ b/_crates/gnatcoll_sqlite.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "gnatcoll_sqlite" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-db"] +tags: ["gnatcoll", +"gnatcoll-db", +"sqlite", +"sql", +"database"] +version: "23.0.0" +short_description: "GNAT Components Collection - sqlite" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "gnatcoll_sql", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_syslog.md b/_crates/gnatcoll_syslog.md new file mode 100644 index 00000000..2af05a10 --- /dev/null +++ b/_crates/gnatcoll_syslog.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "gnatcoll_syslog" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"syslog", +"logging"] +version: "23.0.0" +short_description: "GNAT Components Collection - syslog binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_xref.md b/_crates/gnatcoll_xref.md new file mode 100644 index 00000000..59f50702 --- /dev/null +++ b/_crates/gnatcoll_xref.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll_xref" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-db"] +tags: ["gnatcoll", +"database", +"xref", +"ali"] +version: "23.0.0" +short_description: "GNAT Components Collection - xref" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "gnatcoll_iconv", version: "~23.0.0"}, +{crate: "gnatcoll_sql", version: "~23.0.0"}, +{crate: "gnatcoll_sqlite", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_zlib.md b/_crates/gnatcoll_zlib.md new file mode 100644 index 00000000..a753d03a --- /dev/null +++ b/_crates/gnatcoll_zlib.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatcoll_zlib" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gnatcoll-bindings"] +tags: ["gnatcoll", +"bindings", +"zlib", +"compression", +"zip", +"deflate"] +version: "23.0.0" +short_description: "GNAT Components Collection - zlib binding" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "zlib", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcov.md b/_crates/gnatcov.md new file mode 100644 index 00000000..b11e36e2 --- /dev/null +++ b/_crates/gnatcov.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "gnatcov" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: [] +websites: [] +tags: ["coverage", +"analysis", +"test"] +version: "22.0.1" +short_description: "Coverage Analysis Tool" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatdist_garlic.md b/_crates/gnatdist_garlic.md new file mode 100644 index 00000000..5f2bdc22 --- /dev/null +++ b/_crates/gnatdist_garlic.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gnatdist_garlic" +authors: ["AdaCore"] +maintainers: ["Max Reznik "] +licenses: ["GPL-2.0-or-later"] +websites: ["https://github.com/reznikmm/garlic/wiki"] +tags: ["dsa", +"distributed", +"annex", +"network", +"glade"] +version: "6.0.1" +short_description: "The configuration tool gnatdist for GARLIC" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatdoc.md b/_crates/gnatdoc.md new file mode 100644 index 00000000..cb75238d --- /dev/null +++ b/_crates/gnatdoc.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "gnatdoc" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/gnatdoc"] +tags: ["documentation", +"tools"] +version: "23.0.0" +short_description: "GNAT Documentation Generation Tool (as `gnatdoc4` binary)" +dependencies: [{crate: "gpr_unit_provider", version: "~23.0.0"}, +{crate: "libadalang", version: "~23.0.0"}, +{crate: "libgpr2", version: "~23.0.0"}, +{crate: "markdown", version: "~23.0.0"}, +{crate: "vss", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatprove.md b/_crates/gnatprove.md new file mode 100644 index 00000000..9f6b8d3b --- /dev/null +++ b/_crates/gnatprove.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnatprove" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later"] +websites: [] +tags: [] +version: "12.1.1" +short_description: "Automatic formal verification of SPARK code" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnoga.md b/_crates/gnoga.md new file mode 100644 index 00000000..0a2d93bb --- /dev/null +++ b/_crates/gnoga.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "gnoga" +authors: ["David Botton"] +maintainers: ["Pascal Pignard "] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/Blady-Com/gnoga"] +tags: ["gui", +"web", +"server", +"http", +"https", +"ssl"] +version: "2.1.2" +short_description: "gnoga - The GNU Omnificent GUI for Ada" +dependencies: [{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "simple_components", version: "^4.62.0"}, +{crate: "uxstrings", version: "~0.4.0+alpha-20220803"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gpr_unit_provider.md b/_crates/gpr_unit_provider.md new file mode 100644 index 00000000..b7c80870 --- /dev/null +++ b/_crates/gpr_unit_provider.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "gpr_unit_provider" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "23.0.0" +short_description: "GNAT Project File Library" +dependencies: [{crate: "libadalang", version: "~23.0.0"}, +{crate: "libgpr2", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gprbuild.md b/_crates/gprbuild.md new file mode 100644 index 00000000..5c6082e9 --- /dev/null +++ b/_crates/gprbuild.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gprbuild" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: [] +websites: [] +tags: [] +version: "22.0.1" +short_description: "The GPRBuild Ada/multilanguage build tool" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gtkada.md b/_crates/gtkada.md new file mode 100644 index 00000000..d17dd251 --- /dev/null +++ b/_crates/gtkada.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "gtkada" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com", +"reznikmm@gmail.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/adacore/gtkada"] +tags: ["gtk", +"gui"] +version: "23.0.0" +short_description: "An Ada graphical toolkit based on Gtk+" +dependencies: [{crate: "libgtk3", version: ">=3.24.24"}, +{crate: "make", version: "*"}, +{crate: "pkg_config", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +This crate requires Gtk3+ >= 3.24.24 + diff --git a/_crates/gwindows.md b/_crates/gwindows.md new file mode 100644 index 00000000..faf2578c --- /dev/null +++ b/_crates/gwindows.md @@ -0,0 +1 @@ +Not found: gwindows* diff --git a/_crates/hac.md b/_crates/hac.md new file mode 100644 index 00000000..f03baa5f --- /dev/null +++ b/_crates/hac.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "hac" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://hacadacompiler.sourceforge.io/"] +tags: ["hac", +"compiler"] +version: "0.26.0" +short_description: "HAC Ada Compiler: a small, quick Ada compiler covering a subset of Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/hal.md b/_crates/hal.md new file mode 100644 index 00000000..ac48382f --- /dev/null +++ b/_crates/hal.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "hal" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: [] +tags: ["embedded", +"hal", +"nostd"] +version: "0.3.0" +short_description: "Hardware Abstraction Layer (HAL)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +# hal + +Hardware Abstraction Layer: interfaces definitions to abstract access to common +hardware devices and protocols + +This crate is a snapshot of the `hal` in [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/hal/src). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + + + diff --git a/_crates/hangman.md b/_crates/hangman.md new file mode 100644 index 00000000..c10ab0c5 --- /dev/null +++ b/_crates/hangman.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "hangman" +authors: ["Jon Hollan, Mark Hoffman, & Brandon Ball"] +maintainers: ["alejandro@mosteo.com"] +licenses: [] +websites: [] +tags: [] +version: "1.0.0" +short_description: "Hangman game for the console" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/hello.md b/_crates/hello.md new file mode 100644 index 00000000..d3dab45f --- /dev/null +++ b/_crates/hello.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "hello" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: ["https://github.com/alire-project/hello"] +tags: ["hello", +"demo"] +version: "1.0.2" +short_description: "'Hello, world!' demonstration project" +dependencies: [{crate: "libhello", version: "^1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/hmac.md b/_crates/hmac.md new file mode 100644 index 00000000..e15050f9 --- /dev/null +++ b/_crates/hmac.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "hmac" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/hmac"] +tags: ["cryptography", +"security", +"hmac"] +version: "2.0.0" +short_description: "HMAC implemented in Ada" +dependencies: [{crate: "sha1", version: "^2.0.0"}, +{crate: "sha2", version: "^2.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/honki_tonks_zivilisationen.md b/_crates/honki_tonks_zivilisationen.md new file mode 100644 index 00000000..9c24a02f --- /dev/null +++ b/_crates/honki_tonks_zivilisationen.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "honki_tonks_zivilisationen" +authors: ["Stefan Hild"] +maintainers: ["Stefan Hild "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/HonkiTonk/Honki-Tonks-Zivilisationen"] +tags: ["game", +"sfml", +"4x", +"roundbased", +"strategy", +"cross-platform", +"multimedia", +"2d"] +version: "0.5.1590-dev" +short_description: "The Code of my 4X turn-based strategy game." +dependencies: [{crate: "asfml", version: "^2.5.3"}, +{crate: "gnat", version: ">=12.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Der Code meines 4X-Rundenstrategiespiels. Geschrieben in Ada 2022 unter Verwendung der Ada Standardbibliothek, der ASFML 2.5.3, der CSFML 2.5.1 und der SFML 2.5.1. Nur unter Linux intensiv getestet, sollte aber auch unter anderen Betriebssystemen problemlos funktionieren. + +The Code of my 4X turn-based strategy game. Written in Ada 2022 using the Ada standard library, the ASFML 2.5.3, the CSFML 2.5.1 and the SFML 2.5.1. Only intensively tested under Linux, but should also work without problems under other operating systems. + + diff --git a/_crates/hungarian.md b/_crates/hungarian.md new file mode 100644 index 00000000..e35d3d85 --- /dev/null +++ b/_crates/hungarian.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "hungarian" +authors: ["alejandro@mosteo.com"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: [] +version: "1.0.0" +short_description: "Ada wrapper for the fast Stachniss' Hungarian solver" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ini_files.md b/_crates/ini_files.md new file mode 100644 index 00000000..9c171983 --- /dev/null +++ b/_crates/ini_files.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "ini_files" +authors: ["Rolf Ebert", +"Gautier de Montmollin"] +maintainers: ["rolf.ebert.gcc@gmx.de", +"gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://sourceforge.net/p/ini-files/"] +tags: ["ini", +"cfg", +"config"] +version: "10.0.0" +short_description: "A standalone, portable Ada package for configuration files" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/inotify.md b/_crates/inotify.md new file mode 100644 index 00000000..4e7b688f --- /dev/null +++ b/_crates/inotify.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "inotify" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/inotify-ada"] +tags: ["inotify", +"linux"] +version: "2.0.1" +short_description: "Monitor filesystem events using Linux' inotify API" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/iso.md b/_crates/iso.md new file mode 100644 index 00000000..c851d1b2 --- /dev/null +++ b/_crates/iso.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "iso" +authors: ["AJ Ianozi"] +maintainers: ["AJ Ianozi "] +licenses: ["MIT"] +websites: ["https://github.com/ada-iso/ada_iso/"] +tags: ["countries", +"currencies", +"iso-1366", +"iso-4217"] +version: "2.0.0" +short_description: "ISO Standard references for Ada such as 1366 & 4217 (Country & Currency)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/iterators.md b/_crates/iterators.md new file mode 100644 index 00000000..f2ddf84f --- /dev/null +++ b/_crates/iterators.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "iterators" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/mosteo/iterators"] +tags: ["iterators", +"functional"] +version: "0.2.0" +short_description: "Functional iterators a la Rust" +dependencies: [{crate: "aaa", version: "~0.2.1"}, +{crate: "gnat", version: "^10"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/itsybitsy_bsp.md b/_crates/itsybitsy_bsp.md new file mode 100644 index 00000000..acaf287b --- /dev/null +++ b/_crates/itsybitsy_bsp.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "itsybitsy_bsp" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://pico-doc.synack.me/"] +tags: ["embedded", +"nostd", +"itsybitsy", +"rp2040", +"bsp"] +version: "0.0.4" +short_description: "Board support package for Arduino ItsyBitsy" +dependencies: [{crate: "hal", version: "~0.1"}, +{crate: "rp2040_hal", version: "^1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/itsybitsy_rp2040_bsp.md b/_crates/itsybitsy_rp2040_bsp.md new file mode 100644 index 00000000..e929519f --- /dev/null +++ b/_crates/itsybitsy_rp2040_bsp.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "itsybitsy_rp2040_bsp" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/itsybitsy_rp2040_bsp"] +tags: ["embedded", +"nostd", +"itsybitsy", +"rp2040", +"bsp"] +version: "0.2.0" +short_description: "Board support package for Arduino ItsyBitsy RP2040" +dependencies: [{crate: "hal", version: "~0.3"}, +{crate: "rp2040_hal", version: "^2"}, +{crate: "gnat_arm_elf", version: "^12.1.2"}] +configuration_variables: [] +configuration_values: [{crate: 'rp2040_hal', settings: [{name: 'Flash_Chip', value: "w25qxx"}]}] + +--- + + diff --git a/_crates/j2ada.md b/_crates/j2ada.md new file mode 100644 index 00000000..aa1dbd26 --- /dev/null +++ b/_crates/j2ada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "j2ada" +authors: ["Pascal Pignard"] +maintainers: ["Pascal Pignard "] +licenses: ["CECILL-2.1"] +websites: ["https://github.com/Blady-Com/j2ada"] +tags: ["java", +"translator"] +version: "1.4.2" +short_description: "Almost Java to Ada translator" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/json.md b/_crates/json.md new file mode 100644 index 00000000..71341e9f --- /dev/null +++ b/_crates/json.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "json" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/json-ada"] +tags: ["json"] +version: "5.0.3" +short_description: "An Ada 2012 library for parsing JSON" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/jupyter_kernel.md b/_crates/jupyter_kernel.md new file mode 100644 index 00000000..0b194e7e --- /dev/null +++ b/_crates/jupyter_kernel.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "jupyter_kernel" +authors: ["Max Reznik"] +maintainers: ["Max Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/reznikmm/jupyter/"] +tags: ["jupyter", +"notebook", +"kernel"] +version: "1.0.0" +short_description: "Jupyter Kernel for Ada" +dependencies: [{crate: "matreshka_league", version: "*"}, +{crate: "spawn", version: "*"}, +{crate: "zeromq_ada", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +# Jupyter Kernel for Ada + +To run this kernel with Jupyter Notebook: + alr get --build jupyter_kernel + cd jupyter_kernel* + ln -s ./alire/build/.objs . + PATH=$PATH:$PWD/alire/build/.objs/driver JUPYTER_PATH=$PWD jupyter-notebook --debug + + diff --git a/_crates/jwt.md b/_crates/jwt.md new file mode 100644 index 00000000..1b774e59 --- /dev/null +++ b/_crates/jwt.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "jwt" +authors: ["Maxim Reznik"] +maintainers: ["Maxim Reznik "] +licenses: ["MIT"] +websites: ["https://github.com/reznikmm/jwt"] +tags: ["web", +"token", +"jws", +"json", +"jwt"] +version: "1.0.0" +short_description: "JSON Web Token (JWT) implementation in Ada" +dependencies: [{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/keypadder.md b/_crates/keypadder.md new file mode 100644 index 00000000..11b287bb --- /dev/null +++ b/_crates/keypadder.md @@ -0,0 +1,37 @@ +--- +layout: crate +crate: "keypadder" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/SMerrony/keypadder"] +tags: ["linux", +"keyboard", +"mobile", +"programmable", +"tablet", +"macro", +"keypad", +"macropad"] +version: "0.3.0" +short_description: "Programmable virtual keypad for your Linux desktop" +dependencies: [{crate: "aws", version: "^23.0.0"}, +{crate: "ada_toml", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Overview + +Keypadder runs on your desktop machine and provides a mobile/tablet-friendly +web page that you use from a tablet or phone to send frequently-used, awkward, +or difficult-to-remember key combinations to the currently-focused desktop application. + +Amongst other things, the author uses it with Thunderbird and LibreOffice Writer +for typing accented characters, with MuseScore to provide a keypad similar to a +certain commercial score writing application, and with Firefox for accented +characters and Emojis in social media. + +It's a great use for one of those old smartphones or tablets you have lying in that drawer! + + diff --git a/_crates/keystoreada.md b/_crates/keystoreada.md new file mode 100644 index 00000000..ac303f43 --- /dev/null +++ b/_crates/keystoreada.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "keystoreada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-keystore"] +tags: ["security", +"storage", +"nosql"] +version: "1.4.0" +short_description: "Ada Keystore" +dependencies: [{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) + +# Overview + +Ada Keystore is a tool and library to store information in secure wallets +and protect the stored information by encrypting the content. +It is necessary to know one of the wallet password to access its content. +Ada Keystore can be used to safely store passwords, credentials, +bank accounts and even documents. + +Wallets are protected by a master key using AES-256 and the wallet +master key is protected by a user password. +The wallet defines up to 7 slots that identify +a password key that is able to unlock the master key. To open a wallet, +it is necessary to unlock one of these 7 slots by providing the correct +password. Wallet key slots are protected by the user's password +and the PBKDF2-HMAC-256 algorithm, a random salt, a random counter +and they are encrypted using AES-256. + +Values stored in the wallet are protected by their own encryption keys +using AES-256. A wallet can contain another wallet which is then +protected by its own encryption keys and passwords (with 7 independent slots). +Because the child wallet has its own master key, it is necessary to known +the primary password and the child password to unlock the parent wallet +first and then the child wallet. + +## Documents + +* [Ada Keystore Guide](https://ada-keystore.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-keystore/blob/master/docs/keystore-book.pdf) + + + diff --git a/_crates/labs_radar.md b/_crates/labs_radar.md new file mode 100644 index 00000000..56f4eade --- /dev/null +++ b/_crates/labs_radar.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "labs_radar" +authors: ["Léo Germond"] +maintainers: ["Léo Germond "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/adacore/training_labs_radar"] +tags: ["training", +"labs"] +version: "0.2.0" +short_description: "Introductory Ada exercises based around a fake radar codebase" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/labs_solar_system.md b/_crates/labs_solar_system.md new file mode 100644 index 00000000..ad9b18bf --- /dev/null +++ b/_crates/labs_solar_system.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "labs_solar_system" +authors: ["Léo Germond"] +maintainers: ["Léo Germond "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://public-training.adacore.com/doc/labs/solar_system/index.html"] +tags: ["training", +"labs", +"graphics", +"windowed"] +version: "1.0.0" +short_description: "A set of SDL-based exercises to learn Ada" +dependencies: [{crate: "mage", version: "~0.6.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/labs_standalone.md b/_crates/labs_standalone.md new file mode 100644 index 00000000..de4507f4 --- /dev/null +++ b/_crates/labs_standalone.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "labs_standalone" +authors: ["Léo Germond"] +maintainers: ["Léo Germond "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/adacore/training_labs_standalone"] +tags: ["training", +"labs", +"algorithmic"] +version: "0.1.0" +short_description: "Ada exercices for training" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace.md b/_crates/lace.md new file mode 100644 index 00000000..221429f0 --- /dev/null +++ b/_crates/lace.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "lace" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Contains a set of low level re-usable Ada components." +dependencies: [{crate: "lace_shared", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + +Contains: + + - lace.Events : Provides a 'subject/oberver' 'event/response' facility. + - lace.Any : Provides an interface to allow heterogenous containers. + - lace.fast_Pool : Provides a generic which allows fast allocation/deallocation. + - lace.Text : Provides a DSA friendly set of text operations. + + + diff --git a/_crates/lace_box2d.md b/_crates/lace_box2d.md new file mode 100644 index 00000000..622ea981 --- /dev/null +++ b/_crates/lace_box2d.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "lace_box2d" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides a thin Ada binding to the 'box2d' C++ project." +dependencies: [{crate: "lace_c_math", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_bullet.md b/_crates/lace_bullet.md new file mode 100644 index 00000000..3431f3d8 --- /dev/null +++ b/_crates/lace_bullet.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lace_bullet" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides a thin Ada binding to the 'bullet' C++ project." +dependencies: [{crate: "lace_c_math", version: "~0.1"}, +{crate: "libbullet", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_c_math.md b/_crates/lace_c_math.md new file mode 100644 index 00000000..1956914e --- /dev/null +++ b/_crates/lace_c_math.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lace_c_math" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "A binding to the C math code used by box2d & bullet bindings." +dependencies: [{crate: "lace_math", version: "~0.1"}, +{crate: "lace_swig", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_collada.md b/_crates/lace_collada.md new file mode 100644 index 00000000..0e14a874 --- /dev/null +++ b/_crates/lace_collada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lace_collada" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "A Collada parser." +dependencies: [{crate: "lace_math", version: "~0.1"}, +{crate: "lace_xml", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_gel.md b/_crates/lace_gel.md new file mode 100644 index 00000000..54c3d548 --- /dev/null +++ b/_crates/lace_gel.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "lace_gel" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "A 2D/3D game engine library (GEL)." +dependencies: [{crate: "lace_opengl", version: "~0.1"}, +{crate: "lace_physics", version: "~0.1"}, +{crate: "sdlada", version: "2.5.4-1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_gel_animation_demo.md b/_crates/lace_gel_animation_demo.md new file mode 100644 index 00000000..a53912d5 --- /dev/null +++ b/_crates/lace_gel_animation_demo.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "lace_gel_animation_demo" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "A demo of GEL's human animation." +dependencies: [{crate: "lace_gel", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_gel_full_demo.md b/_crates/lace_gel_full_demo.md new file mode 100644 index 00000000..a6b36c14 --- /dev/null +++ b/_crates/lace_gel_full_demo.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "lace_gel_full_demo" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "A demo of most of GEL's features." +dependencies: [{crate: "lace_gel", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_math.md b/_crates/lace_math.md new file mode 100644 index 00000000..13a6eff2 --- /dev/null +++ b/_crates/lace_math.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "lace_math" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides an Ada package family covering pure and applied mathematics." +dependencies: [{crate: "lace_shared", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + +Contains: + + - Pure + - Arithmetic (covers quantity) + - Algebra (covers structure) + - Geometry (covers space) + - Analysis (covers change) + + - Applied + - Statistics + - Computational + + + diff --git a/_crates/lace_opengl.md b/_crates/lace_opengl.md new file mode 100644 index 00000000..3715edc3 --- /dev/null +++ b/_crates/lace_opengl.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lace_opengl" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides an openGL engine." +dependencies: [{crate: "lace_collada", version: "~0.1"}, +{crate: "libfreetype", version: "^2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_physics.md b/_crates/lace_physics.md new file mode 100644 index 00000000..d0716b37 --- /dev/null +++ b/_crates/lace_physics.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "lace_physics" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides 2D/3D rigid body dynamics simulation." +dependencies: [{crate: "lace", version: "~0.1"}, +{crate: "lace_box2d", version: "~0.1"}, +{crate: "lace_bullet", version: "~0.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_shared.md b/_crates/lace_shared.md new file mode 100644 index 00000000..bd1d12cd --- /dev/null +++ b/_crates/lace_shared.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "lace_shared" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Default settings for GPR files in the Lace project." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_swig.md b/_crates/lace_swig.md new file mode 100644 index 00000000..6c438ddb --- /dev/null +++ b/_crates/lace_swig.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "lace_swig" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides packages required by bindings produced by the 'swig4ada' tool." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lace_xml.md b/_crates/lace_xml.md new file mode 100644 index 00000000..8d14ec11 --- /dev/null +++ b/_crates/lace_xml.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lace_xml" +authors: ["Rod Kay"] +maintainers: ["Rod Kay "] +licenses: ["ISC"] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Provides simple XML read/write support." +dependencies: [{crate: "lace_shared", version: "~0.1"}, +{crate: "libexpat", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lal_highlight.md b/_crates/lal_highlight.md new file mode 100644 index 00000000..86e97fb5 --- /dev/null +++ b/_crates/lal_highlight.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "lal_highlight" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat "] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/libadalang"] +tags: ["libadalang", +"static-analysis"] +version: "21.0.0" +short_description: "Simple code highlighters based on Libadalang" +dependencies: [{crate: "gnatcoll_iconv", version: "^21"}, +{crate: "libadalang", version: "^21"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/langkit_support.md b/_crates/langkit_support.md new file mode 100644 index 00000000..c1527302 --- /dev/null +++ b/_crates/langkit_support.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "langkit_support" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/langkit"] +tags: [] +version: "23.0.0" +short_description: "Runtime support library for Langkit-generated libraries" +dependencies: [{crate: "gnatcoll", version: "^23"}, +{crate: "gnatcoll_gmp", version: "^23"}, +{crate: "gnatcoll_iconv", version: "^23"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lea.md b/_crates/lea.md new file mode 100644 index 00000000..126dcc93 --- /dev/null +++ b/_crates/lea.md @@ -0,0 +1 @@ +Not found: lea* diff --git a/_crates/libadalang.md b/_crates/libadalang.md new file mode 100644 index 00000000..38ec74e2 --- /dev/null +++ b/_crates/libadalang.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "libadalang" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/libadalang"] +tags: ["libadalang", +"static-analysis"] +version: "23.0.0" +short_description: "Ada semantic analysis library" +dependencies: [{crate: "gnatcoll", version: "^23"}, +{crate: "gnatcoll_gmp", version: "^23"}, +{crate: "gnatcoll_iconv", version: "^23"}, +{crate: "langkit_support", version: "^23"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libadalang2xml.md b/_crates/libadalang2xml.md new file mode 100644 index 00000000..5a4fed27 --- /dev/null +++ b/_crates/libadalang2xml.md @@ -0,0 +1,84 @@ +--- +layout: crate +crate: "libadalang2xml" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/simonjwright/libadalang2xml"] +tags: ["ada", +"xml"] +version: "1.0.0" +short_description: "Generates XML for Ada source, using libadalang." +dependencies: [{crate: "libadalang", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Libadalang2XML is a tool to extract syntatic aspects of Ada source code into XML. + +The Ada source is initially read using [Libadalang](https://github.com/AdaCore/libadalang). The resulting tree is then traversed, and its structure output in an XML form. + +The [document type definition](https://en.wikipedia.org/wiki/Document_type_definition) isn't explicit; it's simply derived from the tree elements created by Libadalang. Note that Libadalang includes much more semantic information than the surface structure generated by this tool, but nevertheless there's enough there to --- for example --- create a scriptable body for a package spec. + +## macOS ## + +For reasons explained [here](https://forward-in-code.blogspot.com/2023/03/libadalang-alire-and-macos.html), the tool can't be built on macOS using Alire's `gnat_native` compiler; you need to have a full compiler suite on your `PATH`, like that obtainable for [GCC 12.2.0 (x86 64)](https://github.com/simonjwright/distributing-gcc/releases/tag/gcc-12.2.0-x86_64) or [GCC 12.2.0 (aarch64)](https://github.com/simonjwright/distributing-gcc/releases/tag/gcc-12.2.0-aarch64). Having set that up, `alr build` will built the tool. + +## Example ## + +As an example of the output, this code +``` ada +package Demo is + procedure Square (X : in out Integer); +end Demo; +``` +generates +``` xml + + + + + + + Demo + + + + + + + procedure + + Square + + + + + + + X + + + + in out + + + Integer + + + + + + + + + + Demo + + + + + +``` + + diff --git a/_crates/libadalang_tools.md b/_crates/libadalang_tools.md new file mode 100644 index 00000000..c472934b --- /dev/null +++ b/_crates/libadalang_tools.md @@ -0,0 +1,27 @@ +--- +layout: crate +crate: "libadalang_tools" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat ", +"Max Reznik "] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/libadalang-tools"] +tags: ["libadalang", +"static-analysis", +"metric", +"formatting", +"generator", +"gnatmetric", +"gnatpp", +"gnatstub", +"gnattest"] +version: "23.0.0" +short_description: "Ada semantic analysis library extension and tools" +dependencies: [{crate: "libadalang", version: "^23.0.0"}, +{crate: "templates_parser", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libblas.md b/_crates/libblas.md new file mode 100644 index 00000000..6d32004a --- /dev/null +++ b/_crates/libblas.md @@ -0,0 +1 @@ +Not found: libblas* diff --git a/_crates/libbullet.md b/_crates/libbullet.md new file mode 100644 index 00000000..479965e9 --- /dev/null +++ b/_crates/libbullet.md @@ -0,0 +1 @@ +Not found: libbullet* diff --git a/_crates/libcanberra.md b/_crates/libcanberra.md new file mode 100644 index 00000000..8c6537d0 --- /dev/null +++ b/_crates/libcanberra.md @@ -0,0 +1 @@ +Not found: libcanberra* diff --git a/_crates/libclntsh.md b/_crates/libclntsh.md new file mode 100644 index 00000000..c418528c --- /dev/null +++ b/_crates/libclntsh.md @@ -0,0 +1 @@ +Not found: libclntsh* diff --git a/_crates/libcsfml.md b/_crates/libcsfml.md new file mode 100644 index 00000000..7833c78f --- /dev/null +++ b/_crates/libcsfml.md @@ -0,0 +1 @@ +Not found: libcsfml* diff --git a/_crates/libcurl.md b/_crates/libcurl.md new file mode 100644 index 00000000..295b80e7 --- /dev/null +++ b/_crates/libcurl.md @@ -0,0 +1 @@ +Not found: libcurl* diff --git a/_crates/libegl.md b/_crates/libegl.md new file mode 100644 index 00000000..288465e9 --- /dev/null +++ b/_crates/libegl.md @@ -0,0 +1 @@ +Not found: libegl* diff --git a/_crates/libexpat.md b/_crates/libexpat.md new file mode 100644 index 00000000..90101413 --- /dev/null +++ b/_crates/libexpat.md @@ -0,0 +1 @@ +Not found: libexpat* diff --git a/_crates/libfbclient.md b/_crates/libfbclient.md new file mode 100644 index 00000000..d9700545 --- /dev/null +++ b/_crates/libfbclient.md @@ -0,0 +1 @@ +Not found: libfbclient* diff --git a/_crates/libfreetype.md b/_crates/libfreetype.md new file mode 100644 index 00000000..f434b079 --- /dev/null +++ b/_crates/libfreetype.md @@ -0,0 +1 @@ +Not found: libfreetype* diff --git a/_crates/libftdi1.md b/_crates/libftdi1.md new file mode 100644 index 00000000..c075e4d9 --- /dev/null +++ b/_crates/libftdi1.md @@ -0,0 +1 @@ +Not found: libftdi1* diff --git a/_crates/libfuse.md b/_crates/libfuse.md new file mode 100644 index 00000000..38156f59 --- /dev/null +++ b/_crates/libfuse.md @@ -0,0 +1 @@ +Not found: libfuse* diff --git a/_crates/libglfw3.md b/_crates/libglfw3.md new file mode 100644 index 00000000..e3b9b848 --- /dev/null +++ b/_crates/libglfw3.md @@ -0,0 +1 @@ +Not found: libglfw3* diff --git a/_crates/libgmp.md b/_crates/libgmp.md new file mode 100644 index 00000000..1d10241e --- /dev/null +++ b/_crates/libgmp.md @@ -0,0 +1 @@ +Not found: libgmp* diff --git a/_crates/libgnatdoc.md b/_crates/libgnatdoc.md new file mode 100644 index 00000000..c63af316 --- /dev/null +++ b/_crates/libgnatdoc.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "libgnatdoc" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["GPL-3.0-only WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/gnatdoc"] +tags: ["documentation", +"tools"] +version: "23.0.0" +short_description: "GNAT Documentation Generation Tool (as a library)" +dependencies: [{crate: "libadalang", version: "23.0.0"}, +{crate: "markdown", version: "23.0.0"}, +{crate: "vss", version: "23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libgnutls.md b/_crates/libgnutls.md new file mode 100644 index 00000000..62a5ed55 --- /dev/null +++ b/_crates/libgnutls.md @@ -0,0 +1 @@ +Not found: libgnutls* diff --git a/_crates/libgomp.md b/_crates/libgomp.md new file mode 100644 index 00000000..a07ff87d --- /dev/null +++ b/_crates/libgomp.md @@ -0,0 +1 @@ +Not found: libgomp* diff --git a/_crates/libgpiod.md b/_crates/libgpiod.md new file mode 100644 index 00000000..f97b8a0c --- /dev/null +++ b/_crates/libgpiod.md @@ -0,0 +1 @@ +Not found: libgpiod* diff --git a/_crates/libgpr.md b/_crates/libgpr.md new file mode 100644 index 00000000..47c33021 --- /dev/null +++ b/_crates/libgpr.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "libgpr" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: [] +version: "23.0.0" +short_description: "GNAT Project File Library" +dependencies: [{crate: "gnat", version: "/=2020"}, +{crate: "xmlada", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libgpr2.md b/_crates/libgpr2.md new file mode 100644 index 00000000..4bde5419 --- /dev/null +++ b/_crates/libgpr2.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "libgpr2" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["Apache-2.0"] +websites: [] +tags: [] +version: "23.0.0" +short_description: "Parser for GPR Project File" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "gnatcoll_gmp", version: "~23.0.0"}, +{crate: "gnatcoll_iconv", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libgraph_easy_perl.md b/_crates/libgraph_easy_perl.md new file mode 100644 index 00000000..845c9679 --- /dev/null +++ b/_crates/libgraph_easy_perl.md @@ -0,0 +1 @@ +Not found: libgraph_easy_perl* diff --git a/_crates/libgsl.md b/_crates/libgsl.md new file mode 100644 index 00000000..267e6191 --- /dev/null +++ b/_crates/libgsl.md @@ -0,0 +1 @@ +Not found: libgsl* diff --git a/_crates/libgtk3.md b/_crates/libgtk3.md new file mode 100644 index 00000000..cc3d88f0 --- /dev/null +++ b/_crates/libgtk3.md @@ -0,0 +1 @@ +Not found: libgtk3* diff --git a/_crates/libhello.md b/_crates/libhello.md new file mode 100644 index 00000000..0374e5d8 --- /dev/null +++ b/_crates/libhello.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "libhello" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: ["https://github.com/alire-project/libhello"] +tags: ["hello", +"demo", +"library"] +version: "1.0.1" +short_description: "Basic library demonstration project" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libhidapi.md b/_crates/libhidapi.md new file mode 100644 index 00000000..b121abc9 --- /dev/null +++ b/_crates/libhidapi.md @@ -0,0 +1 @@ +Not found: libhidapi* diff --git a/_crates/libi2c.md b/_crates/libi2c.md new file mode 100644 index 00000000..f670cbc7 --- /dev/null +++ b/_crates/libi2c.md @@ -0,0 +1 @@ +Not found: libi2c* diff --git a/_crates/libiconv.md b/_crates/libiconv.md new file mode 100644 index 00000000..36855421 --- /dev/null +++ b/_crates/libiconv.md @@ -0,0 +1 @@ +Not found: libiconv* diff --git a/_crates/libkeccak.md b/_crates/libkeccak.md new file mode 100644 index 00000000..0f9c197b --- /dev/null +++ b/_crates/libkeccak.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "libkeccak" +authors: ["Daniel King"] +maintainers: ["Daniel King "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/damaki/libkeccak"] +tags: ["spark", +"cryptography", +"security", +"hash", +"sha3", +"keccak", +"gimli", +"ascon", +"shake", +"cshake", +"kmac", +"tuplehash", +"parallelhash", +"kangarootwelve"] +version: "3.0.0" +short_description: "SHA-3 and related algorithms" +dependencies: [{crate: "gnat", version: ">=11.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/liblapack.md b/_crates/liblapack.md new file mode 100644 index 00000000..8980cad6 --- /dev/null +++ b/_crates/liblapack.md @@ -0,0 +1 @@ +Not found: liblapack* diff --git a/_crates/liblua.md b/_crates/liblua.md new file mode 100644 index 00000000..26615ae3 --- /dev/null +++ b/_crates/liblua.md @@ -0,0 +1 @@ +Not found: liblua* diff --git a/_crates/liblzma.md b/_crates/liblzma.md new file mode 100644 index 00000000..8d3c6e88 --- /dev/null +++ b/_crates/liblzma.md @@ -0,0 +1 @@ +Not found: liblzma* diff --git a/_crates/libmariadb.md b/_crates/libmariadb.md new file mode 100644 index 00000000..b84c2800 --- /dev/null +++ b/_crates/libmariadb.md @@ -0,0 +1 @@ +Not found: libmariadb* diff --git a/_crates/libmesa.md b/_crates/libmesa.md new file mode 100644 index 00000000..be5b875f --- /dev/null +++ b/_crates/libmesa.md @@ -0,0 +1 @@ +Not found: libmesa* diff --git a/_crates/libmpfr.md b/_crates/libmpfr.md new file mode 100644 index 00000000..54f61236 --- /dev/null +++ b/_crates/libmpfr.md @@ -0,0 +1 @@ +Not found: libmpfr* diff --git a/_crates/libmysqlclient.md b/_crates/libmysqlclient.md new file mode 100644 index 00000000..d6ff5961 --- /dev/null +++ b/_crates/libmysqlclient.md @@ -0,0 +1 @@ +Not found: libmysqlclient* diff --git a/_crates/libopus.md b/_crates/libopus.md new file mode 100644 index 00000000..026cdb28 --- /dev/null +++ b/_crates/libopus.md @@ -0,0 +1 @@ +Not found: libopus* diff --git a/_crates/libpq.md b/_crates/libpq.md new file mode 100644 index 00000000..c75f478c --- /dev/null +++ b/_crates/libpq.md @@ -0,0 +1 @@ +Not found: libpq* diff --git a/_crates/libpulse.md b/_crates/libpulse.md new file mode 100644 index 00000000..6d20cbb7 --- /dev/null +++ b/_crates/libpulse.md @@ -0,0 +1 @@ +Not found: libpulse* diff --git a/_crates/libpython2dev.md b/_crates/libpython2dev.md new file mode 100644 index 00000000..79c46c34 --- /dev/null +++ b/_crates/libpython2dev.md @@ -0,0 +1 @@ +Not found: libpython2dev* diff --git a/_crates/libpython3dev.md b/_crates/libpython3dev.md new file mode 100644 index 00000000..940ba755 --- /dev/null +++ b/_crates/libpython3dev.md @@ -0,0 +1 @@ +Not found: libpython3dev* diff --git a/_crates/libreadline.md b/_crates/libreadline.md new file mode 100644 index 00000000..93afed3d --- /dev/null +++ b/_crates/libreadline.md @@ -0,0 +1 @@ +Not found: libreadline* diff --git a/_crates/librtmidi.md b/_crates/librtmidi.md new file mode 100644 index 00000000..a5052262 --- /dev/null +++ b/_crates/librtmidi.md @@ -0,0 +1 @@ +Not found: librtmidi* diff --git a/_crates/libsdl2.md b/_crates/libsdl2.md new file mode 100644 index 00000000..47f0cbfc --- /dev/null +++ b/_crates/libsdl2.md @@ -0,0 +1 @@ +Not found: libsdl2* diff --git a/_crates/libsdl2_image.md b/_crates/libsdl2_image.md new file mode 100644 index 00000000..16146392 --- /dev/null +++ b/_crates/libsdl2_image.md @@ -0,0 +1 @@ +Not found: libsdl2_image* diff --git a/_crates/libsdl2_ttf.md b/_crates/libsdl2_ttf.md new file mode 100644 index 00000000..a8df3873 --- /dev/null +++ b/_crates/libsdl2_ttf.md @@ -0,0 +1 @@ +Not found: libsdl2_ttf* diff --git a/_crates/libsimpleio.md b/_crates/libsimpleio.md new file mode 100644 index 00000000..55d2acad --- /dev/null +++ b/_crates/libsimpleio.md @@ -0,0 +1,38 @@ +--- +layout: crate +crate: "libsimpleio" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: ["BSD-1-Clause"] +websites: ["https://github.com/pmunts/libsimpleio"] +tags: ["embedded", +"linux", +"libsimpleio", +"remoteio", +"beaglebone", +"pocketbeagle", +"raspberrypi", +"raspberry", +"pi", +"adc", +"dac", +"gpio", +"hid", +"i2c", +"motor", +"pwm", +"sensor", +"serial", +"servo", +"spi", +"stepper", +"watchdog"] +version: "1.21136.1" +short_description: "Linux Simple I/O Library for GNAT Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libsqlite3.md b/_crates/libsqlite3.md new file mode 100644 index 00000000..7686e392 --- /dev/null +++ b/_crates/libsqlite3.md @@ -0,0 +1 @@ +Not found: libsqlite3* diff --git a/_crates/libtcl.md b/_crates/libtcl.md new file mode 100644 index 00000000..5bc49846 --- /dev/null +++ b/_crates/libtcl.md @@ -0,0 +1 @@ +Not found: libtcl* diff --git a/_crates/libtk.md b/_crates/libtk.md new file mode 100644 index 00000000..ee0e6fd6 --- /dev/null +++ b/_crates/libtk.md @@ -0,0 +1 @@ +Not found: libtk* diff --git a/_crates/libtls.md b/_crates/libtls.md new file mode 100644 index 00000000..849f130d --- /dev/null +++ b/_crates/libtls.md @@ -0,0 +1 @@ +Not found: libtls* diff --git a/_crates/libusb.md b/_crates/libusb.md new file mode 100644 index 00000000..6ffdeaa8 --- /dev/null +++ b/_crates/libusb.md @@ -0,0 +1 @@ +Not found: libusb* diff --git a/_crates/libwayland.md b/_crates/libwayland.md new file mode 100644 index 00000000..0bcd108f --- /dev/null +++ b/_crates/libwayland.md @@ -0,0 +1 @@ +Not found: libwayland* diff --git a/_crates/libx11.md b/_crates/libx11.md new file mode 100644 index 00000000..a025e669 --- /dev/null +++ b/_crates/libx11.md @@ -0,0 +1 @@ +Not found: libx11* diff --git a/_crates/libzmq.md b/_crates/libzmq.md new file mode 100644 index 00000000..a332b9fc --- /dev/null +++ b/_crates/libzmq.md @@ -0,0 +1 @@ +Not found: libzmq* diff --git a/_crates/linenoise_ada.md b/_crates/linenoise_ada.md new file mode 100644 index 00000000..cb570b7a --- /dev/null +++ b/_crates/linenoise_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "linenoise_ada" +authors: ["nytpu"] +maintainers: ["nytpu "] +licenses: ["BSD-2-Clause"] +websites: ["https://git.sr.ht/~nytpu/linenoise-ada"] +tags: ["linenoise", +"readline", +"line-editing"] +version: "1.1.2" +short_description: "Bindings to the Linenoise line editing library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/linux_hal.md b/_crates/linux_hal.md new file mode 100644 index 00000000..74d040e2 --- /dev/null +++ b/_crates/linux_hal.md @@ -0,0 +1,27 @@ +--- +layout: crate +crate: "linux_hal" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/JeremyGrosser/linux_hal"] +tags: ["embedded", +"hal", +"linux", +"i2c", +"smbus", +"gpio", +"spi", +"audio"] +version: "1.1.0" +short_description: "HAL drivers for Linux userspace" +dependencies: [{crate: "hal", version: "~0.3.0"}, +{crate: "libgpiod", version: "^1"}, +{crate: "libi2c", version: "^4"}, +{crate: "libpulse", version: "^16"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/littlefs.md b/_crates/littlefs.md new file mode 100644 index 00000000..27268bcb --- /dev/null +++ b/_crates/littlefs.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "littlefs" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/littlefs-ada"] +tags: ["embedded", +"filesystem", +"nostd", +"flash"] +version: "0.3.1" +short_description: "Ada/SPARK binding for the LittleFS flash embedded filesystem" +dependencies: [] +configuration_variables: [{name: 'Assert', type: 'Boolean', default: "false"}, +{name: 'Debug', type: 'Boolean', default: "false"}, +{name: 'Error', type: 'Boolean', default: "false"}, +{name: 'Max_Attr_Size', type: 'Integer range 1 .. 1022', default: "1022"}, +{name: 'Max_File_Size', type: 'Integer range 1 .. 2147483647', default: "2147483647"}, +{name: 'Max_Name_Size', type: 'Integer range 1 .. 1022', default: "255"}, +{name: 'No_Malloc', type: 'Boolean', default: "true"}, +{name: 'Trace', type: 'Boolean', default: "false"}, +{name: 'Warn', type: 'Boolean', default: "false"}] +configuration_values: [] + +--- + + diff --git a/_crates/lmdb_ada.md b/_crates/lmdb_ada.md new file mode 100644 index 00000000..58974017 --- /dev/null +++ b/_crates/lmdb_ada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "lmdb_ada" +authors: ["nytpu"] +maintainers: ["nytpu "] +licenses: ["BSD-2-Clause AND OLDAP-2.8+"] +websites: ["https://git.sr.ht/~nytpu/lmdb-ada"] +tags: ["database", +"key-value"] +version: "1.2.0" +short_description: "Bindings to the Lightning Memory-Mapped Database" +dependencies: [{crate: "gnatcoll", version: "^22.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/loga.md b/_crates/loga.md new file mode 100644 index 00000000..db7f51cf --- /dev/null +++ b/_crates/loga.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "loga" +authors: ["Cyrill Korshnyak ł"] +maintainers: ["Cyrill Korshnyak "] +licenses: ["Unlicense"] +websites: ["https://github.com/mangl-auf/loga/"] +tags: ["logging"] +version: "1.0.0" +short_description: "Simple library for simple logging. Like npm package \"debug\", but for Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ltp_305.md b/_crates/ltp_305.md new file mode 100644 index 00000000..cbede251 --- /dev/null +++ b/_crates/ltp_305.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "ltp_305" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser ", +"Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/ltp_305"] +tags: ["embedded", +"led", +"rp2040", +"i2c"] +version: "0.2.0" +short_description: "Driver for Pimoroni LED" +dependencies: [{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lvgl_ada.md b/_crates/lvgl_ada.md new file mode 100644 index 00000000..b311f9b5 --- /dev/null +++ b/_crates/lvgl_ada.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "lvgl_ada" +authors: ["Fabien Chouteau "] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/lvgl-ada"] +tags: ["embedded", +"gui", +"lvgl", +"no-std"] +version: "1.0.0" +short_description: "Bindings for the LVGL embedded GUI framework" +dependencies: [] +configuration_variables: [{name: 'Builtin_Allocator_Size', type: 'Integer range 1 .. 1000000', default: "65536"}, +{name: 'Color_16_SWAP', type: 'Boolean', default: "false"}, +{name: 'Default_Font', type: 'Enum (dejavu_10, dejavu_20, dejavu_30, dejavu_40, monospace_8)', default: "dejavu_20"}, +{name: 'Density_Per_Inch', type: 'Integer range 1 .. 1000000'}, +{name: 'Double_Buffering', type: 'Boolean', default: "false"}, +{name: 'Horizontal_Resolution', type: 'Integer range 1 .. 1000000'}, +{name: 'Log_Level', type: 'Enum (Trace, Info, Warn, Error)', default: "Warn"}, +{name: 'Log_With_Printf', type: 'Boolean', default: "false"}, +{name: 'Pixel_Bit_Depth', type: 'Enum (Pix_1bit, Pix_8bit, Pix_16bit, Pix_32bit)'}, +{name: 'Theme_Live_Update', type: 'Boolean', default: "false"}, +{name: 'Use_Builtin_Allocator', type: 'Boolean', default: "true"}, +{name: 'Vertical_Resolution', type: 'Integer range 1 .. 1000000'}, +{name: 'Virtual_Display_Buffer_Size', type: 'Integer range 1 .. 1000000', default: "10240"}] +configuration_values: [] + +--- + + diff --git a/_crates/lvgl_ada_examples.md b/_crates/lvgl_ada_examples.md new file mode 100644 index 00000000..668100f4 --- /dev/null +++ b/_crates/lvgl_ada_examples.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "lvgl_ada_examples" +authors: [] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: [] +tags: ["gui", +"lvgl"] +version: "0.1.0" +short_description: "Examples for the LVGL embedded GUI framework Ada binding" +dependencies: [{crate: "lvgl_ada", version: "~0.1.0"}, +{crate: "lvgl_ada_simulator", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lvgl_ada_simulator.md b/_crates/lvgl_ada_simulator.md new file mode 100644 index 00000000..56402795 --- /dev/null +++ b/_crates/lvgl_ada_simulator.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "lvgl_ada_simulator" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/lvgl-ada-simulator"] +tags: ["gui", +"lvgl", +"simulator"] +version: "1.0.0" +short_description: "Native simulator of an LVGL display" +dependencies: [{crate: "asfml", version: "^2.5.3"}, +{crate: "lvgl_ada", version: "^1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lzmada.md b/_crates/lzmada.md new file mode 100644 index 00000000..858af139 --- /dev/null +++ b/_crates/lzmada.md @@ -0,0 +1,44 @@ +--- +layout: crate +crate: "lzmada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["MIT"] +websites: ["https://gitlab.com/stcarrez/ada-lzma"] +tags: ["compression", +"lzma"] +version: "1.1.3" +short_description: "Ada LZMA Library Binding" +dependencies: [{crate: "liblzma", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +A very thin Ada binding for the LZMA compression library. +Roughly speaking, import some package: + + with Lzma.Base; + with Lzma.Container; + with Lzma.Check; + +Then declare the LZMA stream: + + Stream : aliased Lzma.Base.lzma_stream := Lzma.Base.LZMA_STREAM_INIT; + +Initialize the LZMA stream as decoder (or as encoder): + + Result := Lzma.Container.lzma_stream_decoder (Stream'Unchecked_Access, + Long_Long_Integer'Last, + Lzma.Container.LZMA_CONCATENATED); + +Setup the stream 'next_out', 'avail_out', 'next_in' and 'avail_in' and call +the lzma_code operation with the action (Lzma.Base.LZMA_RUN or Lzma.Base.LZMA_FINISH): + + Result := Lzma.Base.lzma_code (Stream'Unchecked_Access, Action); + +Close the LZMA stream: + + Lzma.Base.lzma_end (Stream'Unchecked_Access); + + + diff --git a/_crates/m4_tool.md b/_crates/m4_tool.md new file mode 100644 index 00000000..ced17423 --- /dev/null +++ b/_crates/m4_tool.md @@ -0,0 +1 @@ +Not found: m4_tool* diff --git a/_crates/mage.md b/_crates/mage.md new file mode 100644 index 00000000..accfa55e --- /dev/null +++ b/_crates/mage.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "mage" +authors: ["Leo Germond"] +maintainers: ["Leo Germond "] +licenses: ["Apache-2.0"] +websites: ["www.gitlab.com/leogermond/mage"] +tags: ["game", +"engine", +"sdl"] +version: "0.6.1" +short_description: "Mini Ada Game Engine - A very simple game engine written in Ada" +dependencies: [{crate: "sdlada", version: "^2.5.4-1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/mage_hat.md b/_crates/mage_hat.md new file mode 100644 index 00000000..1983d342 --- /dev/null +++ b/_crates/mage_hat.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "mage_hat" +authors: ["Léo Germond"] +maintainers: ["Léo Germond "] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/leogermond/mage_hat"] +tags: ["game", +"demo", +"magic"] +version: "0.3.0" +short_description: "A hat that jumps around and behaves magically" +dependencies: [{crate: "mage", version: "~0.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/make.md b/_crates/make.md new file mode 100644 index 00000000..f03d1530 --- /dev/null +++ b/_crates/make.md @@ -0,0 +1 @@ +Not found: make* diff --git a/_crates/mandelbrot_ascii.md b/_crates/mandelbrot_ascii.md new file mode 100644 index 00000000..c5e3e845 --- /dev/null +++ b/_crates/mandelbrot_ascii.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "mandelbrot_ascii" +authors: ["David Given"] +maintainers: ["Alejandro R. Mosteo "] +licenses: [] +websites: [] +tags: [] +version: "1.0.0" +short_description: "Mandelbrot renderer using Unicode glyphs" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/markdown.md b/_crates/markdown.md new file mode 100644 index 00000000..88b8e168 --- /dev/null +++ b/_crates/markdown.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "markdown" +authors: ["AdaCore"] +maintainers: ["Max Reznik "] +licenses: ["Apache-2.0"] +websites: [] +tags: ["markdown", +"gfm", +"commonmark"] +version: "23.0.0" +short_description: "Markdown parser (draft)" +dependencies: [{crate: "vss", version: ">=23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +The markdown parser is an early stage of development. Just a few element is implemented and API will change in the future. + diff --git a/_crates/mathpaqs.md b/_crates/mathpaqs.md new file mode 100644 index 00000000..d7e248ff --- /dev/null +++ b/_crates/mathpaqs.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "mathpaqs" +authors: ["Gautier de Montmollin"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://mathpaqs.sourceforge.io/"] +tags: ["mathematics", +"numerics", +"algebra", +"matrix", +"probability", +"statistics", +"runge", +"kutta", +"runge-kutta"] +version: "20230121.0.0" +short_description: "A collection of mathematical, 100% portable, packages" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf.md b/_crates/matreshka_amf.md new file mode 100644 index 00000000..52682257 --- /dev/null +++ b/_crates/matreshka_amf.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_amf" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"mof"] +version: "21.0.0" +short_description: "Implementation of OMG's Meta Object Facility (MOF)" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_xml", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf_dd.md b/_crates/matreshka_amf_dd.md new file mode 100644 index 00000000..86b5e6cc --- /dev/null +++ b/_crates/matreshka_amf_dd.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_amf_dd" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"diagram"] +version: "21.0.0" +short_description: "Diagram Definition (DD) specification support for AMF" +dependencies: [{crate: "matreshka_amf", version: "21.0.0"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf_mofext.md b/_crates/matreshka_amf_mofext.md new file mode 100644 index 00000000..d6af111e --- /dev/null +++ b/_crates/matreshka_amf_mofext.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_amf_mofext" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"diagram"] +version: "21.0.0" +short_description: "The UML mofext for AMF" +dependencies: [{crate: "matreshka_amf_uml", version: "21.0.0"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf_ocl.md b/_crates/matreshka_amf_ocl.md new file mode 100644 index 00000000..77c939c5 --- /dev/null +++ b/_crates/matreshka_amf_ocl.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_amf_ocl" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"diagram", +"ocl"] +version: "21.0.0" +short_description: "The UML OCL for AMF" +dependencies: [{crate: "matreshka_amf_uml", version: "21.0.0"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf_uml.md b/_crates/matreshka_amf_uml.md new file mode 100644 index 00000000..5bcdb4e2 --- /dev/null +++ b/_crates/matreshka_amf_uml.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_amf_uml" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"diagram"] +version: "21.0.0" +short_description: "Unified Modeling Language support for AMF" +dependencies: [{crate: "matreshka_amf_dd", version: "21.0.0"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_amf_utp.md b/_crates/matreshka_amf_utp.md new file mode 100644 index 00000000..feaed556 --- /dev/null +++ b/_crates/matreshka_amf_utp.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_amf_utp" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["uml", +"meta", +"diagram", +"testing"] +version: "21.0.0" +short_description: "The UML Testing Profile for AMF" +dependencies: [{crate: "matreshka_amf_uml", version: "21.0.0"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_fastcgi.md b/_crates/matreshka_fastcgi.md new file mode 100644 index 00000000..ea4ab365 --- /dev/null +++ b/_crates/matreshka_fastcgi.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "matreshka_fastcgi" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["web", +"cgi", +"http"] +version: "21.0.0" +short_description: "FastCGI implementation (demo)" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_league.md b/_crates/matreshka_league.md new file mode 100644 index 00000000..0edadc01 --- /dev/null +++ b/_crates/matreshka_league.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "matreshka_league" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["unicode", +"xml", +"sax", +"json", +"encoding", +"regexp", +"time"] +version: "21.0.0" +short_description: "League - universal string library. Part of Matreshka framework" +dependencies: [{crate: "make", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_servlet.md b/_crates/matreshka_servlet.md new file mode 100644 index 00000000..1ce47e90 --- /dev/null +++ b/_crates/matreshka_servlet.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "matreshka_servlet" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["web", +"servlet", +"http"] +version: "21.0.0" +short_description: "Servlet API" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_soap.md b/_crates/matreshka_soap.md new file mode 100644 index 00000000..53694049 --- /dev/null +++ b/_crates/matreshka_soap.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_soap" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["soap", +"rpc", +"protocol", +"web"] +version: "21.0.0" +short_description: "Framework for work with SOAP 1.2" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_xml", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_soap_wsse.md b/_crates/matreshka_soap_wsse.md new file mode 100644 index 00000000..edeee4c6 --- /dev/null +++ b/_crates/matreshka_soap_wsse.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_soap_wsse" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["soap", +"wsse", +"web"] +version: "21.0.0" +short_description: "WS-Security 1.1 implementation for SOAP 1.2" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_soap", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_spikedog_api.md b/_crates/matreshka_spikedog_api.md new file mode 100644 index 00000000..d58de011 --- /dev/null +++ b/_crates/matreshka_spikedog_api.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "matreshka_spikedog_api" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["web", +"servlet"] +version: "21.0.0" +short_description: "Web-application server. API library" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_servlet", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_spikedog_awsd.md b/_crates/matreshka_spikedog_awsd.md new file mode 100644 index 00000000..9e8b32a1 --- /dev/null +++ b/_crates/matreshka_spikedog_awsd.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "matreshka_spikedog_awsd" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["web", +"servlet"] +version: "21.0.0" +short_description: "Web-application server. API library" +dependencies: [{crate: "aws", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_spikedog_core", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_spikedog_core.md b/_crates/matreshka_spikedog_core.md new file mode 100644 index 00000000..068f8364 --- /dev/null +++ b/_crates/matreshka_spikedog_core.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "matreshka_spikedog_core" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["web", +"servlet"] +version: "21.0.0" +short_description: "Web-application server. Implementation library" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_spikedog_api", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql.md b/_crates/matreshka_sql.md new file mode 100644 index 00000000..5a20f639 --- /dev/null +++ b/_crates/matreshka_sql.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "matreshka_sql" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db"] +version: "21.0.0" +short_description: "Common SQL Database API" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql_firebird.md b/_crates/matreshka_sql_firebird.md new file mode 100644 index 00000000..9a1ee54f --- /dev/null +++ b/_crates/matreshka_sql_firebird.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "matreshka_sql_firebird" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db", +"firebird"] +version: "21.0.0" +short_description: "Firebird SQL binding for Ada" +dependencies: [{crate: "libfbclient", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_sql", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql_mysql.md b/_crates/matreshka_sql_mysql.md new file mode 100644 index 00000000..45beb617 --- /dev/null +++ b/_crates/matreshka_sql_mysql.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "matreshka_sql_mysql" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db", +"mysql", +"mariadb"] +version: "21.0.0" +short_description: "MySQL binding for Ada" +dependencies: [{crate: "libmysqlclient", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_sql", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql_oracle.md b/_crates/matreshka_sql_oracle.md new file mode 100644 index 00000000..d6fd1fad --- /dev/null +++ b/_crates/matreshka_sql_oracle.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "matreshka_sql_oracle" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db", +"oracle"] +version: "21.0.0" +short_description: "Oracle DB binding for Ada" +dependencies: [{crate: "libclntsh", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}, +{crate: "matreshka_sql", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql_postgresql.md b/_crates/matreshka_sql_postgresql.md new file mode 100644 index 00000000..22212129 --- /dev/null +++ b/_crates/matreshka_sql_postgresql.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_sql_postgresql" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db", +"postgresql"] +version: "21.0.0" +short_description: "PostgreSQL binding for Ada" +dependencies: [{crate: "libpq", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_sql_sqlite3.md b/_crates/matreshka_sql_sqlite3.md new file mode 100644 index 00000000..e8924463 --- /dev/null +++ b/_crates/matreshka_sql_sqlite3.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_sql_sqlite3" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["sql", +"database", +"db", +"sqlite"] +version: "21.0.0" +short_description: "SQLite binding for Ada" +dependencies: [{crate: "libsqlite3", version: "*"}, +{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/matreshka_xml.md b/_crates/matreshka_xml.md new file mode 100644 index 00000000..37c56eb3 --- /dev/null +++ b/_crates/matreshka_xml.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "matreshka_xml" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/godunko/matreshka"] +tags: ["xml", +"dom", +"catalog", +"templates", +"html5"] +version: "21.0.0" +short_description: "Library to manipulate with XML streams and documents" +dependencies: [{crate: "matreshka_league", version: "21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/mcp2221.md b/_crates/mcp2221.md new file mode 100644 index 00000000..dca711b2 --- /dev/null +++ b/_crates/mcp2221.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "mcp2221" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: ["BSD-1-Clause"] +websites: ["https://github.com/pmunts/libsimpleio"] +tags: ["embedded", +"linux", +"mcp2221", +"adc", +"dac", +"gpio", +"i2c", +"motor", +"pwm", +"sensor", +"serial", +"servo", +"spi", +"stepper"] +version: "1.21136.1" +short_description: "MCP2221 USB Raw HID I/O Expander Library for GNAT Ada" +dependencies: [{crate: "libhidapi", version: "*"}, +{crate: "libusb", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/microbit_bsp.md b/_crates/microbit_bsp.md new file mode 100644 index 00000000..bce5d764 --- /dev/null +++ b/_crates/microbit_bsp.md @@ -0,0 +1,33 @@ +--- +layout: crate +crate: "microbit_bsp" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"nostd", +"microbit", +"bbc", +"nrf51", +"bsp"] +version: "0.2.0" +short_description: "Board Support Package for the BBC micro:bit v1" +dependencies: [{crate: "embedded_components", version: "^0.1.0"}, +{crate: "hal", version: "^0.1.0"}, +{crate: "nrf5x_hal", version: "^0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# microbit BSP + +Board Support Package for the BBC micro:bit https://microbit.org/ + +This crate is a snapshot of [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/middleware). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + + diff --git a/_crates/microbit_examples.md b/_crates/microbit_examples.md new file mode 100644 index 00000000..7f9c581b --- /dev/null +++ b/_crates/microbit_examples.md @@ -0,0 +1,98 @@ +--- +layout: crate +crate: "microbit_examples" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"nostd", +"microbit", +"nrf51"] +version: "0.1.0" +short_description: "Examples and tutorials for Ada on the BBC micro:bit" +dependencies: [{crate: "microbit_bsp", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# microbit_examples + +This crate is a snapshot of the micro:bit examples in [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/tree/master/arch/ARM/cortex_m). + +Any bug report, issue, contribution must be adressed to the [Ada Drivers +Library](https://github.com/AdaCore/Ada_Drivers_Library/) repo. + +The Micro:Bit is a very small ARM Cortex-M0 board designed by the BBC for +computer education. It's fitted with a [Nordic +nRF51](https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822) +Bluetooth enabled microcontroller and an embedded programmer. You can get it +at: + + - [Pimoroni (UK/EU)](https://shop.pimoroni.com/collections/micro-bit/products/microbit) + - [Kitronik (UK/EU)](https://www.kitronik.co.uk/5613-bbc-microbit-board-only.html) + - [ThePiHut (UK/EU)](https://thepihut.com/collections/microbit/products/micro-bit) + - [AdaFruit (US)](https://www.adafruit.com/products/3530) + +# How to setup the Ada development environment for the Micro:Bit + +GNAT Community now comes with micro:bit and pyOCD support built-in. So you only +need to download the ARM ELF and the native package from +[here](https://www.adacore.com/download) + +## pyOCD programmer + +The Micro:Bit comes with an embedded programming/debugging probe implementing +the +[CMSIS-DAP](https://docs.mbed.com/docs/mbed-os-handbook/en/latest/advanced/DAP/) +protocol defined by ARM. + +To use it on Linux, you might need privileges to access the USB ports without +which the flash program will say "No connected boards". + +On Ubuntu, you can do it by creating (as administrator) the file +/etc/udev/rules.d/mbed.rules and add the line: +``` +SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", MODE="0666" +``` +then restarting the service by doing + +```shell +$ sudo udevadm trigger +``` + +## Open one of example projects and build it + +Start GNAT Programming studio (GPS) with Alire and one micro:bit example +project: + + - `alr edit analog_in/analog_in.gpr` + - `alr edit follower/follower.gpr` + - `alr edit digital_in/digital_in.gpr` + - `alr edit accelerometer/accelerometer.gpr` + - `alr edit buttons/buttons.gpr` + - `alr edit BLE_beacon/BLE_beacon.gpr` + - `alr edit digital_out/digital_out.gpr` + - `alr edit servos/servos.gpr` + - `alr edit neopixel/neopixel.gpr` + - `alr edit text_scrolling/text_scrolling.gpr` + - `alr edit analog_out/analog_out.gpr` + - `alr edit music/music.gpr` + +Press F4 and then press Enter to build the project. + +## Program the board + +Plug your micro:bit board with a USB cable, and wait for the system to +recognize it. This can take a few seconds + +In the GPS toolbar, click on the "flash to board" button to program the +micro:bit. + +After a few seconds, you should see a text scrolling on the LED matrix. + +That's it, you are ready to hack the micro:bit with Ada! + + + diff --git a/_crates/midi.md b/_crates/midi.md new file mode 100644 index 00000000..5e6959c8 --- /dev/null +++ b/_crates/midi.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "midi" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/MIDI"] +tags: ["midi", +"embedded", +"nostd"] +version: "0.2.0" +short_description: "Library to encode and decode MIDI messages" +dependencies: [{crate: "bbqueue", version: "~0.3.0"}, +{crate: "gnat", version: ">=11"}, +{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/minimal_containers.md b/_crates/minimal_containers.md new file mode 100644 index 00000000..9afc8d67 --- /dev/null +++ b/_crates/minimal_containers.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "minimal_containers" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/simonjwright/minimal_containers"] +tags: ["containers"] +version: "1.0.0" +short_description: "Much reduced version of Ada.Containers (bounded Maps, Vectors)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +The motivation for these containers was use in [ColdFrame](https://simonjwright.github.io/coldframe/), an open-source code generator backend for use with UML tools in a restricted environment (a BBC micro:bit). + +In such an environment, it's normal to strip out unused code and data at link time (`-gc-sections` with GNU `ld`, `-dead_strip` with Apple `ld`). + +Unfortunately, it turns out that no primitive subprograms of tagged types can be stripped (they are all referenced by the dispatch table). + +These containers are still tagged, because (without compiler extensions) ColdFrame expects to use prefixed notation (_object_._primitive subprogram (...)_, as would users). However, the number of subprograms has been much reduced. + + diff --git a/_crates/minirest.md b/_crates/minirest.md new file mode 100644 index 00000000..edcd0625 --- /dev/null +++ b/_crates/minirest.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "minirest" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://github.com/mosteo/minirest"] +tags: ["rest"] +version: "0.2.0" +short_description: "Minimalist Ada REST client library" +dependencies: [{crate: "aaa", version: "~0.2.1|~0.3"}, +{crate: "curl", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/minisamd51_bsp.md b/_crates/minisamd51_bsp.md new file mode 100644 index 00000000..351ff586 --- /dev/null +++ b/_crates/minisamd51_bsp.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "minisamd51_bsp" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/minisamd51_bsp"] +tags: ["embedded", +"nostd", +"samd51", +"minisam"] +version: "0.1.0" +short_description: "Board Support Package for the MiniSAM D51" +dependencies: [{crate: "hal", version: "^0.1.0"}, +{crate: "samd51_hal", version: "^0.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/minisamd51_example.md b/_crates/minisamd51_example.md new file mode 100644 index 00000000..b8938bc7 --- /dev/null +++ b/_crates/minisamd51_example.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "minisamd51_example" +authors: ["Fabien Chouteau "] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/minisamd51_example"] +tags: ["embedded", +"nostd", +"samd51", +"minisam"] +version: "0.1.1" +short_description: "Example project for the MiniSAM D51" +dependencies: [{crate: "minisamd51_bsp", version: "^0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/mold_lib.md b/_crates/mold_lib.md new file mode 100644 index 00000000..1eba461d --- /dev/null +++ b/_crates/mold_lib.md @@ -0,0 +1,70 @@ +--- +layout: crate +crate: "mold_lib" +authors: ["Francesc Rocher"] +maintainers: ["Francesc Rocher "] +licenses: ["MIT"] +websites: ["https://rocher.github.io/mold"] +tags: ["template", +"template-engine", +"template-repo"] +version: "0.2.1" +short_description: "Meta-variable Operations for Lean Development (lib)" +dependencies: [{crate: "ada_toml", version: "~0.3.0"}, +{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "simple_logging", version: "^1.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/mold_lib.json)](https://alire.ada.dev/crates/mold_lib.html) +[![Alire CI/CD](https://img.shields.io/endpoint?url=https://alire-crate-ci.ada.dev/badges/mold_lib.json)](https://alire-crate-ci.ada.dev/crates/mold_lib.html) +![unit-test](https://github.com/rocher/mold_lib/actions/workflows/unit-test.yml/badge.svg) +[![GitHub release](https://img.shields.io/github/release/rocher/mold_lib.svg)](https://github.com/rocher/mold_lib/releases/latest) +[![License](https://img.shields.io/github/license/rocher/mold_lib.svg?color=blue)](https://github.com/rocher/mold_lib/blob/master/LICENSE) + +## Welcome to **Mold** + +> **MOLD**: *Meta-variable Operations for Lean Development* + +Mold is a Template Processor, or Template Engine, to work with repository +templates. The main motivation of Mold is to have repositories in GitHub used +as template repositories to create new, customized repositories for other +users. + +Main features supported in Mold include + + * variable replacement in mold files (*.mold) + + * for a given directory, variable replacement recursively for all mold files + in all subdirectories + + * variable replacement in file names + + * inclusion of other templates + + * definition of variables with a simple TOML file + +Variable replacement can be specified as *normal*, *optional* or *mandatory*. +For example, the variable `foo = "bar"` can be specified with `{{foo}}`, +`{{?foo}}` (optional) or `{{#foo}}` (mandatory). The difference is the handling +of errors when an undefined variable is encountered. + +All mold files must end with the extension `.mold`, for example +`README.md.mold`. Destination files (with variables replaced) have the same +name without the mold extension: `README.md`. This simplifies the work done in +large subdirectories with few templates. + +This crate contains the Ada library and unit tests. For a CLI tool, please +take a look at the crate `mold`. + +## Reference Guide + +Please visit [Mold documentation](https://rocher.github.io/mold) for more +information. + +--- +## License +MIT (c) 2023 Francesc Rocher + + diff --git a/_crates/mos6502_create_led.md b/_crates/mos6502_create_led.md new file mode 100644 index 00000000..51800a6a --- /dev/null +++ b/_crates/mos6502_create_led.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "mos6502_create_led" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/tutorial-6502"] +tags: ["mos-6502", +"tools", +"retrocomputing", +"ada2022"] +version: "1.5.0" +short_description: "Create ROM with little program" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a tool to create a rom image with little program. + +This program can be used to create a ROM immage for the MOS 6502 tutorial from Ben Eater. + +Development versions available with: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code and testsuite available on [SourceForge](https://git.code.sf.net/p/tutorial-6502/git) + + diff --git a/_crates/mos6502_create_nop.md b/_crates/mos6502_create_nop.md new file mode 100644 index 00000000..06aee48e --- /dev/null +++ b/_crates/mos6502_create_nop.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "mos6502_create_nop" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/tutorial-6502"] +tags: ["mos-6502", +"tools", +"retrocomputing", +"ada2022"] +version: "1.5.0" +short_description: "Create NOP ROM" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a tool to create a rom image with NOP commands. + +This program can be used to create a ROM immage for the MOS 6502 tutorial from Ben Eater. + +Development versions available with: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code and testsuite available on [SourceForge](https://git.code.sf.net/p/tutorial-6502/git) + + diff --git a/_crates/mos6502_create_reset.md b/_crates/mos6502_create_reset.md new file mode 100644 index 00000000..ca8e653d --- /dev/null +++ b/_crates/mos6502_create_reset.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "mos6502_create_reset" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://sourceforge.net/projects/tutorial-6502"] +tags: ["mos-6502", +"tools", +"retrocomputing", +"ada2022"] +version: "1.5.0" +short_description: "Create ROM with reset vector" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a tool to create a rom image with reset vector. + +This program can be used to create a ROM immage for the MOS 6502 tutorial from Ben Eater. + +Development versions available with: + +```sh +alr index --add "git+https://github.com/krischik/alire-index.git#develop" --name krischik +``` + +Source code and testsuite available on [SourceForge](https://git.code.sf.net/p/tutorial-6502/git) + + diff --git a/_crates/msys2_runtime.md b/_crates/msys2_runtime.md new file mode 100644 index 00000000..4850e2d2 --- /dev/null +++ b/_crates/msys2_runtime.md @@ -0,0 +1 @@ +Not found: msys2_runtime* diff --git a/_crates/muntsos_beaglebone.md b/_crates/muntsos_beaglebone.md new file mode 100644 index 00000000..481eff27 --- /dev/null +++ b/_crates/muntsos_beaglebone.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_beaglebone" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm", +"beaglebone"] +version: "2.0.0" +short_description: "MuntsOS Embedded Linux support for BeagleBone targets" +dependencies: [{crate: "muntsos_dev_beaglebone", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_dev_aarch64.md b/_crates/muntsos_dev_aarch64.md new file mode 100644 index 00000000..c1448acc --- /dev/null +++ b/_crates/muntsos_dev_aarch64.md @@ -0,0 +1 @@ +Not found: muntsos_dev_aarch64* diff --git a/_crates/muntsos_dev_beaglebone.md b/_crates/muntsos_dev_beaglebone.md new file mode 100644 index 00000000..9a95a99e --- /dev/null +++ b/_crates/muntsos_dev_beaglebone.md @@ -0,0 +1 @@ +Not found: muntsos_dev_beaglebone* diff --git a/_crates/muntsos_dev_raspberrypi1.md b/_crates/muntsos_dev_raspberrypi1.md new file mode 100644 index 00000000..a25ce0cf --- /dev/null +++ b/_crates/muntsos_dev_raspberrypi1.md @@ -0,0 +1 @@ +Not found: muntsos_dev_raspberrypi1* diff --git a/_crates/muntsos_dev_raspberrypi2.md b/_crates/muntsos_dev_raspberrypi2.md new file mode 100644 index 00000000..1faf8eee --- /dev/null +++ b/_crates/muntsos_dev_raspberrypi2.md @@ -0,0 +1 @@ +Not found: muntsos_dev_raspberrypi2* diff --git a/_crates/muntsos_raspberrypi1.md b/_crates/muntsos_raspberrypi1.md new file mode 100644 index 00000000..97804c95 --- /dev/null +++ b/_crates/muntsos_raspberrypi1.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_raspberrypi1" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm", +"raspberrypi1"] +version: "2.0.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi1 targets" +dependencies: [{crate: "muntsos_dev_raspberrypi1", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_raspberrypi2.md b/_crates/muntsos_raspberrypi2.md new file mode 100644 index 00000000..7d36ad78 --- /dev/null +++ b/_crates/muntsos_raspberrypi2.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_raspberrypi2" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm", +"raspberrypi2"] +version: "2.0.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi2 targets" +dependencies: [{crate: "muntsos_dev_raspberrypi2", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_raspberrypi3.md b/_crates/muntsos_raspberrypi3.md new file mode 100644 index 00000000..9f8b6028 --- /dev/null +++ b/_crates/muntsos_raspberrypi3.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_raspberrypi3" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm64", +"raspberrypi3"] +version: "2.0.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi3 targets" +dependencies: [{crate: "muntsos_dev_aarch64", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_raspberrypi4.md b/_crates/muntsos_raspberrypi4.md new file mode 100644 index 00000000..c8dc5aa4 --- /dev/null +++ b/_crates/muntsos_raspberrypi4.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_raspberrypi4" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm64", +"raspberrypi4"] +version: "2.0.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi4 targets" +dependencies: [{crate: "muntsos_dev_aarch64", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ncursesada.md b/_crates/ncursesada.md new file mode 100644 index 00000000..7bbf7655 --- /dev/null +++ b/_crates/ncursesada.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "ncursesada" +authors: ["Thomas E. Dickey", +"Juergen Pfeifer", +"Eric S Raymond", +"Alexander V Lukyanov", +"Philippe Blain", +"Sven Verdoolaege", +"Nicolas Boulenguez"] +maintainers: ["Pascal Pignard "] +licenses: ["X11 OR MIT"] +websites: ["https://github.com/Blady-Com/ncurses"] +tags: ["ncurses", +"binding"] +version: "6.3.0" +short_description: "Ada binding to the ncurses text user interface library" +dependencies: [{crate: "m4_tool", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/nrf5x_hal.md b/_crates/nrf5x_hal.md new file mode 100644 index 00000000..1e770b47 --- /dev/null +++ b/_crates/nrf5x_hal.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "nrf5x_hal" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/AdaCore/Ada_Drivers_Library/"] +tags: ["embedded", +"nostd", +"nrf51", +"nrf52", +"nordic", +"drivers", +"ble"] +version: "0.1.0" +short_description: "Drivers and HAL for the Nordic nRF5X micro-controller family" +dependencies: [{crate: "cortex_m", version: "~0.2.0"}, +{crate: "gnat_arm_elf", version: "^11.2"}, +{crate: "hal", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/openai.md b/_crates/openai.md new file mode 100644 index 00000000..3cac3b60 --- /dev/null +++ b/_crates/openai.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "openai" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-openai"] +tags: ["rest", +"web", +"api", +"openapi", +"openai"] +version: "1.0.0" +short_description: "OpenAI client library" +dependencies: [{crate: "openapi", version: "~0.7.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[Ada OpenAI](https://gitlab.com/stcarrez/ada-openai) provides an Ada API to make requests on the +[OpenAI](https://openai.com/) models allowing an Ada application to access the [GPT-3](https://platform.openai.com/docs/models/gpt-3-5), +[GPT-4](https://platform.openai.com/docs/models/gpt-4), +[DALL.E](https://platform.openai.com/docs/models/dall-e) +and other AI models. + +The library was generated by the [OpenAPI](https://github.com/OpenAPITools/openapi-generator) code generator from the +OpenAPI description of the OpenAI service and it uses the [OpenAPI Ada](https://github.com/stcarrez/swagger-ada) library +to make HTTP requests and perform JSON serialization and deserialization. + +## Alire setup + +``` +alr with openai +``` + +For the HTTP connection, you can either use AWS or CURL and run one of the following commands: + +``` +alr with utilada_curl +alr with utilada_aws +``` + +## Links + +- [OpenAI API reference](https://platform.openai.com/docs/api-reference) +- Ada example: [OpenAI Image Generation](https://gitlab.com/stcarrez/openapi-image) +- Ada example: [OpenAI Chat](https://gitlab.com/stcarrez/openai-chat) +- Ada example: [OpenAI Completion](https://gitlab.com/stcarrez/openapi-completion) + + + diff --git a/_crates/openapi.md b/_crates/openapi.md new file mode 100644 index 00000000..b2d14e58 --- /dev/null +++ b/_crates/openapi.md @@ -0,0 +1,58 @@ +--- +layout: crate +crate: "openapi" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/openapi-ada"] +tags: ["rest", +"web", +"api", +"openapi"] +version: "0.7.0" +short_description: "OpenAPI library to build REST client applications" +dependencies: [{crate: "security", version: "^1.5.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_xml", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/build.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/summary) + +[OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator) is a code generator that supports generation of +API client libraries, server stubs and documentation automatically +given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). + +The Ada client support has been integrated in [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). + +The OpenAPI Ada library is a small support library for the Ada code generator +provided by OpenAPI Generator. The library provides support to serialize the data, +make HTTP requests and support the [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) +specific operations or types. + +## Alire setup + +``` +alr with openapi +``` + +For the HTTP connection, you can either use AWS or CURL and run one of the following commands: + +``` +alr with utilada_curl +alr with utilada_aws +``` + +## Generation + +Example of client generation with OpenAPI file `my-api.yaml` and use of CURL support: + +``` + alr exec -- openapi-generate-client -i my-api.yaml --additional-properties projectName=MyProject --additional-properties openApiName=OpenAPI --additional-properties httpSupport=Curl --model-package MyProject.MyModule -o . +``` + + + diff --git a/_crates/openapi_server.md b/_crates/openapi_server.md new file mode 100644 index 00000000..29126334 --- /dev/null +++ b/_crates/openapi_server.md @@ -0,0 +1,66 @@ +--- +layout: crate +crate: "openapi_server" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/openapi-ada"] +tags: ["rest", +"web", +"api", +"openapi"] +version: "0.7.0" +short_description: "OpenAPI library to build REST server applications" +dependencies: [{crate: "openapi", version: "0.7.0"}, +{crate: "security", version: "^1.5.0"}, +{crate: "servletada", version: "^1.7.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_xml", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/build.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/openapi-ada/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/openapi-ada/summary) + +[OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator) is a code generator that supports generation of +API client libraries, server stubs and documentation automatically +given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). + +The Ada server support has been integrated in [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). + +The OpenAPI Ada library is a small support library for the Ada code generator +provided by OpenAPI Generator. The library provides support to serialize the data, +make HTTP requests and support the [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). +specific operations or types. + +## Alire setup + +``` +alr with openapi_server +``` + +For the server part, you must choose a servlet web container that will handle the requests. +Two web server implementations are provided: + +* [AWS](https://github.com/AdaCore/aws) +* [EWS](https://github.com/simonjwright/ews) + +and you should run one of the following `alr` command depending on your choice: + +``` +alr with servletada_aws +alr with servletada_ews +``` + +## Generation + +Example of server generation with OpenAPI file `my-api.yaml` and use of CURL support: + +``` + alr exec -- openapi-generate-server -i my-api.yaml --additional-properties projectName=MyProject --additional-properties openApiName=OpenAPI --additional-properties httpSupport=Curl --model-package MyProject.MyModule -o . +``` + + + diff --git a/_crates/openglada.md b/_crates/openglada.md new file mode 100644 index 00000000..83f4909c --- /dev/null +++ b/_crates/openglada.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "openglada" +authors: ["Felix Krause"] +maintainers: ["Felix Krause "] +licenses: ["MIT"] +websites: ["http://flyx.github.io/OpenGLAda/"] +tags: ["opengl", +"binding", +"rendering", +"graphics"] +version: "0.9.0" +short_description: "Thick Ada binding for OpenGL" +dependencies: [{crate: "libx11", version: "^1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/openglada_glfw.md b/_crates/openglada_glfw.md new file mode 100644 index 00000000..944b5f12 --- /dev/null +++ b/_crates/openglada_glfw.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "openglada_glfw" +authors: ["Felix Krause"] +maintainers: ["Felix Krause "] +licenses: ["MIT"] +websites: ["http://flyx.github.io/OpenGLAda/"] +tags: ["opengl", +"glfw", +"binding", +"gui"] +version: "0.9.0" +short_description: "GLFW binding for use with OpenGLAda" +dependencies: [{crate: "libglfw3", version: "^3"}, +{crate: "openglada", version: "~0.9.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/openglada_images.md b/_crates/openglada_images.md new file mode 100644 index 00000000..d022c8cd --- /dev/null +++ b/_crates/openglada_images.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "openglada_images" +authors: ["Felix Krause"] +maintainers: ["Felix Krause "] +licenses: ["MIT"] +websites: ["http://flyx.github.io/OpenGLAda/"] +tags: ["opengl", +"rendering", +"graphics"] +version: "0.9.0" +short_description: "Image loading library for OpenGLAda" +dependencies: [{crate: "gid", version: "^9.0.0"}, +{crate: "openglada", version: "~0.9.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/openglada_text.md b/_crates/openglada_text.md new file mode 100644 index 00000000..23a8fee3 --- /dev/null +++ b/_crates/openglada_text.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "openglada_text" +authors: ["Felix Krause"] +maintainers: ["Felix Krause "] +licenses: ["MIT"] +websites: ["http://flyx.github.io/OpenGLAda/"] +tags: ["opengl", +"rendering", +"fonts"] +version: "0.9.0" +short_description: "Text rendering library for OpenGLAda" +dependencies: [{crate: "freetypeada", version: "~0.1.0"}, +{crate: "openglada", version: "~0.9.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/openssl.md b/_crates/openssl.md new file mode 100644 index 00000000..1dc3a2ae --- /dev/null +++ b/_crates/openssl.md @@ -0,0 +1 @@ +Not found: openssl* diff --git a/_crates/optional.md b/_crates/optional.md new file mode 100644 index 00000000..1f88b29f --- /dev/null +++ b/_crates/optional.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "optional" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/mosteo/optional/"] +tags: ["optional", +"functional"] +version: "0.1.0" +short_description: "Optional values a la java.lang.Optional" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka.md b/_crates/orka.md new file mode 100644 index 00000000..912cab7b --- /dev/null +++ b/_crates/orka.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "orka" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["azdo", +"egl", +"opengl", +"orka", +"rendering", +"graphics", +"game", +"engine", +"ktx", +"gltf"] +version: "1.0.0" +short_description: "OpenGL 4.6 rendering kernel written in Ada 2012" +dependencies: [{crate: "orka_egl", version: "~1.0.0"}, +{crate: "orka_opengl", version: "~1.0.0"}, +{crate: "orka_simd", version: "~1.0.0"}, +{crate: "orka_transforms", version: "~1.0.0"}, +{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_awt.md b/_crates/orka_awt.md new file mode 100644 index 00000000..db247a5d --- /dev/null +++ b/_crates/orka_awt.md @@ -0,0 +1,33 @@ +--- +layout: crate +crate: "orka_awt" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["egl", +"wayland", +"windows", +"graphics", +"opengl", +"input", +"gamepad"] +version: "1.0.0" +short_description: "Ada Window Toolkit" +dependencies: [{crate: "evdev", version: "^2.0.2"}, +{crate: "inotify", version: "^2.0.1"}, +{crate: "orka_egl", version: "~1.0.0"}, +{crate: "wayland_client_ada", version: "~1.0.0"}, +{crate: "wayland_cursor_ada", version: "~1.0.0"}, +{crate: "wayland_egl_ada", version: "~1.0.0"}, +{crate: "wayland_protocols_ada", version: "~1.0.0"}, +{crate: "orka", version: "~1.0.0"}, +{crate: "orka_numerics", version: "~1.0.0"}, +{crate: "orka_tensors_cpu", version: "~1.0.0"}, +{crate: "orka_transforms", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_egl.md b/_crates/orka_egl.md new file mode 100644 index 00000000..2f772af8 --- /dev/null +++ b/_crates/orka_egl.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "orka_egl" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["egl", +"opengl", +"orka"] +version: "1.0.0" +short_description: "Ada 2012 bindings for EGL" +dependencies: [{crate: "libegl", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_numerics.md b/_crates/orka_numerics.md new file mode 100644 index 00000000..dd17a606 --- /dev/null +++ b/_crates/orka_numerics.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "orka_numerics" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"math", +"vector", +"matrix", +"ndarray", +"tensor", +"numpy", +"random", +"statistics", +"integration", +"rk4", +"kalman", +"optimization", +"leastsquares", +"linearalgebra", +"linalg"] +version: "1.0.0" +short_description: "Tensors (multidimensional arrays) and integrators" +dependencies: [{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_opengl.md b/_crates/orka_opengl.md new file mode 100644 index 00000000..198a229b --- /dev/null +++ b/_crates/orka_opengl.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "orka_opengl" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["azdo", +"egl", +"opengl", +"orka", +"rendering", +"graphics"] +version: "1.0.0" +short_description: "OpenGL 4.6 backend for the Orka rendering engine" +dependencies: [{crate: "orka_egl", version: "~1.0.0"}, +{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_plugin_archives.md b/_crates/orka_plugin_archives.md new file mode 100644 index 00000000..b6d099e4 --- /dev/null +++ b/_crates/orka_plugin_archives.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "orka_plugin_archives" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"zip", +"dcf"] +version: "1.0.0" +short_description: "Orka plug-in to load resources from Zip archives" +dependencies: [{crate: "dcf", version: "^2.0.3"}, +{crate: "orka", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_plugin_atmosphere.md b/_crates/orka_plugin_atmosphere.md new file mode 100644 index 00000000..9c337b5e --- /dev/null +++ b/_crates/orka_plugin_atmosphere.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "orka_plugin_atmosphere" +authors: ["onox", +"Eric Bruneton"] +maintainers: ["onox "] +licenses: ["Apache-2.0 AND BSD-3-Clause"] +websites: ["https://github.com/onox/orka"] +tags: ["atmosphere", +"earth", +"orka"] +version: "1.0.0" +short_description: "Orka plug-in for precomputed atmospheric scattering" +dependencies: [{crate: "orka", version: "~1.0.0"}, +{crate: "orka_transforms", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_plugin_gltf.md b/_crates/orka_plugin_gltf.md new file mode 100644 index 00000000..4811f54c --- /dev/null +++ b/_crates/orka_plugin_gltf.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "orka_plugin_gltf" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["gltf", +"orka"] +version: "1.0.0" +short_description: "Orka plug-in for loading glTF models" +dependencies: [{crate: "json", version: "^5.0.3"}, +{crate: "orka", version: "~1.0.0"}, +{crate: "orka_transforms", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_plugin_terrain.md b/_crates/orka_plugin_terrain.md new file mode 100644 index 00000000..ae10b3ca --- /dev/null +++ b/_crates/orka_plugin_terrain.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "orka_plugin_terrain" +authors: ["onox", +"Jonathan Dupuy"] +maintainers: ["onox "] +licenses: ["Apache-2.0 AND MIT"] +websites: ["https://github.com/onox/orka"] +tags: ["terrain", +"orka"] +version: "1.0.0" +short_description: "Orka plug-in for adaptive tessellated flattened spheroids" +dependencies: [{crate: "orka", version: "~1.0.0"}, +{crate: "orka_plugin_atmosphere", version: "~1.0.0"}, +{crate: "orka_transforms", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_simd.md b/_crates/orka_simd.md new file mode 100644 index 00000000..45c8905d --- /dev/null +++ b/_crates/orka_simd.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "orka_simd" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"simd", +"sse", +"avx", +"fma", +"f16c"] +version: "1.0.0" +short_description: "Bindings for x86 SIMD extensions like SSE, AVX2, FMA, F16C" +dependencies: [{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_tensors_cpu.md b/_crates/orka_tensors_cpu.md new file mode 100644 index 00000000..04f65fb2 --- /dev/null +++ b/_crates/orka_tensors_cpu.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "orka_tensors_cpu" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"math", +"vector", +"matrix", +"ndarray", +"tensor", +"numpy", +"random", +"statistics", +"leastsquares", +"linearalgebra", +"linalg", +"simd"] +version: "1.0.0" +short_description: "Tensors using SIMD instructions on the CPU" +dependencies: [{crate: "orka_numerics", version: "~1.0.0"}, +{crate: "orka_simd", version: "~1.0.0"}, +{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_tensors_gpu.md b/_crates/orka_tensors_gpu.md new file mode 100644 index 00000000..30ae88b1 --- /dev/null +++ b/_crates/orka_tensors_gpu.md @@ -0,0 +1,35 @@ +--- +layout: crate +crate: "orka_tensors_gpu" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"math", +"vector", +"matrix", +"ndarray", +"tensor", +"numpy", +"random", +"statistics", +"leastsquares", +"linearalgebra", +"linalg", +"gpu", +"gpgpu", +"compute", +"shaders"] +version: "1.0.0" +short_description: "Tensors using compute shaders on the GPU" +dependencies: [{crate: "gnat", version: ">=12"}, +{crate: "orka", version: "~1.0.0"}, +{crate: "orka_numerics", version: "~1.0.0"}, +{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_tools.md b/_crates/orka_tools.md new file mode 100644 index 00000000..8e5d9580 --- /dev/null +++ b/_crates/orka_tools.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "orka_tools" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["gltf", +"ktx", +"opengl", +"orka"] +version: "1.0.0" +short_description: "Tools for the Orka rendering kernel" +dependencies: [{crate: "orka", version: "~1.0.0"}, +{crate: "orka_awt", version: "~1.0.0"}, +{crate: "orka_plugin_gltf", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_transforms.md b/_crates/orka_transforms.md new file mode 100644 index 00000000..523b7a22 --- /dev/null +++ b/_crates/orka_transforms.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "orka_transforms" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka", +"math", +"vector", +"matrix", +"quaternion"] +version: "1.0.0" +short_description: "Library to transform vectors, matrices, and quaternions using SIMD" +dependencies: [{crate: "orka_simd", version: "~1.0.0"}, +{crate: "orka_types", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/orka_types.md b/_crates/orka_types.md new file mode 100644 index 00000000..5ce06a96 --- /dev/null +++ b/_crates/orka_types.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "orka_types" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/orka"] +tags: ["orka"] +version: "1.0.0" +short_description: "Data types for Orka" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/parse_args.md b/_crates/parse_args.md new file mode 100644 index 00000000..fb71b56a --- /dev/null +++ b/_crates/parse_args.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "parse_args" +authors: ["James Humphry"] +maintainers: ["James Humphry "] +licenses: ["ISC"] +websites: ["https://github.com/jhumphry/parse_args"] +tags: ["cli", +"command-line"] +version: "0.9.0" +short_description: "An Ada 2012 package to parse command line arguments and options" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/partord.md b/_crates/partord.md new file mode 100644 index 00000000..b8f83c14 --- /dev/null +++ b/_crates/partord.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "partord" +authors: ["Riccardo Bernardini"] +maintainers: ["Riccardo Bernardini "] +licenses: ["MIT"] +websites: ["https://gitlab.com/my-ada-library/partord/"] +tags: ["sorting"] +version: "1.0.0" +short_description: "Small library for sorting with partial orders" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is a generic library that exports a sorting function that can operate with partial ordering, that is, it can happen that for some A /= B neither A < B nor A > B hold. + diff --git a/_crates/pbkdf2.md b/_crates/pbkdf2.md new file mode 100644 index 00000000..baf07ac1 --- /dev/null +++ b/_crates/pbkdf2.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "pbkdf2" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/pbkdf2"] +tags: ["cryptography", +"security", +"pbkdf2"] +version: "3.0.0" +short_description: "PBKDF2 implemented in Ada" +dependencies: [{crate: "hmac", version: "^2.0.0"}, +{crate: "sha1", version: "^2.0.0"}, +{crate: "sha2", version: "^2.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/pico_bsp.md b/_crates/pico_bsp.md new file mode 100644 index 00000000..3a17a5b3 --- /dev/null +++ b/_crates/pico_bsp.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "pico_bsp" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://pico-doc.synack.me/"] +tags: ["embedded", +"nostd", +"raspberrypi", +"pico", +"rp2040", +"bsp"] +version: "2.0.0" +short_description: "Board support package for Raspberry Pi Pico" +dependencies: [{crate: "hal", version: "~0.3"}, +{crate: "rp2040_hal", version: "^2.0"}] +configuration_variables: [] +configuration_values: [{crate: 'rp2040_hal', settings: [{name: 'Flash_Chip', value: "w25qxx"}]}] + +--- + + diff --git a/_crates/pico_examples.md b/_crates/pico_examples.md new file mode 100644 index 00000000..2553f6f0 --- /dev/null +++ b/_crates/pico_examples.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "pico_examples" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://pico-doc.synack.me/"] +tags: ["embedded", +"nostd", +"pico", +"rp2040"] +version: "2.0.0" +short_description: "Examples for Ada on the Raspberry Pi Pico" +dependencies: [{crate: "chests", version: "~0.1.1"}, +{crate: "gnat_arm_elf", version: "^12"}, +{crate: "pico_bsp", version: "^2.0"}, +{crate: "rp2040_hal", version: "^2.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/pkg_config.md b/_crates/pkg_config.md new file mode 100644 index 00000000..baa12c9d --- /dev/null +++ b/_crates/pkg_config.md @@ -0,0 +1 @@ +Not found: pkg_config* diff --git a/_crates/play_2048.md b/_crates/play_2048.md new file mode 100644 index 00000000..17092818 --- /dev/null +++ b/_crates/play_2048.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "play_2048" +authors: ["Manuel Gomez"] +maintainers: ["Manuel Gomez "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/mgrojo/play_2048/"] +tags: ["game", +"puzzle", +"cross-platform", +"sfml"] +version: "1.0.0" +short_description: "2048 game: merge tiles with the same number until you add up to 2048" +dependencies: [{crate: "asfml", version: "^2.5.0"}, +{crate: "ada_toml", version: "~0.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/plplot.md b/_crates/plplot.md new file mode 100644 index 00000000..b5da4499 --- /dev/null +++ b/_crates/plplot.md @@ -0,0 +1 @@ +Not found: plplot* diff --git a/_crates/postgresql.md b/_crates/postgresql.md new file mode 100644 index 00000000..5556805c --- /dev/null +++ b/_crates/postgresql.md @@ -0,0 +1 @@ +Not found: postgresql* diff --git a/_crates/powerjoular.md b/_crates/powerjoular.md new file mode 100644 index 00000000..32d5f0b5 --- /dev/null +++ b/_crates/powerjoular.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "powerjoular" +authors: ["Adel Noureddine"] +maintainers: ["Adel Noureddine "] +licenses: ["GPL-3.0-only"] +websites: ["https://www.noureddine.org/research/joular/powerjoular"] +tags: ["linux", +"power", +"energy"] +version: "0.6.0" +short_description: "Monitoring the power consumption of multiple platforms and processes" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ppag.md b/_crates/ppag.md new file mode 100644 index 00000000..e6d11b8a --- /dev/null +++ b/_crates/ppag.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "ppag" +authors: ["Pascal Pignard"] +maintainers: ["Pascal Pignard "] +licenses: ["CECILL-2.1"] +websites: ["https://github.com/Blady-Com/Exemples-PPAG"] +tags: ["gnoga", +"tutorial"] +version: "2.1.1" +short_description: "First steps with Gnoga" +dependencies: [{crate: "gnoga", version: "^2.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/program_proofs_in_spark.md b/_crates/program_proofs_in_spark.md new file mode 100644 index 00000000..950ad77c --- /dev/null +++ b/_crates/program_proofs_in_spark.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "program_proofs_in_spark" +authors: ["Yannick Moy"] +maintainers: ["Yannick Moy "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/program_proofs_in_spark"] +tags: ["spark"] +version: "0.1.1" +short_description: "Programs from the book Program Proofs in SPARK" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}, +{crate: "gnatprove", version: "^12.1.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/progress_indicators.md b/_crates/progress_indicators.md new file mode 100644 index 00000000..2f40de4d --- /dev/null +++ b/_crates/progress_indicators.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "progress_indicators" +authors: ["the progress_indicators authors"] +maintainers: ["Paul Jarrett "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/pyjarrett/progress_indicators"] +tags: ["command-line", +"console", +"terminal", +"progress"] +version: "0.0.1" +short_description: "Ways of displaying progress in command line tools." +dependencies: [{crate: "ansiada", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/protobuf.md b/_crates/protobuf.md new file mode 100644 index 00000000..81091d5c --- /dev/null +++ b/_crates/protobuf.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "protobuf" +authors: ["Maxim Reznik"] +maintainers: ["Maxim Reznik "] +licenses: ["MIT"] +websites: ["https://github.com/reznikmm/protobuf"] +tags: ["protocol", +"rpc", +"generator"] +version: "1.0.0" +short_description: "Google Protocol Buffers implementation in Ada" +dependencies: [{crate: "ada_pretty", version: "*"}, +{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/pygamer_bsp.md b/_crates/pygamer_bsp.md new file mode 100644 index 00000000..030b1ef5 --- /dev/null +++ b/_crates/pygamer_bsp.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "pygamer_bsp" +authors: [] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["BSD-3-Clause"] +websites: [] +tags: ["embedded", +"nostd", +"pygamer", +"adafruit", +"game", +"console", +"bsp"] +version: "1.0.0" +short_description: "Board Support Package for the AdaFruit PyGamer" +dependencies: [{crate: "cortex_m", version: "~0.1.0"}, +{crate: "samd51_hal", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/pygamer_simulator.md b/_crates/pygamer_simulator.md new file mode 100644 index 00000000..fc177db9 --- /dev/null +++ b/_crates/pygamer_simulator.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "pygamer_simulator" +authors: [] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/pygamer-simulator"] +tags: ["pygamer", +"adafruit", +"game", +"console", +"simulator"] +version: "1.0.0" +short_description: "SDL simulator of the AdaFruit PyGamer console" +dependencies: [{crate: "asfml", version: "2.5.1"}, +{crate: "hal", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/qoi.md b/_crates/qoi.md new file mode 100644 index 00000000..111ceb3b --- /dev/null +++ b/_crates/qoi.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "qoi" +authors: ["Fabien Chouteau", +"Joffrey Huguet"] +maintainers: ["Fabien-Chouteau ", +"Joffrey Huguet "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/qoi-spark"] +tags: ["image", +"encoding", +"qoi"] +version: "0.1.0" +short_description: "Ada/SPARK implementation of the Quite Ok Image format" +dependencies: [{crate: "gnat", version: ">=11.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/raspberry_bsp.md b/_crates/raspberry_bsp.md new file mode 100644 index 00000000..ceaeb361 --- /dev/null +++ b/_crates/raspberry_bsp.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "raspberry_bsp" +authors: ["Tama McGlinn"] +maintainers: ["Tama McGlinn "] +licenses: ["MIT"] +websites: ["https://github.com/TamaMcGlinn/ada_raspio"] +tags: ["raspberry", +"pi"] +version: "1.0.0" +short_description: "Board Support package for Raspberry PI v1, v2 and B+" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/rclada.md b/_crates/rclada.md new file mode 100644 index 00000000..cd431b7f --- /dev/null +++ b/_crates/rclada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "rclada" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/ada-ros/ada4ros2"] +tags: ["ros", +"robotics", +"client"] +version: "0.1.0" +short_description: "ROS2 Ada Client Library" +dependencies: [{crate: "ros2_foxy", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/rclada_examples.md b/_crates/rclada_examples.md new file mode 100644 index 00000000..6b58d07b --- /dev/null +++ b/_crates/rclada_examples.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "rclada_examples" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/ada-ros/ada4ros2"] +tags: ["ros", +"robotics", +"client"] +version: "0.1.0" +short_description: "ROS2 Ada Client Library - Examples" +dependencies: [{crate: "rclada", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/re2c.md b/_crates/re2c.md new file mode 100644 index 00000000..fa42cf5a --- /dev/null +++ b/_crates/re2c.md @@ -0,0 +1 @@ +Not found: re2c* diff --git a/_crates/rejuvenation.md b/_crates/rejuvenation.md new file mode 100644 index 00000000..7c044e26 --- /dev/null +++ b/_crates/rejuvenation.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "rejuvenation" +authors: ["Pierre van de Laar", +"Arjan J. Mooij"] +maintainers: ["Pierre van de Laar "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/TNO/Rejuvenation-Ada"] +tags: ["analysis", +"manipulation", +"transformation"] +version: "23.0.0" +short_description: "Analysis and manipulation of Ada code based on concrete patterns" +dependencies: [{crate: "libadalang", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/remoteio.md b/_crates/remoteio.md new file mode 100644 index 00000000..8599eae4 --- /dev/null +++ b/_crates/remoteio.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "remoteio" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: ["BSD-1-Clause"] +websites: ["https://github.com/pmunts/libsimpleio"] +tags: ["embedded", +"linux", +"remoteio", +"adc", +"dac", +"gpio", +"i2c", +"motor", +"pwm", +"sensor", +"serial", +"servo", +"spi", +"stepper"] +version: "1.21136.1" +short_description: "Remote I/O Protocol Client Library for GNAT Ada" +dependencies: [{crate: "libhidapi", version: "*"}, +{crate: "libusb", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/resources.md b/_crates/resources.md new file mode 100644 index 00000000..ff12a90a --- /dev/null +++ b/_crates/resources.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "resources" +authors: ["Alire Team"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/alire-project/resources"] +tags: ["utils"] +version: "0.1.0" +short_description: "Utility library to handle project resources at run-time" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/rewriters.md b/_crates/rewriters.md new file mode 100644 index 00000000..a6020b23 --- /dev/null +++ b/_crates/rewriters.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "rewriters" +authors: ["Pierre van de Laar"] +maintainers: ["Pierre van de Laar "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/TNO/Rewriters-Ada"] +tags: ["manipulation", +"transformation"] +version: "23.0.0" +short_description: "Easy, yet advanced manipulation of Ada code" +dependencies: [{crate: "libadalang", version: "^23.0.0"}, +{crate: "rejuvenation", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/ros2_foxy.md b/_crates/ros2_foxy.md new file mode 100644 index 00000000..37e502a0 --- /dev/null +++ b/_crates/ros2_foxy.md @@ -0,0 +1 @@ +Not found: ros2_foxy* diff --git a/_crates/rp2040_hal.md b/_crates/rp2040_hal.md new file mode 100644 index 00000000..86f5be34 --- /dev/null +++ b/_crates/rp2040_hal.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "rp2040_hal" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://pico-doc.synack.me/"] +tags: ["embedded", +"nostd", +"rp2040", +"raspberrypi", +"drivers"] +version: "2.0.1" +short_description: "Drivers and HAL for the RP2040 micro-controller family" +dependencies: [{crate: "atomic", version: "~0.5"}, +{crate: "cortex_m", version: "~0.5"}, +{crate: "gnat_arm_elf", version: "^12.2"}, +{crate: "hal", version: "~0.3"}, +{crate: "usb_embedded", version: "~0.3"}] +configuration_variables: [{name: 'Flash_Chip', type: 'Enum (w25qxx, generic_qspi, generic_03)', default: "w25qxx"}, +{name: 'Interrupts', type: 'Enum (hal, bb_runtimes)', default: "hal"}, +{name: 'Use_Startup', type: 'Boolean', default: "true"}] +configuration_values: [{crate: 'atomic', settings: [{name: 'Backend', value: "armv6m"}]}, +{crate: 'cortex_m', settings: [{name: 'core', value: "m0p"}]}] + +--- + + diff --git a/_crates/rsfile.md b/_crates/rsfile.md new file mode 100644 index 00000000..0727fb98 --- /dev/null +++ b/_crates/rsfile.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "rsfile" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["GPL-3.0-only"] +websites: [] +tags: ["command-line", +"tool", +"random", +"file-size"] +version: "1.0.1" +short_description: "Randomly pick a file with probability proportional to its size" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/rtmidi.md b/_crates/rtmidi.md new file mode 100644 index 00000000..78c84ae2 --- /dev/null +++ b/_crates/rtmidi.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "rtmidi" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/rtmidi_ada"] +tags: ["midi", +"rtmidi", +"music"] +version: "0.1.0" +short_description: "Ada \"middleweight\" binding for the rtMIDI library" +dependencies: [{crate: "librtmidi", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/rxada.md b/_crates/rxada.md new file mode 100644 index 00000000..88167afd --- /dev/null +++ b/_crates/rxada.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "rxada" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/mosteo/rxada"] +tags: ["rx", +"reactive", +"reactivex", +"observer"] +version: "0.1.1" +short_description: "Experimental implementation of ReactiveX in Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/saatana.md b/_crates/saatana.md new file mode 100644 index 00000000..6d82ea66 --- /dev/null +++ b/_crates/saatana.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "saatana" +authors: [] +maintainers: ["vinzent@heisenbug.eu"] +licenses: ["WTFPL"] +websites: ["https://github.heisenbug.eu/Saatana"] +tags: ["cryptography", +"spark"] +version: "2.0.2" +short_description: "SPARK/Ada Algorithms Targeting Advanced Network Applications" +dependencies: [{crate: "gnat", version: "^2020"}] +configuration_variables: [] +configuration_values: [] + +--- +Saatana - SPARK/Ada Algorithms Targeting Advanced Network Applications +A collection of cryptographic algorithms, proven for correctness in SPARK. + +Currently contains [![Phelix](https://www.schneier.com/academic/archives/2005/01/phelix.html)](https://www.schneier.com/academic/archives/2005/01/phelix.html) + + diff --git a/_crates/samd51_hal.md b/_crates/samd51_hal.md new file mode 100644 index 00000000..9bfebd61 --- /dev/null +++ b/_crates/samd51_hal.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "samd51_hal" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/samd51-hal"] +tags: ["embedded", +"nostd", +"atsamd51", +"microchip", +"atmel", +"drivers"] +version: "0.3.0" +short_description: "Drivers and HAL for the SAMD51 micro-controller family" +dependencies: [{crate: "cortex_m", version: "~0.1"}, +{crate: "gnat_arm_elf", version: "^11.2.2"}, +{crate: "hal", version: "~0.1"}, +{crate: "usb_embedded", version: "~0.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/scripted_testing.md b/_crates/scripted_testing.md new file mode 100644 index 00000000..773013e5 --- /dev/null +++ b/_crates/scripted_testing.md @@ -0,0 +1,46 @@ +--- +layout: crate +crate: "scripted_testing" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/simonjwright/scripted_testing.git"] +tags: ["testing", +"integration", +"scripting"] +version: "2.0.0" +short_description: "Integration testing" +dependencies: [{crate: "tash", version: "^8.7.0"}] +configuration_variables: [] +configuration_values: [] + +--- +To set the scene, the Ada software under test (SUT) forms part of a system. Generally, the system will be constructed using a layered approach, and the other parts of the system that interact with the SUT are higher-level (which can call interface subprograms presented by the SUT) or lower-level (whose interfaces can be called by the SUT, or which can provide callbacks to the SUT). + +This package is intended for testing at a level between unit testing (using, for example, [AUnit](https://github.com/AdaCore/aunit)) and integration testing (using real hardware). Unit testing tends to be fragile, requiring a lot of rework for even minor functional changes in the requirements. + +The scripting language supported is [Tcl](http://www.tcl.tk), and specifically the Ada binding [Tash](https://github.com/simonjwright/tcladashell). The reason for choosing Tcl rather than Python or Lua is that Tcl's interface is entirely string-based; this is important, considering the need to specify values of enumerated types. + +The package provides facilities to write new commands in Tcl to + +* call the interface subprograms presented by the SUT, + +* set up values to be returned by calls the SUT makes to lower-level system components, + +* call callbacks provided by lower-level system components, + +* delay for appropriate periods, and + +* check that the proper calls have been made to lower-level system components, with the required values. + +It's assumed that the interface subprograms of the lower-level subsystems are stubbed so that: + +* `in` and `in out` parameters can be recorded for later checking, + +* `out` (and `in out`) parameter values and function `return` values can be provided to be returned to the SUT, + +* exceptions can be raised when required, + +* the number of calls to the subprogram can be checked. + + diff --git a/_crates/sdlada.md b/_crates/sdlada.md new file mode 100644 index 00000000..b0484170 --- /dev/null +++ b/_crates/sdlada.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "sdlada" +authors: ["Luke A. Guest"] +maintainers: ["Luke A. Guest "] +licenses: ["Zlib"] +websites: ["https://github.com/Lucretia/sdlada"] +tags: ["gamedev", +"games", +"portable", +"cross-platform"] +version: "2.5.5" +short_description: "Ada 2012 SDL 2.x bindings." +dependencies: [{crate: "libsdl2", version: "^2.0.0"}, +{crate: "libsdl2_image", version: "^2.0.0"}, +{crate: "libsdl2_ttf", version: "^2.0.0"}, +{crate: "make", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/security.md b/_crates/security.md new file mode 100644 index 00000000..0e6bbd4f --- /dev/null +++ b/_crates/security.md @@ -0,0 +1,49 @@ +--- +layout: crate +crate: "security" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-security"] +tags: ["security", +"oauth2", +"authentication", +"permissions", +"jwt"] +version: "1.5.0" +short_description: "Security Library for HTTP client and server with OAuth2 support" +dependencies: [{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_xml", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-security/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-securit/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-security/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-security/badge/?version=latest)](https://ada-security.readthedocs.io/en/latest/?badge=latest) + +Ada Security provides a security framework which allows applications to define +and enforce security policies. This framework allows users to authenticate by using +[OpenID Authentication 2.0](https://openid.net/specs/openid-authentication-2_0.html) +as well as [OAuth 2.0](https://oauth.net/2/) protocol. +It allows a web application to integrate easily with Yahoo!, Gitlab, Github, Facebook and +Google+ authentication systems. +The Ada05 library includes: + +* An OpenID client authentication, +* An OAuth 2.0 client authentication, +* An OpenID Connect authentication framework, +* An OAuth 2.0 server authentication framework, +* A policy based security framework to protect the resources + +The Ada Security library is used by the +[Ada Web Application](https://gitlab.com/stcarrez/ada-awa) +to provide authentication and access control to users within the web applications. + +## Documentation + +* [Ada Security Programmer's Guide](https://ada-security.readthedocs.io/en/latest/) + + + diff --git a/_crates/semantic_versioning.md b/_crates/semantic_versioning.md new file mode 100644 index 00000000..9ae86a60 --- /dev/null +++ b/_crates/semantic_versioning.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "semantic_versioning" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: ["https://github.com/alire-project/semantic_versioning"] +tags: ["semver", +"semantic", +"versioning"] +version: "2.1.0" +short_description: "Semantic Versioning in Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/septum.md b/_crates/septum.md new file mode 100644 index 00000000..c4d62a07 --- /dev/null +++ b/_crates/septum.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "septum" +authors: ["Paul Jarrett"] +maintainers: ["Paul Jarrett "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/pyjarrett/septum"] +tags: ["search", +"code", +"text"] +version: "0.0.7" +short_description: "An interactive context-based text search tool for large codebases." +dependencies: [{crate: "dir_iterators", version: "~0.0.3"}, +{crate: "progress_indicators", version: "~0.0.1"}, +{crate: "trendy_terminal", version: "~0.0.5"}, +{crate: "atomic", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/serverfaces.md b/_crates/serverfaces.md new file mode 100644 index 00000000..aac25091 --- /dev/null +++ b/_crates/serverfaces.md @@ -0,0 +1,38 @@ +--- +layout: crate +crate: "serverfaces" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-asf"] +tags: ["web", +"servlet", +"http", +"json"] +version: "1.6.0" +short_description: "Web Server Faces JSR 252, JSR 314 and JSR 344" +dependencies: [{crate: "security", version: "^1.5.0"}, +{crate: "servletada", version: "^1.7.0"}, +{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-asf/badge/?version=latest)](https://ada-asf.readthedocs.io/en/latest/?badge=latest) + +Ada Servlet allows to create web applications using the same pattern +as the Java Servlet (See JSR 154, JSR 315). + +The Ada Servlet library is used by the [Ada Server Faces](https://github.com/stcarrez/ada-asf) +framework and [Ada Web Application](https://github.com/stcarrez/ada-awa) +to provide server web requests. + +# Documentation + +* [Ada Server Faces Programmer's Guide](https://ada-asf.readthedocs.io/en/latest/) [PDF](https://gitlab.com/stcarrez/ada-asf/blob/master/docs/asf-book.pdf) + + + diff --git a/_crates/serverfaces_unit.md b/_crates/serverfaces_unit.md new file mode 100644 index 00000000..b3ba1b1d --- /dev/null +++ b/_crates/serverfaces_unit.md @@ -0,0 +1,43 @@ +--- +layout: crate +crate: "serverfaces_unit" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-asf"] +tags: ["web", +"servlet", +"http", +"framework", +"facelet", +"jsf", +"testing"] +version: "1.6.0" +short_description: "Web Server Faces JSR 252, JSR 314 and JSR 344 (Testing framework)" +dependencies: [{crate: "security", version: "^1.5.0"}, +{crate: "serverfaces", version: "^1.6.0"}, +{crate: "servletada", version: "^1.7.0"}, +{crate: "servletada_unit", version: "^1.7.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_unit", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-asf/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-asf/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-asf/badge/?version=latest)](https://ada-asf.readthedocs.io/en/latest/?badge=latest) + +Ada Server Faces allows to create web applications using the same pattern +as the Java Server Faces (See JSR 252, JSR 314 and JSR 344). + +This library provides a unit test framework that helps in building unit tests +on top of Ada Server Faces. + +# Documentation + +* [Ada Server Faces Programmer's Guide](https://ada-asf.readthedocs.io/en/latest/) [PDF](https://gitlab.com/stcarrez/ada-asf/blob/master/docs/asf-book.pdf) + + + diff --git a/_crates/servletada.md b/_crates/servletada.md new file mode 100644 index 00000000..62a3c278 --- /dev/null +++ b/_crates/servletada.md @@ -0,0 +1,34 @@ +--- +layout: crate +crate: "servletada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-servlet"] +tags: ["web", +"servlet", +"http", +"json", +"rest"] +version: "1.7.0" +short_description: "Web Servlet Library following JSR 154, JSR 315 (Core)" +dependencies: [{crate: "elada", version: "^1.8.5"}, +{crate: "security", version: "^1.5.0"}, +{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) + +Ada Servlet allows to create web applications using the same pattern +as the Java Servlet (See JSR 154, JSR 315). + +The Ada Servlet library is used by the [Ada Server Faces](https://gitlab.com/stcarrez/ada-asf) +framework and [Ada Web Application](https://gitlab.com/stcarrez/ada-awa) +to provide server web requests. + + + diff --git a/_crates/servletada_aws.md b/_crates/servletada_aws.md new file mode 100644 index 00000000..072c74ae --- /dev/null +++ b/_crates/servletada_aws.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "servletada_aws" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-servlet"] +tags: ["web", +"servlet", +"http", +"json"] +version: "1.6.0" +short_description: "Web Servlet Library following JSR 154, JSR 315 (AWS)" +dependencies: [{crate: "servletada", version: "^1.6.0"}, +{crate: "utilada_aws", version: "^2.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/jenkins/s/http/jenkins.vacs.fr/Ada-Servlet.svg)](https://jenkins.vacs.fr/job/Ada-Servlet/) +[![Test Status](https://img.shields.io/jenkins/t/http/jenkins.vacs.fr/Ada-Servlet.svg)](https://jenkins.vacs.fr/job/Ada-Servlet/) +[![codecov](https://codecov.io/gh/stcarrez/ada-servlet/branch/master/graph/badge.svg)](https://codecov.io/gh/stcarrez/ada-servlet) + +Ada Servlet allows to create web applications using the same pattern +as the Java Servlet (See JSR 154, JSR 315). + +This library integrates the Ada Servlet in the Ada Web Server. + + + diff --git a/_crates/servletada_ews.md b/_crates/servletada_ews.md new file mode 100644 index 00000000..640b8fc9 --- /dev/null +++ b/_crates/servletada_ews.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "servletada_ews" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-servlet"] +tags: ["web", +"servlet", +"http", +"json"] +version: "1.7.0" +short_description: "Web Servlet Library following JSR 154, JSR 315 (EWS)" +dependencies: [{crate: "ews", version: "*"}, +{crate: "servletada", version: "^1.7.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) + +Ada Servlet allows to create web applications using the same pattern +as the Java Servlet (See JSR 154, JSR 315). + +This library integrates the Ada Servlet in the Embedded Web Server. + + + diff --git a/_crates/servletada_unit.md b/_crates/servletada_unit.md new file mode 100644 index 00000000..194a8c38 --- /dev/null +++ b/_crates/servletada_unit.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "servletada_unit" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-servlet"] +tags: ["web", +"servlet", +"http", +"json", +"rest", +"testing"] +version: "1.7.0" +short_description: "Web Servlet Library following JSR 154, JSR 315 (Testing framework)" +dependencies: [{crate: "servletada", version: "^1.7.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "utilada_unit", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-servlet/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-servlet/summary) + +This library provides helper operations for unit testing a servlet implemented on top of +Ada Servlet. + + + diff --git a/_crates/sh1107.md b/_crates/sh1107.md new file mode 100644 index 00000000..9e1cbb0d --- /dev/null +++ b/_crates/sh1107.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "sh1107" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/sh1107"] +tags: ["embedded", +"rp2040"] +version: "1.2.2" +short_description: "Driver for the SH1107/OLED 128x128 monochrome display" +dependencies: [{crate: "embedded_components", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/sha1.md b/_crates/sha1.md new file mode 100644 index 00000000..6ab3cc38 --- /dev/null +++ b/_crates/sha1.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "sha1" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/sha1"] +tags: ["cryptography", +"security", +"sha1"] +version: "2.0.0" +short_description: "Secure Hash Algorithm 1 implemented in Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/sha2.md b/_crates/sha2.md new file mode 100644 index 00000000..092c55a9 --- /dev/null +++ b/_crates/sha2.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "sha2" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/sha2"] +tags: ["cryptography", +"security", +"sha2"] +version: "2.0.0" +short_description: "Secure Hash Algorithm 2 implemented in Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/shoot_n_loot.md b/_crates/shoot_n_loot.md new file mode 100644 index 00000000..2e78d532 --- /dev/null +++ b/_crates/shoot_n_loot.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "shoot_n_loot" +authors: [] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/shoot-n-loot"] +tags: ["pygamer", +"game", +"simulator"] +version: "1.0.0" +short_description: "Platform game for the AdaFruit PyGamer console" +dependencies: [{crate: "geste", version: "^1.1.0"}, +{crate: "gnat", version: "^10"}, +{crate: "pygamer_bsp", version: "~1.0.0"}, +{crate: "pygamer_simulator", version: "~1.0.0"}, +{crate: "virtapu", version: "~0.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/si_units.md b/_crates/si_units.md new file mode 100644 index 00000000..2084cdc9 --- /dev/null +++ b/_crates/si_units.md @@ -0,0 +1,40 @@ +--- +layout: crate +crate: "si_units" +authors: ["Vinzent \"Jellix\" Saranen"] +maintainers: ["vinzent@heisenbug.eu"] +licenses: ["WTFPL"] +websites: ["https://github.heisenbug.eu/si_units"] +tags: ["utilities", +"formatting"] +version: "0.2.0" +short_description: "Pretty print physical values in properly scaled metric (SI) units." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Provides generic conversion (`Image`) functions that convert values into human +readable strings with appropriate SI prefixes. This is especially convenient +when you have to deal with printing values from a potentially large interval, +and you need to represent such values as something an average human will +easily be able to read. Then you can use `SI_Units` to take care of the +conversion into an appropriate string representation for you. + +Converting values into a string is supported with all SI prefixes which are a +power of 1000 (yocto .. Yotta), additionally there is a generic that can deal +with binary prefixes (i.e. prefixes that denote powers of 1024). + +Scaling (i.e. conversion between different prefixes, like from kilo(meter) to +centi(meter)) between all defined SI prefixes is also supported, similar for +binary prefixes. + +See the project's [website](https://github.heisenbug.eu/si_units) for more +details. + +Version 0.2.0 is source code identical to the previous 0.1.3 release, but adds +full support for Alire integration. In the process, the provided `gnat` project +files have been streamlined, so if you upgrade to this version from a previous +release, you will need to adjust your own project files accordingly. + + diff --git a/_crates/simh_tapes.md b/_crates/simh_tapes.md new file mode 100644 index 00000000..962915f2 --- /dev/null +++ b/_crates/simh_tapes.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "simh_tapes" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["AGPL-3.0-or-later"] +websites: ["https://github.com/SMerrony/simh_tapes"] +tags: ["legacy", +"magtape", +"magnetic", +"tape", +"emulation", +"simulation"] +version: "0.1.1" +short_description: "Library to handle SimH Standard magnetic tape image files" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/simple_components.md b/_crates/simple_components.md new file mode 100644 index 00000000..6eaa8937 --- /dev/null +++ b/_crates/simple_components.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "simple_components" +authors: ["Dmitry A. Kazakov"] +maintainers: ["alejandro@mosteo.com", +"blady.net@orange.fr"] +licenses: ["GPL-2.0-only WITH GCC-exception-2.0"] +websites: ["http://www.dmitry-kazakov.de/ada/components.htm"] +tags: [] +version: "4.62.0" +short_description: "Simple Components - A collection of support packages" +dependencies: [{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "libgnutls", version: "^3.5.8"}, +{crate: "unixodbc", version: "^2.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/simple_logging.md b/_crates/simple_logging.md new file mode 100644 index 00000000..3fe9b415 --- /dev/null +++ b/_crates/simple_logging.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "simple_logging" +authors: ["Alejandro R. Mosteo"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: ["logging", +"utility"] +version: "1.2.0" +short_description: "Simple logging to console" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/simple_regex.md b/_crates/simple_regex.md new file mode 100644 index 00000000..3530452b --- /dev/null +++ b/_crates/simple_regex.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "simple_regex" +authors: ["Paul Jarrett"] +maintainers: ["Paul Jarrett "] +licenses: [] +websites: ["https://github.com/pyjarrett/simple_regex"] +tags: ["regex", +"text"] +version: "0.1.0" +short_description: "Port of Rob Pike's simple regex from the Practice of Programming." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Provides a simple regular expression match function for Latin-1 strings, and +supports *, ., ^ and $. + + diff --git a/_crates/slip.md b/_crates/slip.md new file mode 100644 index 00000000..227f80a5 --- /dev/null +++ b/_crates/slip.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "slip" +authors: ["Biser Milanov"] +maintainers: ["bmilanov11@gmail.com"] +licenses: ["BSD-3-Clause"] +websites: ["https://gitlab.com/bmilanov/slip"] +tags: ["embedded", +"protocols", +"spark"] +version: "0.0.1" +short_description: "SLIP Protocol Implementation" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/socketcan.md b/_crates/socketcan.md new file mode 100644 index 00000000..f4a503e2 --- /dev/null +++ b/_crates/socketcan.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "socketcan" +authors: [] +maintainers: ["glen.m.cornell@gmail.com"] +licenses: ["LGPL-3.0-only"] +websites: [] +tags: [] +version: "1.0.0" +short_description: "An Ada language binding to SocketCAN for GNU/Linux systems" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/spark_unbound.md b/_crates/spark_unbound.md new file mode 100644 index 00000000..0779975f --- /dev/null +++ b/_crates/spark_unbound.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "spark_unbound" +authors: ["Manuel Hatzl"] +maintainers: ["Manuel Hatzl "] +licenses: ["MIT"] +websites: ["https://github.com/mhatzl/spark_unbound"] +tags: ["spark", +"unbound"] +version: "0.2.1" +short_description: "Unbound data structures in Ada-Spark" +dependencies: [{crate: "gnat", version: "(>=9.3.1 & <2000) | >=2021"}] +configuration_variables: [] +configuration_values: [] + +--- +Spark_Unbound is a take on providing generic unbound data structures in Spark. + +In addition to proving general absence of runtime errors, the heap allocation is done in a non-Spark function to catch a possible `Storage_Error`. +This further increases the security and confident use of this library. + +**The following packages are currently available:** + +- `Spark_Unbound.Safe_Alloc`: Providing formally proven safe heap allocation functionality +- `Spark_Unbound.Arrays`: Providing a formally proven alternative to `Ada.Containers.Vector` + +**Note:** If you use this library, starring the repository on GitHub helps me a lot to see if it is even useful for someone else. + + diff --git a/_crates/sparknacl.md b/_crates/sparknacl.md new file mode 100644 index 00000000..5160e3e6 --- /dev/null +++ b/_crates/sparknacl.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "sparknacl" +authors: ["Rod Chapman"] +maintainers: ["Rod Chapman ", +"Jon Andrew "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/rod-chapman/SPARKNaCl"] +tags: ["spark", +"cryptography", +"security", +"nacl", +"curve25519", +"ed25519", +"tweetnacl"] +version: "4.0.0" +short_description: "Verified SPARK 2014 re-implementation of TweetNaCl cryptographic library" +dependencies: [{crate: "gnat", version: ">=12.1.1"}] +configuration_variables: [] +configuration_values: [] + +--- +SPARK 2014 re-implementation of TweetNaCl cryptographic library, with fully automated proofs of type safety and some correctness properties + diff --git a/_crates/spat.md b/_crates/spat.md new file mode 100644 index 00000000..10d823a0 --- /dev/null +++ b/_crates/spat.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "spat" +authors: ["Vinzent \"Jellix\" Saranen"] +maintainers: ["vinzent@heisenbug.eu"] +licenses: ["WTFPL"] +websites: ["https://github.heisenbug.eu/spat"] +tags: ["spark"] +version: "1.3.0" +short_description: "SPAT - SPARK Proof Analysis Tool" +dependencies: [{crate: "si_units", version: "~0.2"}] +configuration_variables: [] +configuration_values: [] + +--- +SPAT - SPARK Proof Analysis Tools + +Helper tool to obtain, analyse, sort, and filter timing information about +`gnatprove` runs (`SPARK` tools). + + diff --git a/_crates/spawn.md b/_crates/spawn.md new file mode 100644 index 00000000..e30b2675 --- /dev/null +++ b/_crates/spawn.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "spawn" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Max Reznik "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/spawn"] +tags: ["process", +"launch", +"pipe"] +version: "23.0.0" +short_description: "A simple library to spawn processes and communicate with them." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is Glib indepentent implementation of a spawn processes interface. + diff --git a/_crates/spawn_glib.md b/_crates/spawn_glib.md new file mode 100644 index 00000000..e09befe6 --- /dev/null +++ b/_crates/spawn_glib.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "spawn_glib" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Max Reznik "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/spawn"] +tags: ["process", +"launch", +"pipe", +"glib"] +version: "23.0.0" +short_description: "A simple library to spawn processes and communicate with them." +dependencies: [{crate: "gtkada", version: ">=23"}] +configuration_variables: [] +configuration_values: [] + +--- +This is Glib integrated implementation of a spawn processes interface. + diff --git a/_crates/spdx.md b/_crates/spdx.md new file mode 100644 index 00000000..058414da --- /dev/null +++ b/_crates/spdx.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "spdx" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/spdx_ada"] +tags: ["spdx", +"license"] +version: "0.2.0" +short_description: "SPDX License Expression Validator" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/specfun.md b/_crates/specfun.md new file mode 100644 index 00000000..f1194421 --- /dev/null +++ b/_crates/specfun.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "specfun" +authors: ["Riccardo Bernardini"] +maintainers: ["Riccardo Bernardini "] +licenses: ["MIT"] +websites: ["https://gitlab.com/my-ada-library/specfun"] +tags: ["special-fun", +"numerics", +"beta-function", +"gamma-function", +"beta-incomplete"] +version: "1.0.0" +short_description: "Native Ada library of special functions (e.g., beta, gamma)" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is a small native Ada library that provides few special functions like Beta, Gamma and Beta Incomplete. I wrote this because I needed those functions, therefore at the moment only the functions that I needed are present. This is a pure native Ada library and there is no dependence on external FORTRAN libraries. + diff --git a/_crates/spoon.md b/_crates/spoon.md new file mode 100644 index 00000000..2d412026 --- /dev/null +++ b/_crates/spoon.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "spoon" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/spoon"] +tags: ["posix", +"spawn", +"process"] +version: "1.0.1" +short_description: "Use posix_spawn() to spawn processes without forking" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/startup_gen.md b/_crates/startup_gen.md new file mode 100644 index 00000000..0506c36e --- /dev/null +++ b/_crates/startup_gen.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "startup_gen" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/AdaCore/startup-gen"] +tags: ["embedded", +"zfp", +"nostd"] +version: "23.0.0" +short_description: "Generates startup files (crt0 and linker script)" +dependencies: [{crate: "gnatcoll", version: "~23.0.0"}, +{crate: "libgpr", version: "~23.0.0"}, +{crate: "templates_parser", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/stephes_ada_library.md b/_crates/stephes_ada_library.md new file mode 100644 index 00000000..cb9e473e --- /dev/null +++ b/_crates/stephes_ada_library.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "stephes_ada_library" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://stephe-leake.org/ada/sal.html"] +tags: ["containers", +"trees"] +version: "3.7.2" +short_description: "Stephe's Ada library; miscellaneous useful stuff." +dependencies: [{crate: "gnat", version: "(>=11 & <2000) | >=2021"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/stm32f0x2_hal.md b/_crates/stm32f0x2_hal.md new file mode 100644 index 00000000..159e40d7 --- /dev/null +++ b/_crates/stm32f0x2_hal.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "stm32f0x2_hal" +authors: ["AdaCore", +"Marc Poulhiès"] +maintainers: ["Marc Poulhiès "] +licenses: ["GPL-3.0-or-later AND BSD-3-Clause"] +websites: ["https://github.com/dkm/stm32f0x2_hal-ada"] +tags: ["embedded", +"stm32f0", +"nostd", +"drivers"] +version: "0.1.0" +short_description: "Drivers and HAL for stm32f0x2 mcu family" +dependencies: [{crate: "cortex_m", version: "~0.5"}, +{crate: "gnat_arm_elf", version: "^12"}, +{crate: "hal", version: "~0.3"}, +{crate: "usb_embedded", version: "~0.3"}] +configuration_variables: [{name: 'Use_Startup', type: 'Boolean', default: "true"}] +configuration_values: [{crate: 'atomic', settings: [{name: 'backend', value: "armv6m"}]}, +{crate: 'cortex_m', settings: [{name: 'core', value: "m0"}]}] + +--- + + diff --git a/_crates/stopwatch.md b/_crates/stopwatch.md new file mode 100644 index 00000000..6a39aa79 --- /dev/null +++ b/_crates/stopwatch.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "stopwatch" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["timer", +"stopwatch", +"chronometer"] +version: "0.1.0" +short_description: "Keep track of elapsed time" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/svd2ada.md b/_crates/svd2ada.md new file mode 100644 index 00000000..ab629e3c --- /dev/null +++ b/_crates/svd2ada.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "svd2ada" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: [] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Ada binding generator from CMSIS-SVD hardware descriptions files" +dependencies: [{crate: "xmlada", version: "^22.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/system_random.md b/_crates/system_random.md new file mode 100644 index 00000000..56f052cb --- /dev/null +++ b/_crates/system_random.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "system_random" +authors: ["Anton Fediushin"] +maintainers: ["Anton Fediushin "] +licenses: ["ISC"] +websites: ["https://github.com/AntonMeep/system_random"] +tags: ["system", +"cryptography", +"random", +"security"] +version: "1.0.0" +short_description: "Minimal library to retrieve random data from system sources" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/tash.md b/_crates/tash.md new file mode 100644 index 00000000..a66dbe24 --- /dev/null +++ b/_crates/tash.md @@ -0,0 +1,33 @@ +--- +layout: crate +crate: "tash" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-2.0-or-later WITH GCC-exception-2.0"] +websites: ["https://github.com/simonjwright/tcladashell"] +tags: ["scripting", +"tcl", +"tk"] +version: "8.7.2" +short_description: "Binding to Tcl/Tk" +dependencies: [{crate: "libtcl", version: "~8.6.0"}, +{crate: "libtk", version: "~8.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Tash (previously known as Tcl Ada Shell) is an Ada binding to Tcl/Tk. + +Its purpose is to + +* allow a Tcl program to use Ada in place of C to implement Tcl + commands where additional execution speed, more complex data + structures, or better name space management is needed, and + +* support the rapid development of Platform-Independent Graphical User + Interfaces via Tk. + +Please note that, on macOS, tash assumes that Tcl/Tk is provided via +[Homebrew](https://brew.sh). + + diff --git a/_crates/task_coroutines.md b/_crates/task_coroutines.md new file mode 100644 index 00000000..4cc4743e --- /dev/null +++ b/_crates/task_coroutines.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "task_coroutines" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/task_coroutines"] +tags: ["coroutine", +"generator"] +version: "0.1.0" +short_description: "Coroutines and generators using only standard tasking features" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/templates_parser.md b/_crates/templates_parser.md new file mode 100644 index 00000000..99a65a9e --- /dev/null +++ b/_crates/templates_parser.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "templates_parser" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/templates-parser"] +tags: [] +version: "23.0.0" +short_description: "Templates Parser: File generation from templates in Ada" +dependencies: [{crate: "xmlada", version: "~23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/tiled_code_gen.md b/_crates/tiled_code_gen.md new file mode 100644 index 00000000..e6e5e823 --- /dev/null +++ b/_crates/tiled_code_gen.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "tiled_code_gen" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: [] +websites: ["https://github.com/Fabien-Chouteau/tiled-code-gen"] +tags: ["geste", +"gamedev", +"game", +"tiled"] +version: "0.1.0" +short_description: "Generate GESTE data from Tiled maps and tilesets" +dependencies: [{crate: "apdf", version: "^5.0.0"}, +{crate: "gnatcoll", version: "^21.0.0"}, +{crate: "xmlada", version: "^21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/tiny_rp2040_bsp.md b/_crates/tiny_rp2040_bsp.md new file mode 100644 index 00000000..632058f8 --- /dev/null +++ b/_crates/tiny_rp2040_bsp.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "tiny_rp2040_bsp" +authors: ["Holger Rodriguez"] +maintainers: ["Holger Rodriguez "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/hgrodriguez/tiny_rp2040_bsp"] +tags: ["embedded", +"nostd", +"tiny", +"rp2040", +"bsp"] +version: "0.2.1" +short_description: "Board support package for Pimoroni Tiny RP2040" +dependencies: [{crate: "hal", version: "~0.3"}, +{crate: "rp2040_hal", version: "^2"}, +{crate: "gnat_arm_elf", version: "^12.1.2"}] +configuration_variables: [] +configuration_values: [{crate: 'rp2040_hal', settings: [{name: 'Flash_Chip', value: "w25qxx"}]}] + +--- + + diff --git a/_crates/tiny_text.md b/_crates/tiny_text.md new file mode 100644 index 00000000..b18d9e06 --- /dev/null +++ b/_crates/tiny_text.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "tiny_text" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["MIT"] +websites: ["https://github.com/JeremyGrosser/tiny_text"] +tags: ["font", +"hal", +"bitmap", +"text"] +version: "1.0.0" +short_description: "Low resolution bitmap font with a small memory footprint" +dependencies: [{crate: "hal", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/tlsada.md b/_crates/tlsada.md new file mode 100644 index 00000000..d2543d61 --- /dev/null +++ b/_crates/tlsada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "tlsada" +authors: ["nytpu"] +maintainers: ["nytpu "] +licenses: ["MPL-2.0"] +websites: ["https://git.sr.ht/~nytpu/tlsada"] +tags: ["tls", +"ssl"] +version: "2.5.2" +short_description: "Bindings for libtls" +dependencies: [{crate: "libtls", version: "^3.5"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/toml_slicer.md b/_crates/toml_slicer.md new file mode 100644 index 00000000..8cc2d085 --- /dev/null +++ b/_crates/toml_slicer.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "toml_slicer" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: ["https://github.com/mosteo/toml_slicer"] +tags: ["toml"] +version: "0.1.1" +short_description: "Edit TOML files directly without parsing" +dependencies: [{crate: "aaa", version: "~0.2.4|~0.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/trendy_terminal.md b/_crates/trendy_terminal.md new file mode 100644 index 00000000..3649e866 --- /dev/null +++ b/_crates/trendy_terminal.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "trendy_terminal" +authors: ["Paul Jarrett"] +maintainers: ["Paul Jarrett "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/pyjarrett/trendy_terminal"] +tags: ["terminal", +"command-line", +"console", +"vt100"] +version: "0.0.5" +short_description: "Terminal options, setup, tab completion and hinting." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/trendy_test.md b/_crates/trendy_test.md new file mode 100644 index 00000000..104bb0ab --- /dev/null +++ b/_crates/trendy_test.md @@ -0,0 +1,134 @@ +--- +layout: crate +crate: "trendy_test" +authors: ["Paul Jarrett"] +maintainers: ["Paul Jarrett "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/pyjarrett/trendy_test"] +tags: ["test", +"unit-test", +"unit"] +version: "0.0.3" +short_description: "Minimal Effort Ada Unit Testing Library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +# trendy_test + +Minimum Effort Ada Unit Testing Library + +[![Build Status](https://github.com/pyjarrett/trendy_test/actions/workflows/build.yml/badge.svg)](https://github.com/pyjarrett/trendy_test/actions) + +## Features + +- Minimum setup +- Parallelization of tests +- Randomization of test order to find dependencies between tests +- No generated code or scripts needed + +## Example + +```ada +with Ada.Text_IO; +with Trendy_Test; +with Trendy_Test.Assertions.Integer_Assertions; +with Trendy_Test.Reports; + +use Trendy_Test.Assertions; +use Trendy_Test.Assertions.Integer_Assertions; + +procedure My_Test_Main is +begin + Trendy_Test.Register (My_Tests.All_Tests); + Trendy_Test.Reports.Print_Basic_Report(Trendy_Test.Run); +end My_Test_Main; + +---------------------------------------------------------------- + +with Trendy_Test; +package My_Tests is + function All_Tests return Trendy_Test.Test_Group; +end Trendy_Command_Line_Tests; + +---------------------------------------------------------------- + +package body My_Tests is + procedure Test_Sample (T : in out Trendy_Test.Operation'Class) is + begin + -- Don't put anything above here you don't want run during listing/other ops. + T.Register; + Assert (T, Some_Expression); + end Test_Sample; + + procedure Test_Is_Disabled (T : in out Trendy_Test.Operation'Class) is + begin + T.Register(Disabled => True); -- Disabled, don't run this test. + Assert (T, Some_Expression); + end Test_Sample; + + procedure Test_Is_Not_Run_In_Parallel (T : in out Trendy_Test.Operation'Class) is + begin + T.Register(Parallelize => False); -- There's some dependency, so don't run it in parallel. + Assert (T, Some_Expression); + end Test_Sample; + + function All_Tests return Trendy_Test.Test_Group is + begin + return + (Test_Sample'Access, + Test_Is_Disabled'Access + ); + end All_Tests; +end My_Tests; +``` + +## Example Output + +``` +D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main +[ PASS ] shared_pointers_tests.test_multiple_oracles 0.000105300 +[ PASS ] shared_pointers_tests.test_single_oracle 0.000052700 +[ PASS ] trendy_command_line.context_free.tests.test_is_long_option 0.000002300 +[ PASS ] trendy_command_line.context_free.tests.test_is_option_terminator 0.000007200 +[ PASS ] trendy_command_line.context_free.tests.test_is_short_option 0.000005000 +[ PASS ] trendy_command_line.context_free.tests.test_is_short_option_or_group 0.000009200 +[ PASS ] trendy_command_line_tests.flags.test_boolean_option_defaults 0.000149400 +[ FAIL ] trendy_command_line_tests.flags.test_boolean_option_short_option_group 0.000185600 + Assertion Failed: (Condition false) at D:\dev\ada\trendy_command_line\src\trendy_command_line_tests-flags.adb: 110[D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main.exe] +0x453530 Trendy_Test.Report_Failure at trendy_test.adb:88 +0x4535a4 Trendy_Test.Assert at trendy_test.adb:102 +0x425338 Trendy_Command_Line_Tests.Flags.Test_Boolean_Option_Short_Option_Group at trendy_command_line_tests-flags.adb:110 +0x451ff1 Trendy_Test.Run_Test at trendy_test.adb:237 +0x452d4c Trendy_Test.Run.Parallel_Test_TaskTB at trendy_test.adb:277 +0x4601a2 system__tasking__queuing__select_protected_entry_call at ??? +[C:\Windows\System32\KERNEL32.DLL] +0x7ffd7d1f7032 +[C:\Windows\SYSTEM32\ntdll.dll] +0x7ffd7e08264f + +[ FAIL ] trendy_command_line_tests.flags.test_boolean_option_short_options 0.001984800 + Assertion Failed: (Condition false) at D:\dev\ada\trendy_command_line\src\trendy_command_line_tests-flags.adb: 93[D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main.exe] +0x453530 Trendy_Test.Report_Failure at trendy_test.adb:88 +0x4535a4 Trendy_Test.Assert at trendy_test.adb:102 +0x425a43 Trendy_Command_Line_Tests.Flags.Test_Boolean_Option_Short_Options at trendy_command_line_tests-flags.adb:93 +0x451ff1 Trendy_Test.Run_Test at trendy_test.adb:237 +0x452d4c Trendy_Test.Run.Parallel_Test_TaskTB at trendy_test.adb:277 +0x4601a2 system__tasking__queuing__select_protected_entry_call at ??? +[C:\Windows\System32\KERNEL32.DLL] +0x7ffd7d1f7032 +[C:\Windows\SYSTEM32\ntdll.dll] +0x7ffd7e08264f + +[ PASS ] trendy_command_line_tests.flags.test_boolean_option_toggles 0.000153600 +[ PASS ] trendy_command_line_tests.flags.test_boolean_option_too_many_occurrences + 0.003517400 +[ PASS ] trendy_command_line_tests.test_long_option_with_argument 0.000013000 +[ PASS ] trendy_command_line_tests.test_one_operand 0.000006700 +[ PASS ] trendy_command_line_tests.test_short_option_with_argument 0.000193600 +Results: Passed: 12 / 14 +``` + + + diff --git a/_crates/tresses.md b/_crates/tresses.md new file mode 100644 index 00000000..87c164bc --- /dev/null +++ b/_crates/tresses.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "tresses" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: ["https://weenoisemaker.com/"] +tags: ["embedded", +"audio", +"synthesis", +"nostd"] +version: "0.1.0" +short_description: "Synth library inspired by Mutable Instruments Braids" +dependencies: [{crate: "midi", version: "~0.2.0"}] +configuration_variables: [{name: 'Resources_Linker_Section', type: 'String', default: ""}, +{name: 'Sample_Rate', type: 'Enum (SR22050, SR32000, SR44100, SR48000, SR96000)', default: "SR44100"}] +configuration_values: [] + +--- + + diff --git a/_crates/umwi.md b/_crates/umwi.md new file mode 100644 index 00000000..1e444ae2 --- /dev/null +++ b/_crates/umwi.md @@ -0,0 +1,26 @@ +--- +layout: crate +crate: "umwi" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["LGPL-3.0-or-later"] +websites: [""] +tags: ["unicode", +"emoji", +"emoticon", +"monospace", +"east", +"asian", +"width", +"grapheme", +"cluster", +"combining"] +version: "0.1.0" +short_description: "Unicode Monospace Width Information" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/unixodbc.md b/_crates/unixodbc.md new file mode 100644 index 00000000..fdcafa65 --- /dev/null +++ b/_crates/unixodbc.md @@ -0,0 +1 @@ +Not found: unixodbc* diff --git a/_crates/uri_ada.md b/_crates/uri_ada.md new file mode 100644 index 00000000..3f3ced08 --- /dev/null +++ b/_crates/uri_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "uri_ada" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["uri", +"url", +"utility"] +version: "2.0.0" +short_description: "Processing of URI strings" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/uri_mime.md b/_crates/uri_mime.md new file mode 100644 index 00000000..1c0a733a --- /dev/null +++ b/_crates/uri_mime.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "uri_mime" +authors: ["nytpu"] +maintainers: ["nytpu "] +licenses: ["MPL-2.0"] +websites: ["https://git.sr.ht/~nytpu/uri-mime-ada"] +tags: ["uri", +"url", +"mime", +"media-type"] +version: "1.4.0" +short_description: "URI & MIME Type Parsing and Manupulation" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/usb_embedded.md b/_crates/usb_embedded.md new file mode 100644 index 00000000..ac8cf6b2 --- /dev/null +++ b/_crates/usb_embedded.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "usb_embedded" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/Fabien-Chouteau/usb_embedded"] +tags: ["embedded", +"usb", +"hid", +"midi", +"nostd"] +version: "0.3.0" +short_description: "An Ada USB stack for embedded devices" +dependencies: [{crate: "bbqueue", version: "~0.3.0"}, +{crate: "hal", version: "~0.3"}] +configuration_variables: [{name: 'Control_Buffer_Size', type: 'Integer range 256 .. 9223372036854775807', default: "256"}, +{name: 'Event_Log_Buffer_Size', type: 'Integer range 0 .. 9223372036854775807', default: "0"}, +{name: 'Max_Strings', type: 'Integer range 0 .. 9223372036854775807', default: "10"}, +{name: 'String_Buffer_Size', type: 'Integer range 0 .. 9223372036854775807', default: "256"}] +configuration_values: [] + +--- + + diff --git a/_crates/utf8test.md b/_crates/utf8test.md new file mode 100644 index 00000000..8759ae70 --- /dev/null +++ b/_crates/utf8test.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "utf8test" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT OR Apache-2.0"] +websites: [""] +tags: ["unicode", +"utf-8", +"latin-1", +"terminal"] +version: "0.1.0" +short_description: "Test the terminal behavior when outputting Latin-1 and UTF-8 strings" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/utilada.md b/_crates/utilada.md new file mode 100644 index 00000000..61375e35 --- /dev/null +++ b/_crates/utilada.md @@ -0,0 +1,49 @@ +--- +layout: crate +crate: "utilada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["logging", +"processes", +"streams", +"json", +"beans", +"encoders", +"decoders"] +version: "2.6.0" +short_description: "Utility Library with streams, processes, logs, serialization, encoders" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-util/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-util/badge/?version=latest)](https://ada-util.readthedocs.io/en/latest/?badge=latest) + +This Ada library contains various utility packages for building +Ada applications. This includes: + +* A logging framework close to Java log4j framework, +* Support for INI and property files, +* A serialization/deserialization framework for XML, JSON, CSV, Forms +* Ada beans framework, +* Encoding/decoding framework (Base16, Base32, Base64, SHA, HMAC-SHA, AES-256), +* A composing stream framework (raw, files, buffers, pipes, sockets, encryption, decryption, LZMA compression, LZMA decompression), +* Several concurrency tools (reference counters, counters, pools, fifos, arrays), +* Process creation and pipes, +* Support for loading shared libraries (on Windows or Unix), +* HTTP client library on top of CURL or AWS. + +# Documentation + +* [Ada Utility Library Programmer's Guide](https://ada-util.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-util/blob/master/docs/utilada-book.pdf) +* [IO stream composition and serialization with Ada Utility Library](https://blog.vacs.fr/vacs/blogs/post.html?post=2022/03/05/IO-stream-composition-and-serialization-with-Ada-Utility-Library) +* [Easy reading and writing files with Ada Utility Library](https://blog.vacs.fr/vacs/blogs/post.html?post=2020/08/09/Easy-reading-and-writing-files-with-Ada-Utility-Library) +* [Process creation in Java and Ada](https://blog.vacs.fr/vacs/blogs/post.html?post=2012/03/16/Process-creation-in-Java-and-Ada) + + + diff --git a/_crates/utilada_aws.md b/_crates/utilada_aws.md new file mode 100644 index 00000000..35faaba0 --- /dev/null +++ b/_crates/utilada_aws.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "utilada_aws" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["web", +"http"] +version: "2.5.0" +short_description: "Utility Library REST support on top of AWS" +dependencies: [{crate: "aws", version: "~21.0"}, +{crate: "utilada", version: "^2.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- + +[![Build Status](https://img.shields.io/jenkins/s/https/jenkins.vacs.fr/Ada-Util.svg)](https://jenkins.vacs.fr/job/Ada-Util/) +[![Test Status](https://img.shields.io/jenkins/t/https/jenkins.vacs.fr/Ada-Util.svg)](https://jenkins.vacs.fr/job/Ada-Util/) +[![codecov](https://codecov.io/gh/stcarrez/ada-util/branch/master/graph/badge.svg)](https://codecov.io/gh/stcarrez/ada-util) + + +This small library provides an HTTP backend on top of AWS. +It is can be used by the `Util.Http` package. + +An alternate HTTP backend is provided by CURL with utilada_curl. + + + diff --git a/_crates/utilada_curl.md b/_crates/utilada_curl.md new file mode 100644 index 00000000..9163e746 --- /dev/null +++ b/_crates/utilada_curl.md @@ -0,0 +1,34 @@ +--- +layout: crate +crate: "utilada_curl" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["web", +"http", +"rest"] +version: "2.6.0" +short_description: "Utility Library REST support on top of CURL" +dependencies: [{crate: "libcurl", version: "*"}, +{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-util/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-util/badge/?version=latest)](https://ada-util.readthedocs.io/en/latest/?badge=latest) + +This small library provides an HTTP backend on top of CURL. +It can be used by the `Util.Http` package. + +An alternate HTTP backend is provided by AWS with `utilada_aws`. + +# Documentation + +* [Ada Utility Library Programmer's Guide](https://ada-util.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-util/blob/master/docs/utilada-book.pdf) + + + diff --git a/_crates/utilada_lzma.md b/_crates/utilada_lzma.md new file mode 100644 index 00000000..9b2bdb5c --- /dev/null +++ b/_crates/utilada_lzma.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "utilada_lzma" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["lzma", +"streams"] +version: "2.6.0" +short_description: "Utility Library streams with LZMA support" +dependencies: [{crate: "lzmada", version: "^1.1.2"}, +{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-util/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-util/badge/?version=latest)](https://ada-util.readthedocs.io/en/latest/?badge=latest) + +This small library provides LZMA streams. + +# Documentation + +* [Ada Utility Library Programmer's Guide](https://ada-util.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-util/blob/master/docs/utilada-book.pdf) + + + diff --git a/_crates/utilada_unit.md b/_crates/utilada_unit.md new file mode 100644 index 00000000..6e365d76 --- /dev/null +++ b/_crates/utilada_unit.md @@ -0,0 +1,26 @@ +--- +layout: crate +crate: "utilada_unit" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["testing"] +version: "2.6.0" +short_description: "Utility Library testing framework with Ahven" +dependencies: [{crate: "utilada", version: "^2.6.0"}] +configuration_variables: [] +configuration_values: [] + +--- + +[![Build Status](https://img.shields.io/jenkins/s/https/jenkins.vacs.fr/Ada-Util.svg)](https://jenkins.vacs.fr/job/Ada-Util/) +[![Test Status](https://img.shields.io/jenkins/t/https/jenkins.vacs.fr/Ada-Util.svg)](https://jenkins.vacs.fr/job/Ada-Util/) +[![codecov](https://codecov.io/gh/stcarrez/ada-util/branch/master/graph/badge.svg)](https://codecov.io/gh/stcarrez/ada-util) + +This library provides a testing framework on top of Ahven. +It provides various testing helper operations to help in +writing unit tests. + + + diff --git a/_crates/utilada_xml.md b/_crates/utilada_xml.md new file mode 100644 index 00000000..02c025a8 --- /dev/null +++ b/_crates/utilada_xml.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "utilada_xml" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-util"] +tags: ["xml", +"serialization"] +version: "2.6.0" +short_description: "Utility Library serialization with XML/Ada" +dependencies: [{crate: "utilada", version: "^2.6.0"}, +{crate: "xmlada", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-util/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-util/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-util/summary) +[![Documentation Status](https://readthedocs.org/projects/ada-util/badge/?version=latest)](https://ada-util.readthedocs.io/en/latest/?badge=latest) + +This library provides a serialization framework on top of XML/Ada for Ada Utility Library. + +# Documentation + +* [Ada Utility Library Programmer's Guide](https://ada-util.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-util/blob/master/docs/utilada-book.pdf) + + + diff --git a/_crates/uxstrings.md b/_crates/uxstrings.md new file mode 100644 index 00000000..f2a9db51 --- /dev/null +++ b/_crates/uxstrings.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "uxstrings" +authors: ["Pascal Pignard"] +maintainers: ["Pascal Pignard "] +licenses: ["CECILL-C"] +websites: ["https://github.com/Blady-Com/UXStrings"] +tags: ["unicode", +"dynamic", +"string"] +version: "0.6.0+alpha-20231007" +short_description: "Unicode Extended Strings utilities" +dependencies: [{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "simple_components", version: "^4.62.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/vanilla.md b/_crates/vanilla.md new file mode 100644 index 00000000..fd1d22d0 --- /dev/null +++ b/_crates/vanilla.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "vanilla" +authors: ["Jesper Quorning"] +maintainers: ["Jesper Quorning "] +licenses: ["MIT"] +websites: ["https://github.com/jquorning/vanilla"] +tags: ["simple", +"substitute", +"replace", +"vanilla"] +version: "0.9.8" +short_description: "Simple replace in character stream" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Library of simple substitution of tags into strings +in character streams and strings. + +Tags could be $A, $B, $3 etcetera. + + diff --git a/_crates/vaton.md b/_crates/vaton.md new file mode 100644 index 00000000..1e1002a1 --- /dev/null +++ b/_crates/vaton.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "vaton" +authors: ["Manuel Hatzl"] +maintainers: ["Manuel Hatzl "] +licenses: ["MIT"] +websites: ["https://github.com/mhatzl/vaton"] +tags: ["spark"] +version: "0.1.0" +short_description: "Verified Ascii To Number conversion written in Ada/SPARK" +dependencies: [{crate: "spark_unbound", version: "~0.2.1"}, +{crate: "gnat", version: "(>=12.0.0 & <2000) | >=2021"}] +configuration_variables: [] +configuration_values: [] + +--- +This library offers formally verified functions to convert character streams into the smallest standard type representation the resulting number may fit in. +The allowed formats are based on the [JSON-Number format](https://www.json.org/json-en.html), with the addition to allow single underscores between digits. + +**Note:** Only decimal based numbers are supported! + +**Examples:** + +``` +-10_000 -> Standard.Integer +1.0 -> Standard.Float +1e4 -> Standard.Float +``` + + diff --git a/_crates/virtapu.md b/_crates/virtapu.md new file mode 100644 index 00000000..3514f79a --- /dev/null +++ b/_crates/virtapu.md @@ -0,0 +1,34 @@ +--- +layout: crate +crate: "virtapu" +authors: ["Fabien Chouteau"] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/virtapu"] +tags: ["nostd", +"audio", +"synth", +"game"] +version: "0.2.0" +short_description: "A virtual Audio Processing Unit to simulate 8-bit era game sounds" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +# VirtAPU + +A virtual Audio Processing Unit to simulate 8-bit era game sounds + + - Arbitrary number of voice(s) + - 4 sounds: + - Pulse + - Triangle + - Noise1 (LFSR 1) + - Noise2 (LFSR 6) + - Pulse witdth modulation + - Decay + - Frequency sweep + - Sequencer + + diff --git a/_crates/vss.md b/_crates/vss.md new file mode 100644 index 00000000..0d06a55a --- /dev/null +++ b/_crates/vss.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "vss" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/AdaCore/VSS"] +tags: ["unicode", +"json", +"text", +"xml", +"template"] +version: "23.0.0" +short_description: "Advanced string and text manipulation with Unicode support" +dependencies: [{crate: "gnat", version: ">=12 & <=2000"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_ada_info.md b/_crates/wayland_ada_info.md new file mode 100644 index 00000000..1087d3a1 --- /dev/null +++ b/_crates/wayland_ada_info.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "wayland_ada_info" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland"] +version: "1.0.0" +short_description: "A tool to display information about supported Wayland interfaces" +dependencies: [{crate: "wayland_protocols_ada", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_ada_scanner.md b/_crates/wayland_ada_scanner.md new file mode 100644 index 00000000..26e35166 --- /dev/null +++ b/_crates/wayland_ada_scanner.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "wayland_ada_scanner" +authors: ["onox", +"Joakim Strandberg"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland", +"egl"] +version: "1.0.0" +short_description: "A tool to generate thick Ada 2012 bindings for Wayland protocols" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_client_ada.md b/_crates/wayland_client_ada.md new file mode 100644 index 00000000..dd3f57fb --- /dev/null +++ b/_crates/wayland_client_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "wayland_client_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland", +"client"] +version: "1.0.0" +short_description: "Ada 2012 bindings for libwayland-client and the Wayland protocol" +dependencies: [{crate: "libwayland", version: "^1.18"}, +{crate: "wayland_ada_scanner", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_cursor_ada.md b/_crates/wayland_cursor_ada.md new file mode 100644 index 00000000..2642903a --- /dev/null +++ b/_crates/wayland_cursor_ada.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "wayland_cursor_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland"] +version: "1.0.0" +short_description: "Ada 2012 bindings for libwayland-cursor" +dependencies: [{crate: "libwayland", version: "^1.18"}, +{crate: "wayland_client_ada", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_egl_ada.md b/_crates/wayland_egl_ada.md new file mode 100644 index 00000000..e6644afb --- /dev/null +++ b/_crates/wayland_egl_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "wayland_egl_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland", +"egl"] +version: "1.0.0" +short_description: "Ada 2012 bindings for libwayland-egl" +dependencies: [{crate: "libwayland", version: "^1.18"}, +{crate: "wayland_client_ada", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wayland_protocols_ada.md b/_crates/wayland_protocols_ada.md new file mode 100644 index 00000000..42a72c2f --- /dev/null +++ b/_crates/wayland_protocols_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "wayland_protocols_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/wayland-ada"] +tags: ["wayland", +"protocols"] +version: "1.0.0" +short_description: "Ada 2012 bindings for various Wayland protocols" +dependencies: [{crate: "wayland_ada_scanner", version: "~1.0.0"}, +{crate: "wayland_client_ada", version: "~1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/webdriver.md b/_crates/webdriver.md new file mode 100644 index 00000000..bef7054c --- /dev/null +++ b/_crates/webdriver.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "webdriver" +authors: ["Maxim Reznik"] +maintainers: ["Maxim Reznik "] +licenses: ["MIT"] +websites: ["https://github.com/reznikmm/webdriver"] +tags: ["web", +"control", +"selenium", +"chrome"] +version: "1.0.0" +short_description: "Web Browser control API" +dependencies: [{crate: "aws", version: "*"}, +{crate: "matreshka_league", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/weechat_ada.md b/_crates/weechat_ada.md new file mode 100644 index 00000000..bb224257 --- /dev/null +++ b/_crates/weechat_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "weechat_ada" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/weechat-ada"] +tags: ["chat", +"irc", +"weechat"] +version: "3.0.1" +short_description: "Ada 2012 library for WeeChat plug-ins" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wikiada.md b/_crates/wikiada.md new file mode 100644 index 00000000..c166012a --- /dev/null +++ b/_crates/wikiada.md @@ -0,0 +1,39 @@ +--- +layout: crate +crate: "wikiada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-wiki"] +tags: ["wiki-engine", +"markdown", +"mediawiki", +"dotclear", +"html", +"parser", +"renderer"] +version: "1.4.1" +short_description: "Wiki Engine with parser and renderer for several wiki syntaxes" +dependencies: [{crate: "utilada", version: "^2.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-wiki/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-wiki/summary) +[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-wiki/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-wiki/xunits) +[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-wiki/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-wiki/summary) + +Ada Wiki is a small library that provides and focuses only on the Wiki engine. + +The library allows to: + +* Parse a wiki text such as Mediawiki, Creole, PhpBB, Dotclear and Google Code +* Parse HTML content in embedded wiki text, +* Filter out the wiki, HTML or text through customizable filters, +* Render the wiki text in HTML, text or another wiki format + +The Ada Wiki library is used by [Ada Web Application](https://gitlab.com/stcarrez/ada-awa) +for the implementation of the blog and wiki online plugins. + + + diff --git a/_crates/win32ada.md b/_crates/win32ada.md new file mode 100644 index 00000000..605d019c --- /dev/null +++ b/_crates/win32ada.md @@ -0,0 +1 @@ +Not found: win32ada* diff --git a/_crates/winpthreads.md b/_crates/winpthreads.md new file mode 100644 index 00000000..597f1858 --- /dev/null +++ b/_crates/winpthreads.md @@ -0,0 +1 @@ +Not found: winpthreads* diff --git a/_crates/wisitoken.md b/_crates/wisitoken.md new file mode 100644 index 00000000..0e4b8fcf --- /dev/null +++ b/_crates/wisitoken.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "wisitoken" +authors: ["Stephen Leake"] +maintainers: ["Stephen Leake "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://stephe-leake.org/ada/wisitoken.html"] +tags: ["parser", +"generator", +"generalized"] +version: "4.1.0" +short_description: "Generalized error correcting LALR and packrat parser generator" +dependencies: [{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "gnatcoll", version: "^22.0.0"}, +{crate: "stephes_ada_library", version: "~3.7.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wordle.md b/_crates/wordle.md new file mode 100644 index 00000000..404fb4ec --- /dev/null +++ b/_crates/wordle.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "wordle" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["wordle", +"console", +"terminal", +"game"] +version: "0.1.1" +short_description: "Wordle for the terminal" +dependencies: [{crate: "aaa", version: "~0.2.6"}, +{crate: "ansiada", version: "^1.0.0"}, +{crate: "wordlelib", version: "~0.1.0"}, +{crate: "wordlist", version: "~0.1.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wordlelib.md b/_crates/wordlelib.md new file mode 100644 index 00000000..50953bdf --- /dev/null +++ b/_crates/wordlelib.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "wordlelib" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["wordle", +"game", +"console", +"terminal"] +version: "0.1.0" +short_description: "Library to track progress in a game of Wordle" +dependencies: [{crate: "aaa", version: "~0.2.5"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wordlist.md b/_crates/wordlist.md new file mode 100644 index 00000000..57c6ed13 --- /dev/null +++ b/_crates/wordlist.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "wordlist" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: [] +tags: ["wordlist", +"english"] +version: "0.1.3" +short_description: "An English word list" +dependencies: [{crate: "aaa", version: "~0.2.5"}, +{crate: "ada_toml", version: "~0.3.0"}, +{crate: "gnat", version: ">=11 & <2000"}, +{crate: "resources", version: "~0.1.0"}] +configuration_variables: [{name: 'Logging', type: 'Boolean', default: "false"}, +{name: 'Wordset', type: 'Enum (small, large, wordle)', default: "large"}] +configuration_values: [] + +--- + + diff --git a/_crates/workers.md b/_crates/workers.md new file mode 100644 index 00000000..dff64f65 --- /dev/null +++ b/_crates/workers.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "workers" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT OR Apache-2.0"] +websites: [""] +tags: ["tasking", +"parallelization", +"pool"] +version: "0.1.0" +short_description: "Simple task pool for parallelization" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/xdg_base_dir.md b/_crates/xdg_base_dir.md new file mode 100644 index 00000000..92887795 --- /dev/null +++ b/_crates/xdg_base_dir.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "xdg_base_dir" +authors: ["onox"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/xdg-base-dir"] +tags: ["xdg"] +version: "1.0.0" +short_description: "XDG Base Directory Specification" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/xia.md b/_crates/xia.md new file mode 100644 index 00000000..6f3abe07 --- /dev/null +++ b/_crates/xia.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "xia" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: [] +tags: ["xml"] +version: "1.4.0" +short_description: "Implements XPath 1.0 in Ada" +dependencies: [{crate: "gnat", version: ">11.0.0"}, +{crate: "xmlada", version: "^21.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/xml_ez_out.md b/_crates/xml_ez_out.md new file mode 100644 index 00000000..e8ea2a36 --- /dev/null +++ b/_crates/xml_ez_out.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "xml_ez_out" +authors: ["Marc A. Criley"] +maintainers: ["alejandro@mosteo.com"] +licenses: [] +websites: ["http://www.mckae.com/xmlEz.html"] +tags: [] +version: "1.6.0" +short_description: "Creation of XML-formatted output from Ada programs" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/xmlada.md b/_crates/xmlada.md new file mode 100644 index 00000000..0d80748f --- /dev/null +++ b/_crates/xmlada.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "xmlada" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/xmlada"] +tags: [] +version: "23.0.0" +short_description: "The XML/Ada toolkit" +dependencies: [{crate: "gnat", version: ">=11"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/xoshiro.md b/_crates/xoshiro.md new file mode 100644 index 00000000..3ac0bf12 --- /dev/null +++ b/_crates/xoshiro.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "xoshiro" +authors: ["onox", +"David Blackman", +"Sebastiano Vigna"] +maintainers: ["onox "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/onox/xoshiro"] +tags: ["xoshiro", +"rng", +"random", +"spark"] +version: "1.0.0" +short_description: "xoshiro128++ and xoshiro256++ pseudo-random number generators" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/yeison.md b/_crates/yeison.md new file mode 100644 index 00000000..5c95bce3 --- /dev/null +++ b/_crates/yeison.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "yeison" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT"] +websites: ["https://github.com/mosteo/yeison"] +tags: ["json", +"yaml", +"toml", +"containers"] +version: "0.1.0" +short_description: "A JSON-like data structure using Ada 2022 features" +dependencies: [{crate: "gnat", version: ">=11.2 & <2000"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/zeromq_ada.md b/_crates/zeromq_ada.md new file mode 100644 index 00000000..ec449669 --- /dev/null +++ b/_crates/zeromq_ada.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "zeromq_ada" +authors: ["Per Sandberg "] +maintainers: ["Per Sandberg ", +"Maxim Reznik "] +licenses: ["MIT AND GPL-2.0-only"] +websites: ["https://github.com/persan/zeromq-Ada"] +tags: ["network", +"distributed", +"messaging", +"binding"] +version: "4.1.5" +short_description: "An Ada-binding the ØMQ library" +dependencies: [{crate: "libzmq", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/zipada.md b/_crates/zipada.md new file mode 100644 index 00000000..0e2e0eed --- /dev/null +++ b/_crates/zipada.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "zipada" +authors: ["Gautier de Montmollin"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://unzip-ada.sourceforge.io/"] +tags: ["zip", +"archive", +"compression", +"deflate", +"lzma", +"bzip2", +"lzw"] +version: "58.0.0" +short_description: "Manage Zip Archives and raw LZMA streams" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/zipdcf.md b/_crates/zipdcf.md new file mode 100644 index 00000000..5766f4e7 --- /dev/null +++ b/_crates/zipdcf.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "zipdcf" +authors: ["onox", +"Gautier de Montmollin"] +maintainers: ["onox "] +licenses: ["MIT"] +websites: ["https://github.com/onox/dcf-ada"] +tags: ["zip", +"document", +"container", +"archive"] +version: "2.0.3" +short_description: "Tools that can (un)zip document container files, Zip-based archive files" +dependencies: [{crate: "dcf", version: "^2.0.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/zlib.md b/_crates/zlib.md new file mode 100644 index 00000000..436b9882 --- /dev/null +++ b/_crates/zlib.md @@ -0,0 +1 @@ +Not found: zlib* diff --git a/_crates/zlib_ada.md b/_crates/zlib_ada.md new file mode 100644 index 00000000..962d99a4 --- /dev/null +++ b/_crates/zlib_ada.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "zlib_ada" +authors: ["Dmitriy Anisimkov"] +maintainers: ["alejandro@mosteo.com"] +licenses: [] +websites: ["http://zlib-ada.sourceforge.net/"] +tags: [] +version: "1.3.0" +short_description: "ZLib for Ada thick binding" +dependencies: [{crate: "zlib", version: "^1.2"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_data/badge.json b/_data/badge.json new file mode 100644 index 00000000..975239e7 --- /dev/null +++ b/_data/badge.json @@ -0,0 +1,3 @@ +{ + "logoSvg": "\n\n \n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", +} diff --git a/_data/meta.yaml b/_data/meta.yaml new file mode 100644 index 00000000..9ad64e14 --- /dev/null +++ b/_data/meta.yaml @@ -0,0 +1 @@ +ci_site: 'https://alire-crate-ci.ada.dev' diff --git a/_data/tags.json b/_data/tags.json new file mode 100644 index 00000000..5c383a6c --- /dev/null +++ b/_data/tags.json @@ -0,0 +1,4280 @@ +[ + { + "name": "embedded", + "crates": [ + "rp2040_hal", + "minisamd51_example", + "bb_pico_bsp", + "chests", + "microbit_examples", + "ltp_305", + "muntsos_raspberrypi4", + "avrada_examples", + "muntsos_raspberrypi3", + "usb_embedded", + "avrada_mcu", + "sh1107", + "microbit_bsp", + "remoteio", + "edc_client", + "startup_gen", + "littlefs", + "pico_bsp", + "itsybitsy_bsp", + "pygamer_bsp", + "cortex_m", + "mcp2221", + "atomic", + "avrada_lib", + "slip", + "muntsos_raspberrypi1", + "adl_middleware", + "linux_hal", + "tresses", + "nrf5x_hal", + "basalt", + "eeprom_i2c", + "bbqueue", + "samd51_hal", + "embedded_components", + "itsybitsy_rp2040_bsp", + "lvgl_ada", + "cobs", + "tiny_rp2040_bsp", + "minisamd51_bsp", + "pico_examples", + "esp_idf", + "avrada_rts", + "muntsos_beaglebone", + "muntsos_raspberrypi2", + "hal", + "libsimpleio", + "midi", + "stm32f0x2_hal" + ] + }, + { + "name": "nostd", + "crates": [ + "rp2040_hal", + "minisamd51_example", + "chests", + "microbit_examples", + "usb_embedded", + "microbit_bsp", + "startup_gen", + "littlefs", + "pico_bsp", + "itsybitsy_bsp", + "pygamer_bsp", + "cortex_m", + "atomic", + "virtapu", + "adl_middleware", + "tresses", + "nrf5x_hal", + "basalt", + "eeprom_i2c", + "bbqueue", + "samd51_hal", + "embedded_components", + "itsybitsy_rp2040_bsp", + "cobs", + "tiny_rp2040_bsp", + "minisamd51_bsp", + "pico_examples", + "esp_idf", + "hal", + "geste", + "midi", + "stm32f0x2_hal" + ] + }, + { + "name": "rp2040", + "crates": [ + "rp2040_hal", + "ltp_305", + "sh1107", + "edc_client", + "pico_bsp", + "itsybitsy_bsp", + "eeprom_i2c", + "itsybitsy_rp2040_bsp", + "tiny_rp2040_bsp", + "pico_examples" + ] + }, + { + "name": "raspberrypi", + "crates": [ + "rp2040_hal", + "pico_bsp", + "libsimpleio" + ] + }, + { + "name": "drivers", + "crates": [ + "rp2040_hal", + "avrada_lib", + "nrf5x_hal", + "samd51_hal", + "stm32f0x2_hal" + ] + }, + { + "name": "json", + "crates": [ + "json", + "serverfaces", + "servletada_unit", + "gnatcoll", + "yeison", + "jwt", + "servletada_ews", + "vss", + "servletada_aws", + "matreshka_league", + "utilada", + "servletada" + ] + }, + { + "name": "database", + "crates": [ + "ado", + "lmdb_ada", + "matreshka_sql", + "gnatcoll_postgres", + "dynamo", + "matreshka_sql_postgresql", + "ado_mysql", + "ado_postgresql", + "ado_sqlite", + "ado_all", + "gnatcoll_sql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "matreshka_sql_mysql", + "gnatcoll_sqlite", + "matreshka_sql_firebird", + "gnatcoll_xref" + ] + }, + { + "name": "uml", + "crates": [ + "ado", + "dynamo", + "matreshka_amf_uml", + "ado_mysql", + "ado_postgresql", + "ado_sqlite", + "matreshka_amf_utp", + "matreshka_amf", + "matreshka_amf_dd", + "matreshka_amf_ocl", + "ado_all", + "matreshka_amf_mofext" + ] + }, + { + "name": "sql", + "crates": [ + "ado", + "matreshka_sql", + "matreshka_sql_postgresql", + "ado_mysql", + "ado_postgresql", + "ado_sqlite", + "ado_all", + "gnatcoll_sql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "matreshka_sql_mysql", + "gnatcoll_sqlite", + "matreshka_sql_firebird" + ] + }, + { + "name": "game", + "crates": [ + "mage_hat", + "mage", + "eagle_lander", + "play_2048", + "pygamer_simulator", + "pygamer_bsp", + "wordle", + "bingada", + "virtapu", + "tiled_code_gen", + "orka", + "shoot_n_loot", + "wordlelib", + "honki_tonks_zivilisationen", + "geste" + ] + }, + { + "name": "demo", + "crates": [ + "mage_hat", + "avrada_examples", + "hello", + "libhello" + ] + }, + { + "name": "magic", + "crates": [ + "mage_hat" + ] + }, + { + "name": "bar", + "crates": [ + "bar_codes" + ] + }, + { + "name": "code", + "crates": [ + "bar_codes", + "septum" + ] + }, + { + "name": "qr", + "crates": [ + "bar_codes" + ] + }, + { + "name": "code128", + "crates": [ + "bar_codes" + ] + }, + { + "name": "samd51", + "crates": [ + "minisamd51_example", + "minisamd51_bsp" + ] + }, + { + "name": "minisam", + "crates": [ + "minisamd51_example", + "minisamd51_bsp" + ] + }, + { + "name": "pico", + "crates": [ + "bb_pico_bsp", + "pico_bsp", + "pico_examples" + ] + }, + { + "name": "handheld", + "crates": [ + "bb_pico_bsp" + ] + }, + { + "name": "featherwing", + "crates": [ + "bb_pico_bsp" + ] + }, + { + "name": "zip", + "crates": [ + "zipdcf", + "gnatcoll_zlib", + "zipada", + "orka_plugin_archives", + "dcf" + ] + }, + { + "name": "document", + "crates": [ + "zipdcf", + "dcf" + ] + }, + { + "name": "container", + "crates": [ + "zipdcf", + "dcf", + "adacl" + ] + }, + { + "name": "archive", + "crates": [ + "zipdcf", + "zipada", + "dcf" + ] + }, + { + "name": "opengl", + "crates": [ + "openglada_glfw", + "openglada_images", + "orka_tools", + "orka_awt", + "asfml", + "orka_opengl", + "openglada", + "orka", + "orka_egl", + "openglada_text" + ] + }, + { + "name": "glfw", + "crates": [ + "openglada_glfw" + ] + }, + { + "name": "binding", + "crates": [ + "openglada_glfw", + "asfml", + "openglada", + "ncursesada", + "zeromq_ada", + "ada_lua", + "esp_idf" + ] + }, + { + "name": "gui", + "crates": [ + "openglada_glfw", + "gnoga", + "gtkada", + "lvgl_ada", + "lvgl_ada_examples", + "lvgl_ada_simulator" + ] + }, + { + "name": "rendering", + "crates": [ + "openglada_images", + "orka_opengl", + "openglada", + "freetypeada", + "orka", + "geste", + "openglada_text" + ] + }, + { + "name": "graphics", + "crates": [ + "openglada_images", + "aicwl", + "orka_awt", + "asfml", + "orka_opengl", + "openglada", + "orka", + "labs_solar_system" + ] + }, + { + "name": "engine", + "crates": [ + "mage", + "orka" + ] + }, + { + "name": "sdl", + "crates": [ + "mage" + ] + }, + { + "name": "miscellanea", + "crates": [ + "aaa" + ] + }, + { + "name": "utility", + "crates": [ + "aaa", + "simple_logging", + "brackelib", + "uri_ada" + ] + }, + { + "name": "spawn", + "crates": [ + "ashell", + "spoon" + ] + }, + { + "name": "os", + "crates": [ + "ashell" + ] + }, + { + "name": "command", + "crates": [ + "ashell" + ] + }, + { + "name": "process", + "crates": [ + "ashell", + "spoon", + "spawn_glib", + "spawn" + ] + }, + { + "name": "directories", + "crates": [ + "ashell" + ] + }, + { + "name": "chacha20", + "crates": [ + "chacha20" + ] + }, + { + "name": "security", + "crates": [ + "chacha20", + "sha1", + "libkeccak", + "system_random", + "security", + "sparknacl", + "sha2", + "keystoreada", + "akt", + "pbkdf2", + "hmac" + ] + }, + { + "name": "cryptography", + "crates": [ + "chacha20", + "sha1", + "libkeccak", + "fastpbkdf2_ada", + "system_random", + "sparknacl", + "sha2", + "pbkdf2", + "saatana", + "hmac" + ] + }, + { + "name": "elevator", + "crates": [ + "elevator" + ] + }, + { + "name": "teaching", + "crates": [ + "elevator" + ] + }, + { + "name": "logging", + "crates": [ + "simple_logging", + "loga", + "gnatcoll_syslog", + "utilada", + "adacl" + ] + }, + { + "name": "key-value", + "crates": [ + "lmdb_ada" + ] + }, + { + "name": "test", + "crates": [ + "trendy_test", + "dummyserver", + "gnatcov", + "aunit" + ] + }, + { + "name": "unit-test", + "crates": [ + "trendy_test", + "aunit" + ] + }, + { + "name": "unit", + "crates": [ + "trendy_test", + "aunit" + ] + }, + { + "name": "gnatcoll", + "crates": [ + "gnatcoll_omp", + "gnatcoll_zlib", + "gnatcoll_postgres", + "gnatcoll_gmp", + "gnatcoll", + "gnatcoll_python", + "gnatcoll_readline", + "gnatcoll_syslog", + "gnatcoll_sql", + "gnatcoll_python3", + "gnatcoll_lzma", + "gnatcoll_iconv", + "gnatcoll_sqlite", + "gnatcoll_xref" + ] + }, + { + "name": "bindings", + "crates": [ + "gnatcoll_omp", + "gnatcoll_zlib", + "gnatcoll_gmp", + "gnatcoll_python", + "gnatcoll_readline", + "gnatcoll_syslog", + "gnatcoll_python3", + "florist_blady", + "gnatcoll_lzma", + "gnatcoll_iconv", + "florist_blady", + "admpfr" + ] + }, + { + "name": "openmp", + "crates": [ + "gnatcoll_omp" + ] + }, + { + "name": "libgomp", + "crates": [ + "gnatcoll_omp" + ] + }, + { + "name": "widgets", + "crates": [ + "aicwl" + ] + }, + { + "name": "gauge", + "crates": [ + "aicwl" + ] + }, + { + "name": "ui", + "crates": [ + "aicwl", + "cmd_ada" + ] + }, + { + "name": "gtk", + "crates": [ + "aicwl", + "eagle_lander", + "dashera", + "bingada", + "gtkada" + ] + }, + { + "name": "compression", + "crates": [ + "lzmada", + "gnatcoll_zlib", + "zipada", + "gnatcoll_lzma" + ] + }, + { + "name": "lzma", + "crates": [ + "lzmada", + "zipada", + "gnatcoll_lzma", + "utilada_lzma" + ] + }, + { + "name": "simulator", + "crates": [ + "eagle_lander", + "pygamer_simulator", + "shoot_n_loot", + "lvgl_ada_simulator" + ] + }, + { + "name": "sha1", + "crates": [ + "sha1" + ] + }, + { + "name": "spark", + "crates": [ + "libkeccak", + "vaton", + "endianness", + "program_proofs_in_spark", + "sparknacl", + "blake2s", + "atomic", + "slip", + "basalt", + "bbqueue", + "cobs", + "spark_unbound", + "saatana", + "xoshiro", + "spat" + ] + }, + { + "name": "hash", + "crates": [ + "libkeccak", + "b2ssum", + "blake2s" + ] + }, + { + "name": "sha3", + "crates": [ + "libkeccak" + ] + }, + { + "name": "keccak", + "crates": [ + "libkeccak" + ] + }, + { + "name": "gimli", + "crates": [ + "libkeccak" + ] + }, + { + "name": "ascon", + "crates": [ + "libkeccak" + ] + }, + { + "name": "shake", + "crates": [ + "libkeccak" + ] + }, + { + "name": "cshake", + "crates": [ + "libkeccak" + ] + }, + { + "name": "kmac", + "crates": [ + "libkeccak" + ] + }, + { + "name": "tuplehash", + "crates": [ + "libkeccak" + ] + }, + { + "name": "parallelhash", + "crates": [ + "libkeccak" + ] + }, + { + "name": "kangarootwelve", + "crates": [ + "libkeccak" + ] + }, + { + "name": "containers", + "crates": [ + "chests", + "yeison", + "stephes_ada_library", + "minimal_containers" + ] + }, + { + "name": "bounded", + "crates": [ + "chests" + ] + }, + { + "name": "web", + "crates": [ + "serverfaces", + "ews", + "elada", + "matreshka_fastcgi", + "openapi", + "utilada_aws", + "servletada_unit", + "gnoga", + "matreshka_spikedog_awsd", + "matreshka_servlet", + "openapi_server", + "matreshka_spikedog_core", + "utilada_curl", + "jwt", + "servletada_ews", + "awa_unit", + "matreshka_spikedog_api", + "aws", + "servletada_aws", + "openai", + "matreshka_soap", + "webdriver", + "servletada", + "serverfaces_unit", + "matreshka_soap_wsse", + "awa" + ] + }, + { + "name": "servlet", + "crates": [ + "serverfaces", + "servletada_unit", + "matreshka_spikedog_awsd", + "matreshka_servlet", + "matreshka_spikedog_core", + "servletada_ews", + "matreshka_spikedog_api", + "servletada_aws", + "servletada", + "serverfaces_unit" + ] + }, + { + "name": "http", + "crates": [ + "serverfaces", + "dummyserver", + "matreshka_fastcgi", + "utilada_aws", + "servletada_unit", + "gnoga", + "matreshka_servlet", + "utilada_curl", + "servletada_ews", + "aws", + "servletada_aws", + "servletada", + "serverfaces_unit" + ] + }, + { + "name": "microbit", + "crates": [ + "microbit_examples", + "microbit_bsp" + ] + }, + { + "name": "nrf51", + "crates": [ + "microbit_examples", + "microbit_bsp", + "nrf5x_hal" + ] + }, + { + "name": "testing", + "crates": [ + "utilada_unit", + "servletada_unit", + "matreshka_amf_utp", + "scripted_testing", + "awa_unit", + "serverfaces_unit" + ] + }, + { + "name": "indent", + "crates": [ + "emacs_gpr_mode", + "emacs_wisi", + "emacs_wisitoken_grammar_mode" + ] + }, + { + "name": "highlight", + "crates": [ + "emacs_gpr_mode", + "emacs_wisitoken_grammar_mode" + ] + }, + { + "name": "parser", + "crates": [ + "emacs_gpr_mode", + "elada", + "aflex", + "ayacc", + "wikiada", + "emacs_wisitoken_grammar_mode", + "wisitoken" + ] + }, + { + "name": "gpr", + "crates": [ + "emacs_gpr_mode", + "gnatcoll" + ] + }, + { + "name": "emacs", + "crates": [ + "emacs_gpr_mode", + "emacs_gpr_query", + "emacs_wisi", + "emacs_ada_mode", + "emacs_wisitoken_grammar_mode" + ] + }, + { + "name": "led", + "crates": [ + "ltp_305" + ] + }, + { + "name": "i2c", + "crates": [ + "ltp_305", + "remoteio", + "mcp2221", + "linux_hal", + "eeprom_i2c", + "libsimpleio" + ] + }, + { + "name": "server", + "crates": [ + "ews", + "dummyserver", + "gnoga", + "aws" + ] + }, + { + "name": "db", + "crates": [ + "matreshka_sql", + "matreshka_sql_postgresql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "matreshka_sql_mysql", + "matreshka_sql_firebird" + ] + }, + { + "name": "wordlist", + "crates": [ + "wordlist" + ] + }, + { + "name": "english", + "crates": [ + "wordlist" + ] + }, + { + "name": "markdown", + "crates": [ + "markdown", + "wikiada" + ] + }, + { + "name": "gfm", + "crates": [ + "markdown" + ] + }, + { + "name": "commonmark", + "crates": [ + "markdown" + ] + }, + { + "name": "muntsos", + "crates": [ + "muntsos_raspberrypi4", + "muntsos_raspberrypi3", + "muntsos_raspberrypi1", + "muntsos_beaglebone", + "muntsos_raspberrypi2" + ] + }, + { + "name": "linux", + "crates": [ + "muntsos_raspberrypi4", + "muntsos_raspberrypi3", + "keypadder", + "remoteio", + "powerjoular", + "epoll", + "evdev", + "mcp2221", + "inotify", + "canberra_ada", + "muntsos_raspberrypi1", + "linux_hal", + "muntsos_beaglebone", + "muntsos_raspberrypi2", + "libsimpleio" + ] + }, + { + "name": "arm64", + "crates": [ + "muntsos_raspberrypi4", + "muntsos_raspberrypi3" + ] + }, + { + "name": "raspberrypi4", + "crates": [ + "muntsos_raspberrypi4" + ] + }, + { + "name": "protocol", + "crates": [ + "protobuf", + "matreshka_soap" + ] + }, + { + "name": "rpc", + "crates": [ + "protobuf", + "matreshka_soap" + ] + }, + { + "name": "generator", + "crates": [ + "protobuf", + "aflex", + "dynamo", + "ayacc", + "task_coroutines", + "ada_pretty", + "anagram", + "libadalang_tools", + "automate", + "wisitoken", + "are" + ] + }, + { + "name": "avr", + "crates": [ + "avrada_examples", + "avrada_mcu", + "avrada_lib", + "avrada_rts" + ] + }, + { + "name": "zlib", + "crates": [ + "gnatcoll_zlib" + ] + }, + { + "name": "deflate", + "crates": [ + "gnatcoll_zlib", + "zipada" + ] + }, + { + "name": "gltf", + "crates": [ + "orka_tools", + "orka", + "orka_plugin_gltf" + ] + }, + { + "name": "ktx", + "crates": [ + "orka_tools", + "orka" + ] + }, + { + "name": "orka", + "crates": [ + "orka_tools", + "orka_numerics", + "orka_transforms", + "orka_opengl", + "orka_tensors_gpu", + "orka_plugin_terrain", + "orka_plugin_atmosphere", + "orka_plugin_archives", + "orka", + "orka_simd", + "orka_types", + "orka_egl", + "orka_plugin_gltf", + "orka_tensors_cpu" + ] + }, + { + "name": "hac", + "crates": [ + "hac" + ] + }, + { + "name": "compiler", + "crates": [ + "hac" + ] + }, + { + "name": "raspberrypi3", + "crates": [ + "muntsos_raspberrypi3" + ] + }, + { + "name": "utils", + "crates": [ + "resources", + "basalt" + ] + }, + { + "name": "usb", + "crates": [ + "usb_embedded" + ] + }, + { + "name": "hid", + "crates": [ + "usb_embedded", + "libsimpleio" + ] + }, + { + "name": "midi", + "crates": [ + "usb_embedded", + "rtmidi", + "midi" + ] + }, + { + "name": "rest", + "crates": [ + "minirest", + "openapi", + "servletada_unit", + "openapi_server", + "utilada_curl", + "openai", + "servletada" + ] + }, + { + "name": "math", + "crates": [ + "orka_numerics", + "orka_transforms", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "vector", + "crates": [ + "orka_numerics", + "orka_transforms", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "matrix", + "crates": [ + "orka_numerics", + "mathpaqs", + "orka_transforms", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "ndarray", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "tensor", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "numpy", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "random", + "crates": [ + "orka_numerics", + "system_random", + "orka_tensors_gpu", + "xoshiro", + "rsfile", + "orka_tensors_cpu" + ] + }, + { + "name": "statistics", + "crates": [ + "orka_numerics", + "mathpaqs", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "integration", + "crates": [ + "orka_numerics", + "scripted_testing" + ] + }, + { + "name": "rk4", + "crates": [ + "orka_numerics" + ] + }, + { + "name": "kalman", + "crates": [ + "orka_numerics" + ] + }, + { + "name": "optimization", + "crates": [ + "orka_numerics" + ] + }, + { + "name": "leastsquares", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "linearalgebra", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "linalg", + "crates": [ + "orka_numerics", + "orka_tensors_gpu", + "orka_tensors_cpu" + ] + }, + { + "name": "documentation", + "crates": [ + "libgnatdoc", + "gnatdoc" + ] + }, + { + "name": "tools", + "crates": [ + "libgnatdoc", + "gnatdoc", + "atari_atr_tools", + "atari_exe_tools", + "mos6502_create_led", + "mos6502_create_nop", + "mos6502_create_reset" + ] + }, + { + "name": "image", + "crates": [ + "gid", + "qoi" + ] + }, + { + "name": "decoder", + "crates": [ + "gid" + ] + }, + { + "name": "bmp", + "crates": [ + "gid" + ] + }, + { + "name": "gif", + "crates": [ + "gid" + ] + }, + { + "name": "jpeg", + "crates": [ + "gid" + ] + }, + { + "name": "jpg", + "crates": [ + "gid" + ] + }, + { + "name": "pbm", + "crates": [ + "gid" + ] + }, + { + "name": "pgm", + "crates": [ + "gid" + ] + }, + { + "name": "png", + "crates": [ + "gid" + ] + }, + { + "name": "pnm", + "crates": [ + "gid" + ] + }, + { + "name": "ppm", + "crates": [ + "gid" + ] + }, + { + "name": "qoi", + "crates": [ + "gid", + "qoi" + ] + }, + { + "name": "tga", + "crates": [ + "gid" + ] + }, + { + "name": "targa", + "crates": [ + "gid" + ] + }, + { + "name": "egl", + "crates": [ + "orka_awt", + "wayland_ada_scanner", + "orka_opengl", + "orka", + "wayland_egl_ada", + "orka_egl" + ] + }, + { + "name": "wayland", + "crates": [ + "orka_awt", + "wayland_ada_scanner", + "wayland_ada_info", + "wayland_client_ada", + "wayland_cursor_ada", + "wayland_protocols_ada", + "wayland_egl_ada" + ] + }, + { + "name": "windows", + "crates": [ + "orka_awt" + ] + }, + { + "name": "input", + "crates": [ + "orka_awt", + "evdev" + ] + }, + { + "name": "gamepad", + "crates": [ + "orka_awt" + ] + }, + { + "name": "tls", + "crates": [ + "tlsada" + ] + }, + { + "name": "ssl", + "crates": [ + "tlsada", + "gnoga", + "aws" + ] + }, + { + "name": "bzip2", + "crates": [ + "zipada" + ] + }, + { + "name": "lzw", + "crates": [ + "zipada" + ] + }, + { + "name": "expression", + "crates": [ + "elada" + ] + }, + { + "name": "expander", + "crates": [ + "elada" + ] + }, + { + "name": "command-line", + "crates": [ + "cmd_ada", + "parse_args", + "progress_indicators", + "clic", + "trendy_terminal", + "rsfile", + "adacl" + ] + }, + { + "name": "rts", + "crates": [ + "avrada_mcu", + "avrada_rts" + ] + }, + { + "name": "gnatcoll-db", + "crates": [ + "gnatcoll_postgres", + "gnatcoll_sql", + "gnatcoll_sqlite" + ] + }, + { + "name": "postgres", + "crates": [ + "gnatcoll_postgres" + ] + }, + { + "name": "postgresql", + "crates": [ + "gnatcoll_postgres", + "matreshka_sql_postgresql", + "ado_postgresql", + "ado_all" + ] + }, + { + "name": "grammar", + "crates": [ + "aflex", + "ayacc", + "anagram" + ] + }, + { + "name": "endianness", + "crates": [ + "endianness" + ] + }, + { + "name": "system", + "crates": [ + "endianness", + "system_random" + ] + }, + { + "name": "cli", + "crates": [ + "parse_args", + "gnatcoll_readline", + "clic" + ] + }, + { + "name": "puzzle", + "crates": [ + "play_2048" + ] + }, + { + "name": "cross-platform", + "crates": [ + "play_2048", + "asfml", + "sdlada", + "honki_tonks_zivilisationen" + ] + }, + { + "name": "sfml", + "crates": [ + "play_2048", + "asfml", + "bingada", + "honki_tonks_zivilisationen" + ] + }, + { + "name": "encoding", + "crates": [ + "qoi", + "matreshka_league" + ] + }, + { + "name": "mathematics", + "crates": [ + "mathpaqs", + "euler_tools" + ] + }, + { + "name": "numerics", + "crates": [ + "mathpaqs", + "specfun" + ] + }, + { + "name": "algebra", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "probability", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "runge", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "kutta", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "runge-kutta", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "unicode", + "crates": [ + "utf8test", + "emojis", + "vss", + "uxstrings", + "matreshka_league", + "umwi" + ] + }, + { + "name": "utf-8", + "crates": [ + "utf8test" + ] + }, + { + "name": "latin-1", + "crates": [ + "utf8test" + ] + }, + { + "name": "terminal", + "crates": [ + "utf8test", + "dummyserver", + "progress_indicators", + "ansiada", + "wordle", + "dashera", + "wordlelib", + "trendy_terminal" + ] + }, + { + "name": "pygamer", + "crates": [ + "pygamer_simulator", + "pygamer_bsp", + "shoot_n_loot" + ] + }, + { + "name": "adafruit", + "crates": [ + "pygamer_simulator", + "pygamer_bsp" + ] + }, + { + "name": "console", + "crates": [ + "pygamer_simulator", + "dummyserver", + "progress_indicators", + "pygamer_bsp", + "cbsg", + "wordle", + "wordlelib", + "trendy_terminal" + ] + }, + { + "name": "cgi", + "crates": [ + "matreshka_fastcgi" + ] + }, + { + "name": "keyboard", + "crates": [ + "keypadder" + ] + }, + { + "name": "mobile", + "crates": [ + "keypadder" + ] + }, + { + "name": "programmable", + "crates": [ + "keypadder" + ] + }, + { + "name": "tablet", + "crates": [ + "keypadder" + ] + }, + { + "name": "macro", + "crates": [ + "keypadder" + ] + }, + { + "name": "keypad", + "crates": [ + "keypadder" + ] + }, + { + "name": "macropad", + "crates": [ + "keypadder" + ] + }, + { + "name": "pbkdf2", + "crates": [ + "fastpbkdf2_ada", + "pbkdf2" + ] + }, + { + "name": "audio", + "crates": [ + "asfml", + "audio_base", + "virtapu", + "canberra_ada", + "linux_hal", + "tresses", + "audio_wavefiles" + ] + }, + { + "name": "games", + "crates": [ + "asfml", + "sdlada" + ] + }, + { + "name": "multimedia", + "crates": [ + "asfml", + "honki_tonks_zivilisationen" + ] + }, + { + "name": "meta", + "crates": [ + "matreshka_amf_uml", + "matreshka_amf_utp", + "matreshka_amf", + "matreshka_amf_dd", + "matreshka_amf_ocl", + "matreshka_amf_mofext" + ] + }, + { + "name": "diagram", + "crates": [ + "matreshka_amf_uml", + "matreshka_amf_utp", + "matreshka_amf_dd", + "matreshka_amf_ocl", + "matreshka_amf_mofext" + ] + }, + { + "name": "atari", + "crates": [ + "atari_atr_tools", + "atari_exe_tools" + ] + }, + { + "name": "retrocomputing", + "crates": [ + "atari_atr_tools", + "atari_exe_tools", + "mos6502_create_led", + "mos6502_create_nop", + "mos6502_create_reset" + ] + }, + { + "name": "ada-2022", + "crates": [ + "atari_atr_tools", + "atari_exe_tools" + ] + }, + { + "name": "api", + "crates": [ + "openapi", + "openapi_server", + "openai" + ] + }, + { + "name": "openapi", + "crates": [ + "openapi", + "openapi_server", + "openai" + ] + }, + { + "name": "mysql", + "crates": [ + "ado_mysql", + "ado_all", + "matreshka_sql_mysql" + ] + }, + { + "name": "mariadb", + "crates": [ + "ado_mysql", + "ado_all", + "matreshka_sql_mysql" + ] + }, + { + "name": "bbc", + "crates": [ + "microbit_bsp" + ] + }, + { + "name": "bsp", + "crates": [ + "microbit_bsp", + "pico_bsp", + "itsybitsy_bsp", + "pygamer_bsp", + "itsybitsy_rp2040_bsp", + "tiny_rp2040_bsp" + ] + }, + { + "name": "dsa", + "crates": [ + "gnatdist_garlic", + "garlic" + ] + }, + { + "name": "distributed", + "crates": [ + "gnatdist_garlic", + "garlic", + "zeromq_ada" + ] + }, + { + "name": "annex", + "crates": [ + "gnatdist_garlic", + "garlic" + ] + }, + { + "name": "network", + "crates": [ + "gnatdist_garlic", + "garlic", + "zeromq_ada" + ] + }, + { + "name": "glade", + "crates": [ + "gnatdist_garlic", + "garlic" + ] + }, + { + "name": "quaternion", + "crates": [ + "orka_transforms" + ] + }, + { + "name": "manipulation", + "crates": [ + "rewriters", + "rejuvenation" + ] + }, + { + "name": "transformation", + "crates": [ + "rewriters", + "rejuvenation" + ] + }, + { + "name": "learn", + "crates": [ + "adabots" + ] + }, + { + "name": "ada", + "crates": [ + "adabots", + "libadalang2xml" + ] + }, + { + "name": "minecraft", + "crates": [ + "adabots" + ] + }, + { + "name": "computercraft", + "crates": [ + "adabots" + ] + }, + { + "name": "robots", + "crates": [ + "adabots" + ] + }, + { + "name": "teach", + "crates": [ + "adabots" + ] + }, + { + "name": "children", + "crates": [ + "adabots" + ] + }, + { + "name": "analysis", + "crates": [ + "rejuvenation", + "dependency_graph_extractor", + "anagram", + "gnatcov" + ] + }, + { + "name": "xml", + "crates": [ + "utilada_xml", + "matreshka_xml", + "vss", + "xia", + "matreshka_league", + "ajunitgen", + "libadalang2xml" + ] + }, + { + "name": "serialization", + "crates": [ + "utilada_xml" + ] + }, + { + "name": "remoteio", + "crates": [ + "remoteio", + "libsimpleio" + ] + }, + { + "name": "adc", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "dac", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "gpio", + "crates": [ + "remoteio", + "mcp2221", + "linux_hal", + "libsimpleio" + ] + }, + { + "name": "motor", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "pwm", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "sensor", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "serial", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "servo", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "spi", + "crates": [ + "remoteio", + "mcp2221", + "linux_hal", + "libsimpleio" + ] + }, + { + "name": "stepper", + "crates": [ + "remoteio", + "mcp2221", + "libsimpleio" + ] + }, + { + "name": "extract", + "crates": [ + "dependency_graph_extractor" + ] + }, + { + "name": "dependency", + "crates": [ + "dependency_graph_extractor" + ] + }, + { + "name": "graph", + "crates": [ + "dependency_graph_extractor" + ] + }, + { + "name": "graphml", + "crates": [ + "dependency_graph_extractor" + ] + }, + { + "name": "gmp", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "arbitrary", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "precision", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "arithmetic", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "riff", + "crates": [ + "audio_base", + "audio_wavefiles" + ] + }, + { + "name": "zfp", + "crates": [ + "startup_gen" + ] + }, + { + "name": "filesystem", + "crates": [ + "littlefs" + ] + }, + { + "name": "flash", + "crates": [ + "littlefs" + ] + }, + { + "name": "email", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "refcount", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "projects", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "vfs", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "xref", + "crates": [ + "emacs_gpr_query", + "emacs_wisi", + "gnatcoll_xref" + ] + }, + { + "name": "python", + "crates": [ + "gnatcoll_python", + "gnatcoll_python3" + ] + }, + { + "name": "python2", + "crates": [ + "gnatcoll_python" + ] + }, + { + "name": "progress", + "crates": [ + "progress_indicators" + ] + }, + { + "name": "azdo", + "crates": [ + "orka_opengl", + "orka" + ] + }, + { + "name": "project-euler", + "crates": [ + "euler_tools" + ] + }, + { + "name": "sqlite", + "crates": [ + "ado_sqlite", + "ado_all", + "matreshka_sql_sqlite3", + "gnatcoll_sqlite" + ] + }, + { + "name": "linenoise", + "crates": [ + "linenoise_ada" + ] + }, + { + "name": "readline", + "crates": [ + "linenoise_ada", + "gnatcoll_readline" + ] + }, + { + "name": "line-editing", + "crates": [ + "linenoise_ada" + ] + }, + { + "name": "chat", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "irc", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "weechat", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "itsybitsy", + "crates": [ + "itsybitsy_bsp", + "itsybitsy_rp2040_bsp" + ] + }, + { + "name": "training", + "crates": [ + "labs_standalone", + "labs_radar", + "labs_solar_system" + ] + }, + { + "name": "labs", + "crates": [ + "labs_standalone", + "labs_radar", + "labs_solar_system" + ] + }, + { + "name": "algorithmic", + "crates": [ + "labs_standalone" + ] + }, + { + "name": "https", + "crates": [ + "gnoga", + "aws" + ] + }, + { + "name": "client", + "crates": [ + "wayland_client_ada", + "rclada_examples", + "rclada" + ] + }, + { + "name": "countries", + "crates": [ + "iso" + ] + }, + { + "name": "currencies", + "crates": [ + "iso" + ] + }, + { + "name": "iso-1366", + "crates": [ + "iso" + ] + }, + { + "name": "iso-4217", + "crates": [ + "iso" + ] + }, + { + "name": "timer", + "crates": [ + "stopwatch" + ] + }, + { + "name": "stopwatch", + "crates": [ + "stopwatch" + ] + }, + { + "name": "chronometer", + "crates": [ + "stopwatch" + ] + }, + { + "name": "dotenv", + "crates": [ + "dotenv" + ] + }, + { + "name": "env", + "crates": [ + "dotenv" + ] + }, + { + "name": "environment", + "crates": [ + "dotenv" + ] + }, + { + "name": "variables", + "crates": [ + "dotenv" + ] + }, + { + "name": "config", + "crates": [ + "dotenv", + "ini_files" + ] + }, + { + "name": "settings", + "crates": [ + "dotenv" + ] + }, + { + "name": "power", + "crates": [ + "powerjoular" + ] + }, + { + "name": "energy", + "crates": [ + "powerjoular" + ] + }, + { + "name": "gpu", + "crates": [ + "orka_tensors_gpu" + ] + }, + { + "name": "gpgpu", + "crates": [ + "orka_tensors_gpu" + ] + }, + { + "name": "compute", + "crates": [ + "orka_tensors_gpu" + ] + }, + { + "name": "shaders", + "crates": [ + "orka_tensors_gpu" + ] + }, + { + "name": "mof", + "crates": [ + "matreshka_amf" + ] + }, + { + "name": "ansi", + "crates": [ + "ansiada" + ] + }, + { + "name": "text", + "crates": [ + "cbsg", + "emojis", + "simple_regex", + "tiny_text", + "vss", + "septum" + ] + }, + { + "name": "adt", + "crates": [ + "brackelib" + ] + }, + { + "name": "stack", + "crates": [ + "brackelib", + "basalt" + ] + }, + { + "name": "queue", + "crates": [ + "brackelib", + "basalt" + ] + }, + { + "name": "epoll", + "crates": [ + "epoll" + ] + }, + { + "name": "net", + "crates": [ + "epoll" + ] + }, + { + "name": "oauth2", + "crates": [ + "security" + ] + }, + { + "name": "authentication", + "crates": [ + "security" + ] + }, + { + "name": "permissions", + "crates": [ + "security" + ] + }, + { + "name": "jwt", + "crates": [ + "security", + "jwt" + ] + }, + { + "name": "posix", + "crates": [ + "spoon", + "florist_blady", + "florist_blady" + ] + }, + { + "name": "arguments", + "crates": [ + "getopt" + ] + }, + { + "name": "options", + "crates": [ + "getopt" + ] + }, + { + "name": "flags", + "crates": [ + "getopt" + ] + }, + { + "name": "getopt", + "crates": [ + "getopt" + ] + }, + { + "name": "ada1995", + "crates": [ + "b2ssum", + "felix" + ] + }, + { + "name": "blake2", + "crates": [ + "b2ssum", + "blake2s" + ] + }, + { + "name": "blake2s", + "crates": [ + "b2ssum", + "blake2s" + ] + }, + { + "name": "raspberry", + "crates": [ + "raspberry_bsp", + "libsimpleio" + ] + }, + { + "name": "pi", + "crates": [ + "raspberry_bsp", + "libsimpleio" + ] + }, + { + "name": "protocols", + "crates": [ + "wayland_protocols_ada", + "slip" + ] + }, + { + "name": "evdev", + "crates": [ + "evdev" + ] + }, + { + "name": "force-feedback", + "crates": [ + "evdev" + ] + }, + { + "name": "yaml", + "crates": [ + "yeison" + ] + }, + { + "name": "toml", + "crates": [ + "yeison", + "toml_slicer" + ] + }, + { + "name": "nacl", + "crates": [ + "sparknacl" + ] + }, + { + "name": "curve25519", + "crates": [ + "sparknacl" + ] + }, + { + "name": "ed25519", + "crates": [ + "sparknacl" + ] + }, + { + "name": "tweetnacl", + "crates": [ + "sparknacl" + ] + }, + { + "name": "wordle", + "crates": [ + "wordle", + "wordlelib" + ] + }, + { + "name": "i18n", + "crates": [ + "felix", + "gnatcoll_iconv" + ] + }, + { + "name": "nls", + "crates": [ + "felix" + ] + }, + { + "name": "localization", + "crates": [ + "felix" + ] + }, + { + "name": "localisation", + "crates": [ + "felix" + ] + }, + { + "name": "l10n", + "crates": [ + "felix" + ] + }, + { + "name": "ini", + "crates": [ + "ini_files" + ] + }, + { + "name": "cfg", + "crates": [ + "ini_files" + ] + }, + { + "name": "emoji", + "crates": [ + "emojis", + "umwi" + ] + }, + { + "name": "string", + "crates": [ + "emojis", + "basalt", + "uxstrings", + "adacl" + ] + }, + { + "name": "dasher", + "crates": [ + "dashera" + ] + }, + { + "name": "emulator", + "crates": [ + "dashera" + ] + }, + { + "name": "arm", + "crates": [ + "cortex_m", + "muntsos_raspberrypi1", + "muntsos_beaglebone", + "muntsos_raspberrypi2" + ] + }, + { + "name": "mcp2221", + "crates": [ + "mcp2221" + ] + }, + { + "name": "launch", + "crates": [ + "spawn_glib", + "spawn" + ] + }, + { + "name": "pipe", + "crates": [ + "spawn_glib", + "spawn" + ] + }, + { + "name": "glib", + "crates": [ + "spawn_glib" + ] + }, + { + "name": "coroutine", + "crates": [ + "task_coroutines" + ] + }, + { + "name": "scripting", + "crates": [ + "scripted_testing", + "tash" + ] + }, + { + "name": "tcl", + "crates": [ + "tash" + ] + }, + { + "name": "tk", + "crates": [ + "tash" + ] + }, + { + "name": "mos-6502", + "crates": [ + "mos6502_create_led", + "mos6502_create_nop", + "mos6502_create_reset" + ] + }, + { + "name": "ada2022", + "crates": [ + "mos6502_create_led", + "mos6502_create_nop", + "adacl", + "mos6502_create_reset" + ] + }, + { + "name": "sha2", + "crates": [ + "sha2" + ] + }, + { + "name": "regex", + "crates": [ + "simple_regex" + ] + }, + { + "name": "project", + "crates": [ + "emacs_wisi" + ] + }, + { + "name": "compile", + "crates": [ + "emacs_wisi" + ] + }, + { + "name": "jupyter", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "notebook", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "kernel", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "ocl", + "crates": [ + "matreshka_amf_ocl" + ] + }, + { + "name": "ada1987", + "crates": [ + "blake2s", + "avltrees" + ] + }, + { + "name": "atomic", + "crates": [ + "atomic" + ] + }, + { + "name": "dom", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "catalog", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "templates", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "html5", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "terrain", + "crates": [ + "orka_plugin_terrain" + ] + }, + { + "name": "excel", + "crates": [ + "excel_writer" + ] + }, + { + "name": "spreadsheet", + "crates": [ + "excel_writer" + ] + }, + { + "name": "xls", + "crates": [ + "excel_writer" + ] + }, + { + "name": "csv", + "crates": [ + "excel_writer" + ] + }, + { + "name": "fonts", + "crates": [ + "freetypeada", + "openglada_text" + ] + }, + { + "name": "pretty", + "crates": [ + "ada_pretty" + ] + }, + { + "name": "printing", + "crates": [ + "ada_pretty" + ] + }, + { + "name": "inotify", + "crates": [ + "inotify" + ] + }, + { + "name": "font", + "crates": [ + "tiny_text" + ] + }, + { + "name": "hal", + "crates": [ + "tiny_text", + "linux_hal", + "hal" + ] + }, + { + "name": "bitmap", + "crates": [ + "tiny_text", + "adl_middleware" + ] + }, + { + "name": "xdg", + "crates": [ + "xdg_base_dir" + ] + }, + { + "name": "ada-mode", + "crates": [ + "emacs_ada_mode" + ] + }, + { + "name": "token", + "crates": [ + "jwt" + ] + }, + { + "name": "jws", + "crates": [ + "jwt" + ] + }, + { + "name": "libadalang", + "crates": [ + "libadalang", + "libadalang_tools", + "lal_highlight" + ] + }, + { + "name": "static-analysis", + "crates": [ + "libadalang", + "libadalang_tools", + "lal_highlight" + ] + }, + { + "name": "ros", + "crates": [ + "rclada_examples", + "rclada" + ] + }, + { + "name": "robotics", + "crates": [ + "rclada_examples", + "rclada" + ] + }, + { + "name": "hello", + "crates": [ + "hello", + "libhello" + ] + }, + { + "name": "ncurses", + "crates": [ + "ncursesada" + ] + }, + { + "name": "wiki-engine", + "crates": [ + "wikiada" + ] + }, + { + "name": "mediawiki", + "crates": [ + "wikiada" + ] + }, + { + "name": "dotclear", + "crates": [ + "wikiada" + ] + }, + { + "name": "html", + "crates": [ + "wikiada" + ] + }, + { + "name": "renderer", + "crates": [ + "wikiada" + ] + }, + { + "name": "semver", + "crates": [ + "semantic_versioning" + ] + }, + { + "name": "semantic", + "crates": [ + "semantic_versioning" + ] + }, + { + "name": "versioning", + "crates": [ + "semantic_versioning" + ] + }, + { + "name": "syslog", + "crates": [ + "gnatcoll_syslog" + ] + }, + { + "name": "template", + "crates": [ + "vss", + "mold_lib" + ] + }, + { + "name": "bingo", + "crates": [ + "bingada" + ] + }, + { + "name": "chance", + "crates": [ + "bingada" + ] + }, + { + "name": "family", + "crates": [ + "bingada" + ] + }, + { + "name": "sound", + "crates": [ + "bingada", + "canberra_ada" + ] + }, + { + "name": "synth", + "crates": [ + "virtapu" + ] + }, + { + "name": "atmosphere", + "crates": [ + "orka_plugin_atmosphere" + ] + }, + { + "name": "earth", + "crates": [ + "orka_plugin_atmosphere" + ] + }, + { + "name": "canberra", + "crates": [ + "canberra_ada" + ] + }, + { + "name": "python3", + "crates": [ + "gnatcoll_python3" + ] + }, + { + "name": "oracle", + "crates": [ + "matreshka_sql_oracle" + ] + }, + { + "name": "geste", + "crates": [ + "tiled_code_gen" + ] + }, + { + "name": "gamedev", + "crates": [ + "tiled_code_gen", + "sdlada" + ] + }, + { + "name": "tiled", + "crates": [ + "tiled_code_gen" + ] + }, + { + "name": "gnoga", + "crates": [ + "ppag" + ] + }, + { + "name": "tutorial", + "crates": [ + "ppag" + ] + }, + { + "name": "iterators", + "crates": [ + "iterators" + ] + }, + { + "name": "functional", + "crates": [ + "iterators", + "optional" + ] + }, + { + "name": "legacy", + "crates": [ + "simh_tapes", + "dg_loada" + ] + }, + { + "name": "magtape", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "magnetic", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "tape", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "emulation", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "simulation", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "dcf", + "crates": [ + "orka_plugin_archives" + ] + }, + { + "name": "uri", + "crates": [ + "uri_mime", + "uri_ada" + ] + }, + { + "name": "url", + "crates": [ + "uri_mime", + "uri_ada" + ] + }, + { + "name": "mime", + "crates": [ + "uri_mime" + ] + }, + { + "name": "media-type", + "crates": [ + "uri_mime" + ] + }, + { + "name": "florist", + "crates": [ + "florist_blady", + "florist_blady" + ] + }, + { + "name": "tasking", + "crates": [ + "workers" + ] + }, + { + "name": "parallelization", + "crates": [ + "workers" + ] + }, + { + "name": "pool", + "crates": [ + "workers" + ] + }, + { + "name": "raspberrypi1", + "crates": [ + "muntsos_raspberrypi1" + ] + }, + { + "name": "syntax", + "crates": [ + "anagram" + ] + }, + { + "name": "bnf", + "crates": [ + "anagram" + ] + }, + { + "name": "ebnf", + "crates": [ + "anagram" + ] + }, + { + "name": "spdx", + "crates": [ + "spdx" + ] + }, + { + "name": "license", + "crates": [ + "spdx" + ] + }, + { + "name": "base64", + "crates": [ + "base64" + ] + }, + { + "name": "users", + "crates": [ + "awa_unit", + "awa" + ] + }, + { + "name": "jobs", + "crates": [ + "awa_unit", + "awa" + ] + }, + { + "name": "framework", + "crates": [ + "awa_unit", + "serverfaces_unit", + "awa" + ] + }, + { + "name": "xmpp", + "crates": [ + "axmpp" + ] + }, + { + "name": "jabber", + "crates": [ + "axmpp" + ] + }, + { + "name": "messaging", + "crates": [ + "axmpp", + "zeromq_ada" + ] + }, + { + "name": "fat", + "crates": [ + "adl_middleware" + ] + }, + { + "name": "7z", + "crates": [ + "gnatcoll_lzma" + ] + }, + { + "name": "7zip", + "crates": [ + "gnatcoll_lzma" + ] + }, + { + "name": "iconv", + "crates": [ + "gnatcoll_iconv" + ] + }, + { + "name": "data-structures", + "crates": [ + "avltrees" + ] + }, + { + "name": "portable", + "crates": [ + "sdlada" + ] + }, + { + "name": "storage", + "crates": [ + "keystoreada", + "akt", + "awa" + ] + }, + { + "name": "nosql", + "crates": [ + "keystoreada", + "akt" + ] + }, + { + "name": "metric", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "formatting", + "crates": [ + "libadalang_tools", + "si_units" + ] + }, + { + "name": "gnatmetric", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnatpp", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnatstub", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnattest", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "user-input", + "crates": [ + "clic" + ] + }, + { + "name": "tty", + "crates": [ + "clic" + ] + }, + { + "name": "smbus", + "crates": [ + "linux_hal" + ] + }, + { + "name": "synthesis", + "crates": [ + "tresses" + ] + }, + { + "name": "aws", + "crates": [ + "aws" + ] + }, + { + "name": "soap", + "crates": [ + "aws", + "matreshka_soap", + "matreshka_soap_wsse" + ] + }, + { + "name": "wsdl", + "crates": [ + "aws" + ] + }, + { + "name": "nrf52", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "nordic", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "ble", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "library", + "crates": [ + "libhello", + "adacl" + ] + }, + { + "name": "eeprom", + "crates": [ + "eeprom_i2c" + ] + }, + { + "name": "lockfree", + "crates": [ + "bbqueue" + ] + }, + { + "name": "dma", + "crates": [ + "bbqueue" + ] + }, + { + "name": "bipbuffer", + "crates": [ + "bbqueue" + ] + }, + { + "name": "openai", + "crates": [ + "openai" + ] + }, + { + "name": "recovering-data", + "crates": [ + "dg_loada" + ] + }, + { + "name": "dg", + "crates": [ + "dg_loada" + ] + }, + { + "name": "data-general", + "crates": [ + "dg_loada" + ] + }, + { + "name": "aos-vs", + "crates": [ + "dg_loada" + ] + }, + { + "name": "lsp", + "crates": [ + "ada_language_server" + ] + }, + { + "name": "vscode", + "crates": [ + "ada_language_server" + ] + }, + { + "name": "dynamic", + "crates": [ + "uxstrings" + ] + }, + { + "name": "sax", + "crates": [ + "matreshka_league" + ] + }, + { + "name": "regexp", + "crates": [ + "matreshka_league" + ] + }, + { + "name": "time", + "crates": [ + "matreshka_league" + ] + }, + { + "name": "atsamd51", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "microchip", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "atmel", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "emoticon", + "crates": [ + "umwi" + ] + }, + { + "name": "monospace", + "crates": [ + "umwi" + ] + }, + { + "name": "east", + "crates": [ + "umwi" + ] + }, + { + "name": "asian", + "crates": [ + "umwi" + ] + }, + { + "name": "width", + "crates": [ + "umwi" + ] + }, + { + "name": "grapheme", + "crates": [ + "umwi" + ] + }, + { + "name": "cluster", + "crates": [ + "umwi" + ] + }, + { + "name": "combining", + "crates": [ + "umwi" + ] + }, + { + "name": "lvgl", + "crates": [ + "lvgl_ada", + "lvgl_ada_examples", + "lvgl_ada_simulator" + ] + }, + { + "name": "no-std", + "crates": [ + "lvgl_ada" + ] + }, + { + "name": "automaton", + "crates": [ + "automate" + ] + }, + { + "name": "trees", + "crates": [ + "stephes_ada_library" + ] + }, + { + "name": "simd", + "crates": [ + "orka_simd", + "orka_tensors_cpu" + ] + }, + { + "name": "sse", + "crates": [ + "orka_simd" + ] + }, + { + "name": "avx", + "crates": [ + "orka_simd" + ] + }, + { + "name": "fma", + "crates": [ + "orka_simd" + ] + }, + { + "name": "f16c", + "crates": [ + "orka_simd" + ] + }, + { + "name": "coverage", + "crates": [ + "gnatcov" + ] + }, + { + "name": "pdf", + "crates": [ + "apdf" + ] + }, + { + "name": "adobe", + "crates": [ + "apdf" + ] + }, + { + "name": "cobs", + "crates": [ + "cobs" + ] + }, + { + "name": "rtmidi", + "crates": [ + "rtmidi" + ] + }, + { + "name": "music", + "crates": [ + "rtmidi" + ] + }, + { + "name": "tiny", + "crates": [ + "tiny_rp2040_bsp" + ] + }, + { + "name": "windowed", + "crates": [ + "labs_solar_system" + ] + }, + { + "name": "password", + "crates": [ + "get_password" + ] + }, + { + "name": "echo", + "crates": [ + "get_password" + ] + }, + { + "name": "textio", + "crates": [ + "get_password" + ] + }, + { + "name": "simple", + "crates": [ + "vanilla" + ] + }, + { + "name": "substitute", + "crates": [ + "vanilla" + ] + }, + { + "name": "replace", + "crates": [ + "vanilla" + ] + }, + { + "name": "vanilla", + "crates": [ + "vanilla" + ] + }, + { + "name": "lua", + "crates": [ + "ada_lua" + ] + }, + { + "name": "script", + "crates": [ + "ada_lua" + ] + }, + { + "name": "unbound", + "crates": [ + "spark_unbound" + ] + }, + { + "name": "matrices", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "blas", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "lapack", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "rx", + "crates": [ + "rxada" + ] + }, + { + "name": "reactive", + "crates": [ + "rxada" + ] + }, + { + "name": "reactivex", + "crates": [ + "rxada" + ] + }, + { + "name": "observer", + "crates": [ + "rxada" + ] + }, + { + "name": "processes", + "crates": [ + "utilada" + ] + }, + { + "name": "streams", + "crates": [ + "utilada", + "utilada_lzma" + ] + }, + { + "name": "beans", + "crates": [ + "utilada" + ] + }, + { + "name": "encoders", + "crates": [ + "utilada" + ] + }, + { + "name": "decoders", + "crates": [ + "utilada" + ] + }, + { + "name": "control", + "crates": [ + "webdriver" + ] + }, + { + "name": "selenium", + "crates": [ + "webdriver" + ] + }, + { + "name": "chrome", + "crates": [ + "webdriver" + ] + }, + { + "name": "sorting", + "crates": [ + "partord" + ] + }, + { + "name": "template-engine", + "crates": [ + "mold_lib" + ] + }, + { + "name": "template-repo", + "crates": [ + "mold_lib" + ] + }, + { + "name": "utilities", + "crates": [ + "si_units" + ] + }, + { + "name": "optional", + "crates": [ + "optional" + ] + }, + { + "name": "firebird", + "crates": [ + "matreshka_sql_firebird" + ] + }, + { + "name": "currency", + "crates": [ + "cashe" + ] + }, + { + "name": "money", + "crates": [ + "cashe" + ] + }, + { + "name": "decimal", + "crates": [ + "cashe" + ] + }, + { + "name": "finance", + "crates": [ + "cashe" + ] + }, + { + "name": "facelet", + "crates": [ + "serverfaces_unit" + ] + }, + { + "name": "jsf", + "crates": [ + "serverfaces_unit" + ] + }, + { + "name": "ali", + "crates": [ + "gnatcoll_xref" + ] + }, + { + "name": "geo", + "crates": [ + "geo_coords" + ] + }, + { + "name": "coordinates", + "crates": [ + "geo_coords" + ] + }, + { + "name": "latitude", + "crates": [ + "geo_coords" + ] + }, + { + "name": "longitude", + "crates": [ + "geo_coords" + ] + }, + { + "name": "distance", + "crates": [ + "geo_coords" + ] + }, + { + "name": "bearing", + "crates": [ + "geo_coords" + ] + }, + { + "name": "haversine", + "crates": [ + "geo_coords" + ] + }, + { + "name": "xoshiro", + "crates": [ + "xoshiro" + ] + }, + { + "name": "rng", + "crates": [ + "xoshiro" + ] + }, + { + "name": "generalized", + "crates": [ + "wisitoken" + ] + }, + { + "name": "resource", + "crates": [ + "are" + ] + }, + { + "name": "embedder", + "crates": [ + "are" + ] + }, + { + "name": "wavefiles", + "crates": [ + "audio_wavefiles" + ] + }, + { + "name": "esp", + "crates": [ + "esp_idf" + ] + }, + { + "name": "riscv", + "crates": [ + "esp_idf" + ] + }, + { + "name": "xtensa", + "crates": [ + "esp_idf" + ] + }, + { + "name": "search", + "crates": [ + "septum" + ] + }, + { + "name": "wsse", + "crates": [ + "matreshka_soap_wsse" + ] + }, + { + "name": "dir", + "crates": [ + "dir_iterators" + ] + }, + { + "name": "files", + "crates": [ + "dir_iterators" + ] + }, + { + "name": "walk", + "crates": [ + "dir_iterators" + ] + }, + { + "name": "4x", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "roundbased", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "strategy", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "2d", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "hmac", + "crates": [ + "hmac" + ] + }, + { + "name": "beaglebone", + "crates": [ + "muntsos_beaglebone", + "libsimpleio" + ] + }, + { + "name": "raspberrypi2", + "crates": [ + "muntsos_raspberrypi2" + ] + }, + { + "name": "vt100", + "crates": [ + "trendy_terminal" + ] + }, + { + "name": "junit", + "crates": [ + "ajunitgen" + ] + }, + { + "name": "wiki", + "crates": [ + "awa" + ] + }, + { + "name": "blog", + "crates": [ + "awa" + ] + }, + { + "name": "mpfr", + "crates": [ + "admpfr" + ] + }, + { + "name": "floating-point", + "crates": [ + "admpfr" + ] + }, + { + "name": "special-fun", + "crates": [ + "specfun" + ] + }, + { + "name": "beta-function", + "crates": [ + "specfun" + ] + }, + { + "name": "gamma-function", + "crates": [ + "specfun" + ] + }, + { + "name": "beta-incomplete", + "crates": [ + "specfun" + ] + }, + { + "name": "sprite", + "crates": [ + "geste" + ] + }, + { + "name": "tool", + "crates": [ + "rsfile" + ] + }, + { + "name": "file-size", + "crates": [ + "rsfile" + ] + }, + { + "name": "libsimpleio", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "pocketbeagle", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "watchdog", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "trace", + "crates": [ + "adacl" + ] + }, + { + "name": "aunit", + "crates": [ + "adacl" + ] + }, + { + "name": "assert", + "crates": [ + "adacl" + ] + }, + { + "name": "smart-pointer", + "crates": [ + "adacl" + ] + }, + { + "name": "stm32f0", + "crates": [ + "stm32f0x2_hal" + ] + }, + { + "name": "java", + "crates": [ + "j2ada" + ] + }, + { + "name": "translator", + "crates": [ + "j2ada" + ] + } +] \ No newline at end of file diff --git a/_data/update.yml b/_data/update.yml new file mode 100644 index 00000000..816ae822 --- /dev/null +++ b/_data/update.yml @@ -0,0 +1,4 @@ +index_branch: "stable-1.2.1" +alr_version: "1.2.2" +alire_lib_version: "1.2.2" +date: "Wed Oct 11 00:20:02 UTC 2023" diff --git a/_includes/crate_badge.html b/_includes/crate_badge.html new file mode 100644 index 00000000..a6e1b00f --- /dev/null +++ b/_includes/crate_badge.html @@ -0,0 +1,5 @@ +{% assign crate_link = '/crates/' | append: include.name | downcase | absolute_url %} +
+ {{ site.data.badge.logoSvg }}{{ include.name | downcase}} + {{ include.version }} +
diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 00000000..5e0ea021 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,2 @@ +
+
diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 00000000..a05611a7 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,40 @@ + + + + {{ site.title }} - {{ page.title }} + + + + + + + + + + + + + + + + + + + + {% if page.tipue_search_active or layout.tipue_search_active -%} + + + + + + {% endif -%} + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 00000000..e97b9705 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,81 @@ +
+
+
+
+ + ALR logo + +
+
+

{{ site.title }}

+

{{ site.subtitle }}

+ + +
+
+ + + + + {%- endif -%} +
+
+
+ +
diff --git a/_includes/make_list.html b/_includes/make_list.html new file mode 100644 index 00000000..aa69e777 --- /dev/null +++ b/_includes/make_list.html @@ -0,0 +1,5 @@ +
    + {% for elt in include.list %} +
  • {{ elt | xml_escape }}
  • + {% endfor %} +
diff --git a/_layouts/badge.json b/_layouts/badge.json new file mode 100644 index 00000000..b03076a1 --- /dev/null +++ b/_layouts/badge.json @@ -0,0 +1,7 @@ +{ + "schemaVersion": 1, + "label": "{{ page.crate }}", + "message": "{{ page.version }}", + "logoSvg": {{ site.data.badge.logoSvg | jsonify }}, + "color": "9cf" +} diff --git a/_layouts/crate.html b/_layouts/crate.html new file mode 100644 index 00000000..9a0bbab3 --- /dev/null +++ b/_layouts/crate.html @@ -0,0 +1,122 @@ +--- +layout: page_full_width +--- +

{{ page.title }}

+ +
+ +
+ + Website: +

+ {% for link in page.websites %} + {{ link }} + {% endfor %} +

+ + Author{% if page.authors.size > 1 %}s{% endif %}: + {% include make_list.html list=page.authors %} + + Maintainer{% if page.maintainers.size > 1 %}s{% endif %}: + {% include make_list.html list=page.maintainers %} + + License{% if page.authors.licenses > 1 %}s{% endif %}: +

+ {{ page.licenses | join: ", " | xml_escape }} +

+ Version: +

+ {{ page.version | xml_escape }} +

+ + {% assign ci_badge_url = "https://img.shields.io/endpoint?url=" + | append: site.data.meta.ci_site | append: "/badges/" + | append: page.crate | append: ".json" %} + Alire CI: +

+ + + +

+ + Dependencies: + {% if page.dependencies.size > 0 %} +
    + + + {% if page.dependencies.crate %} + + + {% assign dep = page.dependencies %} +
  • + {% assign crate_link = '/crates/' | append: dep.crate | absolute_url %} + {%- include crate_badge.html name=dep.crate link=crate_link version=dep.version -%} +
  • + {% else %} + + {% for dep in page.dependencies %} +
  • + {% assign crate_link = '/crates/' | append: dep.crate | absolute_url %} + {%- include crate_badge.html name=dep.crate link=crate_link version=dep.version -%} +
  • + {% endfor %} + {% endif %} +
+ {% else %} +

No dependency.

+ {% endif %} + + Dependents: + {% capture rdeps %} + {% for crate in site.crates %} + {% for rdep in crate.dependencies %} + {% if rdep.crate == page.crate %} + {{ crate.crate }} + {% endif %} + {% endfor %} + {% endfor %} + {% endcapture %} + {% assign rdeps = rdeps | split:' ' %} + {% if rdeps.size > 0 %} +
    + {% for rdep in rdeps %} +
  • + {% assign crate_link = '/crates/' | append: rdep | absolute_url %} + {% include crate_badge.html name=rdep link=crate_link %} +
  • + {%- endfor %} +
+ {% else %} +

No dependents.

+ {% endif %} + + Badge: +

+ {% assign json_url = "https://alire.ada.dev/badges/" | append: page.crate | append: ".json" %} + {% assign badge_url = "https://img.shields.io/endpoint?url="| append: json_url %} + +

+ +
+
+

{{ page.short_description }}

+ {% if page.tags.size > 0 %} + {% for tag in page.tags %} + #{{ tag }} + {% endfor %} + {% endif %} +
+ +
+ {{ content }} +
+
+
diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 00000000..8d63eeaa --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,26 @@ +--- +layout: compress +--- + + + + +{%- include head.html -%} + + +
+ + {%- include header.html -%} + +
+ + {{ content }} + +
+ + {%- include footer.html -%} + +
+ + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 00000000..c51acd1a --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,9 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+
diff --git a/_layouts/page_full_width.html b/_layouts/page_full_width.html new file mode 100644 index 00000000..a0e3481b --- /dev/null +++ b/_layouts/page_full_width.html @@ -0,0 +1,9 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+
diff --git a/_sass/devlog.scss b/_sass/devlog.scss new file mode 100644 index 00000000..45957fd5 --- /dev/null +++ b/_sass/devlog.scss @@ -0,0 +1,296 @@ +body { + background-color: #D6DDE1 !important; + font-family: 'Quicksand', sans-serif !important; +} +html { + scroll-behavior: smooth; +} + +header { + background-color: #F5F5F5; + box-shadow: 10px 0px 8px; + height: auto; + width: 100%; + padding: 11px; +} + +// Grey line under header text (except on the website title) +h1:not(.profile-name) { + border-bottom: 3px solid #eaecef; +} +h2 { + border-bottom: 1px solid #eaecef; +} + +h1, h2, h3, h4, h5 { + padding-bottom: .3em; + font-weight: 600; + margin-bottom: 16px; +} + +.crate-badge > span { + display: table-cell; + box-sizing: border-box; + padding: .25em .4em; + font-size: 100%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + + &:first-child { + background: linear-gradient(#5f5f5f, #4d4d4d); + color:white; + text-shadow: 0em 0.07em #010101; + border-bottom-left-radius: 0.25em; + border-top-left-radius: 0.25em; + } + &:nth-child(2) { + background: linear-gradient(#8ab8e6, #9ccaf8); + color: #333333; + border-bottom-right-radius: 0.25em; + border-top-right-radius: 0.25em; + } + + a { + color: white; + } + + a:hover { + color: white; + } + + svg { + width: 0.8em; + height: 0.8em; + } +} + +.crate-prop-list { + + border-right: 3px solid #eaecef; + + p { + margin-left: 1.5em; + } +} + +.crate-tag-link { + font-size: 85%; + line-height: 1; + padding: .3em .6em; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + border-radius: 0.25em; + background-color: rgb(209,230,211); + color: rgba(0,0,0,255); +} + +.markdown { + img { + max-width: 100%; + } +} +.container-fluid { + margin: 0px !important; + padding: 0px !important; +} + +.profile-img { + width: 150px; + height: 150px; + margin-left: 20px; +} + +.profile-name { + margin-top: 20px; +} + +.profile-bio, +.profile-links { + margin-top: 5px; +} + +.border { + border: 1px solid #000; +} + +.center { + text-align: center; +} + +.card { + margin: 20px !important; + padding: 20px !important; +} + +.blog-post{ + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + transition: all 0.3s cubic-bezier(.25,.8,.25,1); +} + +.blog-post:hover { + box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); + } + +.social-link { + color: #262222; + font-size: 15px; + padding: 5px; + margin: 2px; + text-decoration: none !important; +} + +#navigation { + margin-top: 50px; +} + +.nav-link { + font-size: 24px !important; + color: #000; +} +footer { + width: 100%; + height: 70px; + text-align: center; + padding: 20px; + background-color: #000000; + color:#fff; +} + +.company-logo { + width: 100px; + height: 100px; +} + +.project-img { + width: 300px; + height: 200px; +} + +.author-profile-img { + width: 50px; + height: 50px; +} + +.project-desc { + float: left; +} + +.project-link { + color: gray; + font-size: 15px; +} + +.card-header { + border-radius: 0% !important; +} + +.blog-post { + width: 350px; + height: auto; + margin: 20px !important; +} + +.responsive-table { + display: block; + width: 100%; + overflow-x: auto; +} + +pre, +code { + padding: .2em .4em; + font-size: 85%; + overflow: auto; + white-space: pre-wrap; + word-wrap: break-word; + word-break: break-all; + font-family: Courier, monospace; + color: #24292e; +} + +/* override bootstrap css which creates extra indent on first line for +multiline code blocks wrapped in pre tags */ + +pre code { + padding: .2em 0em; +} + +.language-plaintext { + background-color: #f3f3f3; +} + +.highlight { background-color: #f6f8fa; } + +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #6a737d } /* Comment */ +.highlight .err { } /* Error */ +.highlight .k { color: #d73a49 } /* Keyword */ +.highlight .o { } /* Operator */ +.highlight .ch { color: #6a737d } /* Comment.Hashbang */ +.highlight .cm { color: #6a737d } /* Comment.Multiline */ +.highlight .cp { color: #d73a49 } /* Comment.Preproc */ +.highlight .cpf { color: #032f62 } /* Comment.PreprocFile */ +.highlight .c1 { color: #6a737d } /* Comment.Single */ +.highlight .cs { color: #6a737d } /* Comment.Special */ +.highlight .gd { color: #b31d28; background-color: #ffeef0 } /* Generic.Deleted */ +.highlight .ge { } /* Generic.Emph */ +.highlight .gr { } /* Generic.Error */ +.highlight .gh { color: #005cc5 } /* Generic.Heading */ +.highlight .gi { color: #22863a; background-color: #f0fff4 } /* Generic.Inserted */ +.highlight .go { } /* Generic.Output */ +.highlight .gp { } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #6f42c1; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #005cc5 } /* Keyword.Constant */ +.highlight .kd { color: #d73a49 } /* Keyword.Declaration */ +.highlight .kn { color: #d73a49 } /* Keyword.Namespace */ +.highlight .kp { color: #d73a49 } /* Keyword.Pseudo */ +.highlight .kr { color: #d73a49 } /* Keyword.Reserved */ +.highlight .kt { color: #d73a49 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #032f62 } /* Literal.String */ +.highlight .na { } /* Name.Attribute */ +.highlight .nb { color: #005cc5 } /* Name.Builtin */ +.highlight .nc { color: #6f42c1 } /* Name.Class */ +.highlight .no { color: #005cc5 } /* Name.Constant */ +.highlight .nd { color: #6f42c1 } /* Name.Decorator */ +.highlight .ni { color: #005cc5 } /* Name.Entity */ +.highlight .ne { color: #005cc5 } /* Name.Exception */ +.highlight .nf { color: #6f42c1 } /* Name.Function */ +.highlight .nl { color: #005cc5 } /* Name.Label */ +.highlight .nn { color: #6f42c1 } /* Name.Namespace */ +.highlight .nt { color: #22863a } /* Name.Tag */ +.highlight .nv { color: #24292e } /* Name.Variable */ +.highlight .ow { color: #d73a49; } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #005cc5 } /* Literal.Number.Bin */ +.highlight .mf { color: #005cc5 } /* Literal.Number.Float */ +.highlight .mh { color: #005cc5 } /* Literal.Number.Hex */ +.highlight .mi { color: #005cc5 } /* Literal.Number.Integer */ +.highlight .mo { color: #005cc5 } /* Literal.Number.Oct */ +.highlight .sa { color: #d73a49 } /* Literal.String.Affix */ +.highlight .sb { color: #032f62 } /* Literal.String.Backtick */ +.highlight .sc { color: #032f62 } /* Literal.String.Char */ +.highlight .dl { color: #d73a49 } /* Literal.String.Delimiter */ +.highlight .sd { color: #032f62 } /* Literal.String.Doc */ +.highlight .s2 { color: #032f62 } /* Literal.String.Double */ +.highlight .se { color: #032f62 } /* Literal.String.Escape */ +.highlight .sh { color: #032f62 } /* Literal.String.Heredoc */ +.highlight .si { color: #005cc5 } /* Literal.String.Interpol */ +.highlight .sx { color: #032f62 } /* Literal.String.Other */ +.highlight .sr { color: #032f62 } /* Literal.String.Regex */ +.highlight .s1 { color: #032f62 } /* Literal.String.Single */ +.highlight .ss { color: #005cc5 } /* Literal.String.Symbol */ +.highlight .bp { color: #005cc5 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #005cc5 } /* Name.Function.Magic */ +.highlight .vc { color: #24292e } /* Name.Variable.Class */ +.highlight .vg { color: #24292e } /* Name.Variable.Global */ +.highlight .vi { color: #24292e } /* Name.Variable.Instance */ +.highlight .vm { color: #005cc5 } /* Name.Variable.Magic */ +.highlight .il { color: #005cc5 } /* Literal.Number.Integer.Long */ diff --git a/alire_install/LICENSE.txt b/alire_install/LICENSE.txt new file mode 100644 index 00000000..f288702d --- /dev/null +++ b/alire_install/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/alire_install/bin/alr b/alire_install/bin/alr new file mode 100755 index 00000000..5b39193e Binary files /dev/null and b/alire_install/bin/alr differ diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 00000000..8930788b --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,5 @@ +--- +# style +--- + +@import "devlog"; \ No newline at end of file diff --git a/assets/img/favicon.ico b/assets/img/favicon.ico new file mode 100644 index 00000000..409f7c78 Binary files /dev/null and b/assets/img/favicon.ico differ diff --git a/assets/img/profile.png b/assets/img/profile.png new file mode 100644 index 00000000..ad552105 Binary files /dev/null and b/assets/img/profile.png differ diff --git a/assets/tipuesearch/css/tipuesearch.css b/assets/tipuesearch/css/tipuesearch.css new file mode 100755 index 00000000..6c0b0c9e --- /dev/null +++ b/assets/tipuesearch/css/tipuesearch.css @@ -0,0 +1,251 @@ + +/* +Tipue Search 6.1 +Copyright (c) 2017 Tipue +Tipue Search is released under the MIT License +http://www.tipue.com/search +*/ + + +/* fonts */ + + +#tipue_search_input, #tipue_search_foot_boxes +{ + font: 300 14px/1 Roboto, sans-serif; +} +#tipue_search_results_count, #tipue_search_warning, .tipue_search_content_url, .tipue_search_content_debug, .tipue_search_related_text +{ + font: 300 14px/1.7 Roboto, sans-serif; +} +.tipue_search_content_title +{ + font: 100 26px/1.7 Roboto, sans-serif; +} +.tipue_search_content_text, .tipue_search_related_title +{ + font: 300 15px/1.7 Roboto, sans-serif; +} +.tipue_search_content_bold, .tipue_search_related_bold +{ + font-weight: 400; +} + + +/* search box */ + + +#tipue_search_input +{ + color: #333; + max-width: 210px; + padding: 17px; + border: 1px solid #e3e3e3; + border-radius: 0; + -moz-appearance: none; + -webkit-appearance: none; + box-shadow: none; + outline: 0; + margin: 0; +} +.tipue_search_icon +{ + width: 24px; + height: 24px; +} +.tipue_search_left +{ + float: left; + padding: 15px 9px 0 0; +} +.tipue_search_right +{ + float: left; +} + + +/* search results */ + + +#tipue_search_content +{ + max-width: 750px; + padding-top: 15px; + margin: 0; +} +#tipue_search_results_count +{ + color: #333; +} +#tipue_search_warning +{ + color: #333; + margin: 7px 0; +} +#tipue_search_warning a +{ + color: #5396ea; + text-decoration: none; +} +#tipue_search_warning a:hover +{ + color: #555; +} +.tipue_search_content_title +{ + color: #666; + margin-top: 21px; +} +.tipue_search_content_title a +{ + color: #666; + text-decoration: none; +} +.tipue_search_content_title a:hover +{ + color: #666; +} +.tipue_search_content_url +{ + word-wrap: break-word; + hyphens: auto; +} +.tipue_search_content_url a, .tipue_search_related_text a +{ + color: #5396ea; + text-decoration: none; +} +.tipue_search_content_url a:hover, .tipue_search_related_text a:hover, .tipue_search_related_before, .tipue_search_related_after +{ + color: #555; +} +.tipue_search_content_text +{ + color: #333; + word-wrap: break-word; + hyphens: auto; + margin-top: 5px; +} +.tipue_search_content_bold +{ + color: #333; +} +.tipue_search_content_debug +{ + color: #333; + margin: 5px 0; +} +.tipue_search_related_title +{ + color: #333; + margin: 26px 0 7px 0; +} +.tipue_search_related_cols +{ + -webkit-columns: 230px 2; + -moz-columns: 230px 2; + columns: 230px 2; +} + +#tipue_search_foot +{ + margin: 51px 0 21px 0; +} +#tipue_search_foot_boxes +{ + padding: 0; + margin: 0; + cursor: pointer; +} +#tipue_search_foot_boxes li +{ + list-style: none; + margin: 0; + padding: 0; + display: inline; +} +#tipue_search_foot_boxes li a +{ + padding: 10px 17px 11px 17px; + background-color: #fff; + border: 1px solid #e3e3e3; + border-radius: 1px; + color: #333; + margin-right: 7px; + text-decoration: none; + text-align: center; +} +#tipue_search_foot_boxes li.current +{ + padding: 10px 17px 11px 17px; + background: #f6f6f6; + border: 1px solid #e3e3e3; + border-radius: 1px; + color: #333; + margin-right: 7px; + text-align: center; +} +#tipue_search_foot_boxes li a:hover +{ + background: #f6f6f6; +} + + +/* spinner */ + + +.tipue_search_spinner +{ + width: 50px; + height: 28px; +} +.tipue_search_spinner > div +{ + background-color: #e3e3e3; + height: 100%; + width: 2px; + display: inline-block; + margin-right: 2px; + -webkit-animation: stretchdelay 1.2s infinite ease-in-out; + animation: stretchdelay 1.2s infinite ease-in-out; +} +.tipue_search_spinner .tipue_search_rect2 +{ + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} +.tipue_search_spinner .tipue_search_rect3 +{ + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} +@-webkit-keyframes stretchdelay +{ + 0%, 40%, 100% + { + -webkit-transform: scaleY(0.4) + } + 20% + { + -webkit-transform: scaleY(1.0) + } +} +@keyframes stretchdelay +{ + 0%, 40%, 100% + { + transform: scaleY(0.4); + -webkit-transform: scaleY(0.4); + } + 20% + { + transform: scaleY(1.0); + -webkit-transform: scaleY(1.0); + } +} + + + + + + diff --git a/assets/tipuesearch/search.png b/assets/tipuesearch/search.png new file mode 100644 index 00000000..b96a4a0d Binary files /dev/null and b/assets/tipuesearch/search.png differ diff --git a/assets/tipuesearch/tipuesearch.min.js b/assets/tipuesearch/tipuesearch.min.js new file mode 100644 index 00000000..e6e80aa1 --- /dev/null +++ b/assets/tipuesearch/tipuesearch.min.js @@ -0,0 +1,178 @@ +(function($){$.fn.tipuesearch=function(options){var set=$.extend({'contentLocation':'tipuesearch/tipuesearch_content.json','contextBuffer':60,'contextLength':60,'contextStart':90,'debug':false,'descriptiveWords':25,'highlightTerms':true,'liveContent':'*','liveDescription':'*','minimumLength':3,'mode':'static','newWindow':false,'show':9,'showContext':true,'showRelated':true,'showTime':true,'showTitleCount':true,'showURL':true,'wholeWords':true},options);return this.each(function(){var tipuesearch_in={pages:[]};$.ajaxSetup({async:false});var tipuesearch_t_c=0;$('#tipue_search_content').hide().html('
').show();if(set.mode=='live') +{for(var i=0;i');var t_2=html.toLowerCase().indexOf('',t_1+7);if(t_1!=-1&&t_2!=-1) +{var tit=html.slice(t_1+7,t_2);} +else +{var tit=tipuesearch_string_1;} +tipuesearch_in.pages.push({"title":tit,"text":desc,"tags":cont,"url":tipuesearch_pages[i]});});}} +if(set.mode=='json') +{$.getJSON(set.contentLocation).done(function(json) +{tipuesearch_in=$.extend({},json);});} +if(set.mode=='static') +{tipuesearch_in=$.extend({},tipuesearch);} +var tipue_search_w='';if(set.newWindow) +{tipue_search_w=' target="_blank"';} +function getURLP(name) +{var _locSearch=location.search;var _splitted=(new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(_locSearch)||[,""]);var searchString=_splitted[1].replace(/\+/g,'%20');try +{searchString=decodeURIComponent(searchString);} +catch(e) +{searchString=unescape(searchString);} +return searchString||null;} +if(getURLP('q')) +{$('#tipue_search_input').val(getURLP('q'));getTipueSearch(0,true);} +$(this).keyup(function(event) +{if(event.keyCode=='13') +{getTipueSearch(0,true);}});function getTipueSearch(start,replace) +{var out='';var show_replace=false;var show_stop=false;var standard=true;var c=0;found=[];var d_o=$('#tipue_search_input').val();var d=d_o.toLowerCase();d=$.trim(d);if((d.match("^\"")&&d.match("\"$"))||(d.match("^'")&&d.match("'$"))) +{standard=false;} +var d_w=d.split(' ');if(standard) +{d='';for(var i=0;i=set.minimumLength) +{if(standard) +{if(replace) +{var d_r=d;for(var i=0;i'+d_r+'';} +if(c==1) +{out+='
'+tipuesearch_string_4;} +else +{c_c=c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");out+='
'+c_c+' '+tipuesearch_string_5;} +if(set.showTime) +{var endTimer=new Date().getTime();var time=(endTimer-startTimer)/ 1000;out+=' ('+time.toFixed(2)+' '+tipuesearch_string_14+')';set.showTime=false;} +out+='
';found.sort(function(a,b){return b.score-a.score});var l_o=0;for(var i=0;i=start&&l_o'+found[i].title+'
';if(set.debug) +{out+='
Score: '+found[i].score+'
';} +if(set.showURL) +{var s_u=found[i].url.toLowerCase();if(s_u.indexOf('http://')==0) +{s_u=s_u.slice(7);} +out+='';} +if(found[i].desc) +{var t=found[i].desc;if(set.showContext) +{d_w=d.split(' ');var s_1=found[i].desc.toLowerCase().indexOf(d_w[0]);if(s_1>set.contextStart) +{var t_1=t.substr(s_1-set.contextBuffer);var s_2=t_1.indexOf(' ');t_1=t.substr(s_1-set.contextBuffer+s_2);t_1=$.trim(t_1);if(t_1.length>set.contextLength) +{t='... '+t_1;}}} +if(standard) +{d_w=d.split(' ');for(var f=0;f$1");}}} +else if(set.highlightTerms) +{var patr=new RegExp('('+d+')','gi');t=t.replace(patr,"$1");} +var t_d='';var t_w=t.split(' ');if(t_w.length'+t_d+'';}} +l_o++;} +if(set.showRelated&&standard) +{f=0;for(var i=0;i'+d_o+'';}} +if(c>set.show) +{var pages=Math.ceil(c / set.show);var page=(start / set.show);out+='';}} +else +{out+='
'+tipuesearch_string_8+'
';}} +else +{if(show_stop) +{out+='
'+tipuesearch_string_8+'. '+tipuesearch_string_9+'
';} +else +{out+='
'+tipuesearch_string_10+'
';if(set.minimumLength==1) +{out+='
'+tipuesearch_string_11+'
';} +else +{out+='
'+tipuesearch_string_12+' '+set.minimumLength+' '+tipuesearch_string_13+'
';}}} +$('#tipue_search_content').hide().html(out).slideDown(200);$('#tipue_search_replaced').click(function() +{getTipueSearch(0,false);});$('.tipue_search_related').click(function() +{$('#tipue_search_input').val($(this).attr('id'));getTipueSearch(0,true);});$('.tipue_search_foot_box').click(function() +{var id_v=$(this).attr('id');var id_a=id_v.split('_');getTipueSearch(parseInt(id_a[0]),id_a[1]);});}});};})(jQuery); \ No newline at end of file diff --git a/assets/tipuesearch/tipuesearch_content.js b/assets/tipuesearch/tipuesearch_content.js new file mode 100644 index 00000000..c22ea4e7 --- /dev/null +++ b/assets/tipuesearch/tipuesearch_content.js @@ -0,0 +1,105 @@ +--- +# Content index for Tipue Search +# https://github.com/jekylltools/jekyll-tipue-search +# v1.4 +layout: null +--- +{%- assign index = "" | split: "" -%} +{%- assign excluded_files = site.tipue_search.exclude.files -%} +{%- assign excluded_tags = site.tipue_search.exclude.tags | uniq -%} +{%- assign excluded_categories = site.tipue_search.exclude.categories | uniq -%} +{%- assign excluded_taxonomies = excluded_tags | concat: excluded_categories | uniq -%} +{%- for post in site.posts -%} + {%- unless post.exclude_from_search == true or excluded_files contains post.path -%} + {%- assign has_excluded_taxonomy = false -%} + {%- for tag in post.tags -%} + {%- if excluded_taxonomies contains tag -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- for category in post.categories -%} + {%- if excluded_taxonomies contains category -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- unless has_excluded_taxonomy == true -%} + {%- assign index = index | push: post | uniq -%} + {%- endunless -%} + {%- endunless -%} +{%- endfor -%} +{%- for crate in site.crates -%} + {%- unless crate.exclude_from_search == true or excluded_files contains crate.path -%} + {%- assign has_excluded_taxonomy = false -%} + {%- for tag in crate.tags -%} + {%- if excluded_taxonomies contains tag -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- for category in crate.categories -%} + {%- if excluded_taxonomies contains category -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- unless has_excluded_taxonomy == true -%} + {%- assign index = index | push: crate | uniq -%} + {%- endunless -%} + {%- endunless -%} +{%- endfor -%} +{%- if site.tipue_search.include.pages == true -%} + {%- for page in site.html_pages -%} + {%- unless page.exclude_from_search == true or excluded_files contains page.path -%} + {%- assign has_excluded_taxonomy = false -%} + {%- for tag in page.tags -%} + {%- if excluded_taxonomies contains tag -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- for category in page.categories -%} + {%- if excluded_taxonomies contains category -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- unless has_excluded_taxonomy == true -%} + {%- assign index = index | push: page | uniq -%} + {%- endunless -%} + {%- endunless -%} + {%- endfor -%} +{%- endif -%} +{%- for collection in site.tipue_search.include.collections -%} + {%- assign documents = site.documents | where:"collection",collection -%} + {%- for document in documents -%} + {%- unless document.exclude_from_search == true or excluded_files contains document.path -%} + {%- assign has_excluded_taxonomy = false -%} + {%- for tag in document.tags -%} + {%- if excluded_taxonomies contains tag -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- for category in document.categories -%} + {%- if excluded_taxonomies contains category -%} + {%- assign has_excluded_taxonomy = true -%} + {%- endif -%} + {%- endfor -%} + {%- unless has_excluded_taxonomy == true -%} + {%- assign index = index | push: document | uniq -%} + {%- endunless -%} + {%- endunless -%} + {%- endfor -%} +{%- endfor -%} +var tipuesearch = {"pages": [ +{%- for document in index -%} + {%- assign tags = document.tags | uniq -%} + {%- assign categories = document.categories | uniq -%} + {%- assign taxonomies = document.tags | concat: categories | uniq -%} + {%- assign authors = document.authors | join: " " | append: " " -%} + {%- assign maintainers = document.maintainers | join: " " | append: " " -%} + {%- assign licenses = document.licenses | join: " " | append: " " -%} + {%- assign extra_search_data = " " | authors | append: maintainers | append: licenses -%} + { + "title": {{ document.title | smartify | strip_html | normalize_whitespace | jsonify }}, + "text": {{ document.short_description| append: extra_search_data | strip_html | normalize_whitespace | jsonify }}, + "tags": {{ taxonomies | join: " " | normalize_whitespace | jsonify }}, + "url": {{ document.url | relative_url | jsonify }} + }{%- unless forloop.last -%},{%- endunless -%} +{%- endfor -%} +]}; diff --git a/assets/tipuesearch/tipuesearch_set.js b/assets/tipuesearch/tipuesearch_set.js new file mode 100644 index 00000000..fa90ad37 --- /dev/null +++ b/assets/tipuesearch/tipuesearch_set.js @@ -0,0 +1,80 @@ + +/* +Tipue Search 6.1 +Copyright (c) 2017 Tipue +Tipue Search is released under the MIT License +http://www.tipue.com/search +*/ + + +/* +Stop words +Stop words list from http://www.ranks.nl/stopwords +*/ + +var tipuesearch_stop_words = ["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"]; + + +// Word replace + +var tipuesearch_replace = {'words': [ + {'word': 'tip', 'replace_with': 'tipue'}, + {'word': 'javscript', 'replace_with': 'javascript'}, + {'word': 'jqeury', 'replace_with': 'jquery'} +]}; + + +// Weighting + +var tipuesearch_weight = {'weight': [ + {'url': 'http://www.tipue.com', 'score': 20}, + {'url': 'http://www.tipue.com/search', 'score': 30}, + {'url': 'http://www.tipue.com/is', 'score': 10} +]}; + + +// Illogical stemming + +var tipuesearch_stem = {'words': [ + {'word': 'e-mail', 'stem': 'email'}, + {'word': 'javascript', 'stem': 'jquery'}, + {'word': 'javascript', 'stem': 'js'} +]}; + + +// Related searches + +var tipuesearch_related = {'searches': [ + {'search': 'tipue', 'related': 'Tipue Search'}, + {'search': 'tipue', 'before': 'Tipue Search', 'related': 'Getting Started'}, + {'search': 'tipue', 'before': 'Tipue', 'related': 'jQuery'}, + {'search': 'tipue', 'before': 'Tipue', 'related': 'Blog'} +]}; + + +// Internal strings + +var tipuesearch_string_1 = 'No title'; +var tipuesearch_string_2 = 'Showing results for'; +var tipuesearch_string_3 = 'Search instead for'; +var tipuesearch_string_4 = '1 result'; +var tipuesearch_string_5 = 'results'; +var tipuesearch_string_6 = 'Back'; +var tipuesearch_string_7 = 'More'; +var tipuesearch_string_8 = 'Nothing found.'; +var tipuesearch_string_9 = 'Common words are largely ignored.'; +var tipuesearch_string_10 = 'Search too short'; +var tipuesearch_string_11 = 'Should be one character or more.'; +var tipuesearch_string_12 = 'Should be'; +var tipuesearch_string_13 = 'characters or more.'; +var tipuesearch_string_14 = 'seconds'; +var tipuesearch_string_15 = 'Searches related to'; + + +// Internals + + +// Timer for showTime + +var startTimer = new Date().getTime(); + diff --git a/coty_banner.jpg b/coty_banner.jpg new file mode 100644 index 00000000..2cdd9dc6 Binary files /dev/null and b/coty_banner.jpg differ diff --git a/crates.md b/crates.md new file mode 100644 index 00000000..3e4abf22 --- /dev/null +++ b/crates.md @@ -0,0 +1,41 @@ +--- +title: Crates +layout: page +--- + + +
+ +{% assign alphabet= "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" | split: ' ' %} +{% for letter in alphabet %} + {% capture filtered_crates %} + {% for crate in site.crates %} + {% assign crate_first_letter = crate.title | slice: 0 %} + {% if crate_first_letter == letter %} + {{ crate.title }} + {% endif %} + {% endfor %} + {% endcapture %} + {% assign filtered_list = filtered_crates | split: ' ' %} + {% if filtered_list != empty %} +{{ letter }} +
    + {% for crate in filtered_list %} + {% for item in site.crates %} + {% if item.title == crate %} + {% assign short_description = item.short_description %} + {% endif %} + {% endfor %} +
  • {{ crate }} {{ short_description | xml_escape }}
  • + {% endfor %} +
+ {% endif %} + +{% endfor %} +{{ site.crates.size }} crates. +From community branch `{{ site.data.update.index_branch }}`. +Alr `{{ site.data.update.alr_version }}`. +Alire Library `{{ site.data.update.alire_lib_version }}`. diff --git a/dependency_graph.py b/dependency_graph.py new file mode 100644 index 00000000..610c6a5d --- /dev/null +++ b/dependency_graph.py @@ -0,0 +1,121 @@ +import glob +import json +import os + +from yaml import load, dump +try: + from yaml import CLoader as Loader +except ImportError: + from yaml import Loader + +data = {} +data['nodes'] = [] +data['links'] = [] +data['colors'] = {'default':'#1f77b4', 'SPARK':'purple', 'Embedded':'darkcyan'} +nodes = [] + + +def extract_yaml(filename): + print("loading %s" % filename) + content = "" + start_detected = False + with open(filename, 'r') as fp: + for line in fp.readlines(): + if not start_detected and line.startswith("---"): + start_detected = True + elif start_detected and line.startswith("---"): + break + elif start_detected: + content += line + try: + return load(content, Loader=Loader) + except Exception as e: + print("Error loading '%s': '%s'" % (filename, str(e))) + print(content) + return None + + +for cratefile in glob.glob("_crates/*.md"): + ydata = extract_yaml(cratefile) + if ydata is None: + print("no data for '%s'" % cratefile) + continue + + if 'crate' in ydata: + color = data['colors']['default'] + crate = ydata['crate'] + desc = crate + + if 'short_description' in ydata and ydata['short_description']: + desc = ydata['short_description'] + + # change color based on tags + if 'tags' in ydata and ydata['tags']: + if 'spark' in ydata['tags']: + color = data['colors']['SPARK'] + elif 'embedded' in ydata['tags']: + color = data['colors']['Embedded'] + + data['nodes'] += [{'id': crate, 'color': color, 'desc': desc}] + nodes.append(crate) + +for cratefile in glob.glob("_crates/*.md"): + ydata = extract_yaml(cratefile) + if ydata is None: + print("no data for '%s'" % cratefile) + continue + + if 'crate' in ydata: + crate = ydata['crate'] + + if 'dependencies' in ydata and ydata['dependencies']: + if type(ydata['dependencies']) is dict: + ydata['dependencies'] = [ydata['dependencies']] + for dep in ydata['dependencies']: + if dep['crate'] in nodes: + data['links'] += [{'source': crate, 'target': dep['crate'], 'value': 1}] + + +script_dir=os.path.dirname(os.path.realpath(__file__)) + +with open(os.path.join(script_dir, 'deps_graph_data.json'), 'w') as file: + out = json.dumps(data, indent=4) + print(out) + file.write(out) + +## +## Create _data/tags.json +## + +terse = {} +# { tag_name_1: [ crate_1, crate_2, ... ], +# tag_name_2: [ crate_3, crate_4, ... ], +# ... } + +tags = [] +# [ { name: tag_name_1, crates: [ crate_1, crate_2, ... ] }, +# { name: tag_name_2, crates: [ crate_3, crate_4, ... ] }, +# ...} ] + +for cratefile in glob.glob("_crates/*.md"): + ydata = extract_yaml(cratefile) + if ydata is None: + print("no data for '%s'" % cratefile) + continue + + if 'crate' in ydata: + crate = ydata['crate'] + + if 'tags' in ydata and ydata['tags']: + crate_tags = ydata['tags'] + for tag in crate_tags: + if tag not in terse: + terse[tag] = [] + terse[tag].append(crate) + +for tag in terse: + tags.append({'name': tag, 'crates': terse[tag]}) + +with open(os.path.join(script_dir, "_data", 'tags.json'), 'w') as file: + out = json.dumps(tags, indent=4) + file.write(out) diff --git a/deps_graph_data.json b/deps_graph_data.json new file mode 100644 index 00000000..9f9ec422 --- /dev/null +++ b/deps_graph_data.json @@ -0,0 +1,3981 @@ +{ + "nodes": [ + { + "id": "rp2040_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the RP2040 micro-controller family" + }, + { + "id": "json", + "color": "#1f77b4", + "desc": "An Ada 2012 library for parsing JSON" + }, + { + "id": "ado", + "color": "#1f77b4", + "desc": "Ada Database Objects (Core library)" + }, + { + "id": "mage_hat", + "color": "#1f77b4", + "desc": "A hat that jumps around and behaves magically" + }, + { + "id": "bar_codes", + "color": "#1f77b4", + "desc": "Generate various types of bar codes on different output formats" + }, + { + "id": "minisamd51_example", + "color": "darkcyan", + "desc": "Example project for the MiniSAM D51" + }, + { + "id": "bb_pico_bsp", + "color": "darkcyan", + "desc": "Ada BSP for the Keyboard Featherwing + RPI PICO" + }, + { + "id": "zipdcf", + "color": "#1f77b4", + "desc": "Tools that can (un)zip document container files, Zip-based archive files" + }, + { + "id": "openglada_glfw", + "color": "#1f77b4", + "desc": "GLFW binding for use with OpenGLAda" + }, + { + "id": "xml_ez_out", + "color": "#1f77b4", + "desc": "Creation of XML-formatted output from Ada programs" + }, + { + "id": "openglada_images", + "color": "#1f77b4", + "desc": "Image loading library for OpenGLAda" + }, + { + "id": "mage", + "color": "#1f77b4", + "desc": "Mini Ada Game Engine - A very simple game engine written in Ada" + }, + { + "id": "aaa", + "color": "#1f77b4", + "desc": "Alex's Ada Assortment (of miscellaneous utilities)" + }, + { + "id": "ashell", + "color": "#1f77b4", + "desc": "Allows running and interacting with OS programs." + }, + { + "id": "chacha20", + "color": "#1f77b4", + "desc": "ChaCha20 implementation in Ada." + }, + { + "id": "elevator", + "color": "#1f77b4", + "desc": "A Simple Elevator System" + }, + { + "id": "simple_logging", + "color": "#1f77b4", + "desc": "Simple logging to console" + }, + { + "id": "lmdb_ada", + "color": "#1f77b4", + "desc": "Bindings to the Lightning Memory-Mapped Database" + }, + { + "id": "trendy_test", + "color": "#1f77b4", + "desc": "Minimal Effort Ada Unit Testing Library" + }, + { + "id": "gnatcoll_omp", + "color": "#1f77b4", + "desc": "GNAT Components Collection - OpenMP binding" + }, + { + "id": "aicwl", + "color": "#1f77b4", + "desc": "Ada Industrial Control Widgets Library" + }, + { + "id": "lzmada", + "color": "#1f77b4", + "desc": "Ada LZMA Library Binding" + }, + { + "id": "eagle_lander", + "color": "#1f77b4", + "desc": "Apollo 11 lunar lander simulator" + }, + { + "id": "sha1", + "color": "#1f77b4", + "desc": "Secure Hash Algorithm 1 implemented in Ada" + }, + { + "id": "libkeccak", + "color": "purple", + "desc": "SHA-3 and related algorithms" + }, + { + "id": "chests", + "color": "darkcyan", + "desc": "Chests are bounded containers" + }, + { + "id": "serverfaces", + "color": "#1f77b4", + "desc": "Web Server Faces JSR 252, JSR 314 and JSR 344" + }, + { + "id": "microbit_examples", + "color": "darkcyan", + "desc": "Examples and tutorials for Ada on the BBC micro:bit" + }, + { + "id": "utilada_unit", + "color": "#1f77b4", + "desc": "Utility Library testing framework with Ahven" + }, + { + "id": "emacs_gpr_mode", + "color": "#1f77b4", + "desc": "parser for Emacs gpr mode" + }, + { + "id": "ltp_305", + "color": "darkcyan", + "desc": "Driver for Pimoroni LED" + }, + { + "id": "ews", + "color": "#1f77b4", + "desc": "Embedded Web Server" + }, + { + "id": "matreshka_sql", + "color": "#1f77b4", + "desc": "Common SQL Database API" + }, + { + "id": "vaton", + "color": "purple", + "desc": "Verified Ascii To Number conversion written in Ada/SPARK" + }, + { + "id": "wordlist", + "color": "#1f77b4", + "desc": "An English word list" + }, + { + "id": "markdown", + "color": "#1f77b4", + "desc": "Markdown parser (draft)" + }, + { + "id": "muntsos_raspberrypi4", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi4 targets" + }, + { + "id": "protobuf", + "color": "#1f77b4", + "desc": "Google Protocol Buffers implementation in Ada" + }, + { + "id": "avrada_examples", + "color": "darkcyan", + "desc": "Sample applications in Ada for AVR microcontrollers" + }, + { + "id": "libgpr", + "color": "#1f77b4", + "desc": "GNAT Project File Library" + }, + { + "id": "gnatcoll_zlib", + "color": "#1f77b4", + "desc": "GNAT Components Collection - zlib binding" + }, + { + "id": "orka_tools", + "color": "#1f77b4", + "desc": "Tools for the Orka rendering kernel" + }, + { + "id": "hac", + "color": "#1f77b4", + "desc": "HAC Ada Compiler: a small, quick Ada compiler covering a subset of Ada" + }, + { + "id": "muntsos_raspberrypi3", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi3 targets" + }, + { + "id": "resources", + "color": "#1f77b4", + "desc": "Utility library to handle project resources at run-time" + }, + { + "id": "usb_embedded", + "color": "darkcyan", + "desc": "An Ada USB stack for embedded devices" + }, + { + "id": "minirest", + "color": "#1f77b4", + "desc": "Minimalist Ada REST client library" + }, + { + "id": "orka_numerics", + "color": "#1f77b4", + "desc": "Tensors (multidimensional arrays) and integrators" + }, + { + "id": "libgnatdoc", + "color": "#1f77b4", + "desc": "GNAT Documentation Generation Tool (as a library)" + }, + { + "id": "gid", + "color": "#1f77b4", + "desc": "Decoding a broad variety of image formats" + }, + { + "id": "orka_awt", + "color": "#1f77b4", + "desc": "Ada Window Toolkit" + }, + { + "id": "tlsada", + "color": "#1f77b4", + "desc": "Bindings for libtls" + }, + { + "id": "lace_c_math", + "color": "#1f77b4", + "desc": "A binding to the C math code used by box2d & bullet bindings." + }, + { + "id": "zipada", + "color": "#1f77b4", + "desc": "Manage Zip Archives and raw LZMA streams" + }, + { + "id": "lace_box2d", + "color": "#1f77b4", + "desc": "Provides a thin Ada binding to the 'box2d' C++ project." + }, + { + "id": "elada", + "color": "#1f77b4", + "desc": "Expression Language Library (JSR245)" + }, + { + "id": "ada_fuse", + "color": "#1f77b4", + "desc": "Ada bindings for Fuse (Filesystem in Userspace)" + }, + { + "id": "cmd_ada", + "color": "#1f77b4", + "desc": "Command based text UI, inspired by Python cmd module" + }, + { + "id": "avrada_mcu", + "color": "darkcyan", + "desc": "Device (MCU) specific definitions for AVR microcontrollers" + }, + { + "id": "gnatcoll_postgres", + "color": "#1f77b4", + "desc": "GNAT Components Collection - postgres" + }, + { + "id": "aflex", + "color": "#1f77b4", + "desc": "An Ada Lexical Analyzer Generator" + }, + { + "id": "endianness", + "color": "purple", + "desc": "Convenience subprograms to convert between Big- and Little-endianness" + }, + { + "id": "parse_args", + "color": "#1f77b4", + "desc": "An Ada 2012 package to parse command line arguments and options" + }, + { + "id": "play_2048", + "color": "#1f77b4", + "desc": "2048 game: merge tiles with the same number until you add up to 2048" + }, + { + "id": "qoi", + "color": "#1f77b4", + "desc": "Ada/SPARK implementation of the Quite Ok Image format" + }, + { + "id": "dynamo", + "color": "#1f77b4", + "desc": "Dynamo Ada Generator" + }, + { + "id": "mathpaqs", + "color": "#1f77b4", + "desc": "A collection of mathematical, 100% portable, packages" + }, + { + "id": "utf8test", + "color": "#1f77b4", + "desc": "Test the terminal behavior when outputting Latin-1 and UTF-8 strings" + }, + { + "id": "pygamer_simulator", + "color": "#1f77b4", + "desc": "SDL simulator of the AdaFruit PyGamer console" + }, + { + "id": "gnatdoc", + "color": "#1f77b4", + "desc": "GNAT Documentation Generation Tool (as `gnatdoc4` binary)" + }, + { + "id": "dummyserver", + "color": "#1f77b4", + "desc": "DummyServer is a terminal program that serves dummy content" + }, + { + "id": "ayacc", + "color": "#1f77b4", + "desc": "An Ada LARL(1) parser generator" + }, + { + "id": "matreshka_fastcgi", + "color": "#1f77b4", + "desc": "FastCGI implementation (demo)" + }, + { + "id": "keypadder", + "color": "#1f77b4", + "desc": "Programmable virtual keypad for your Linux desktop" + }, + { + "id": "wayland_ada_scanner", + "color": "#1f77b4", + "desc": "A tool to generate thick Ada 2012 bindings for Wayland protocols" + }, + { + "id": "fastpbkdf2_ada", + "color": "#1f77b4", + "desc": "Binding and an Ada wrapper to fastpbkdf2" + }, + { + "id": "asfml", + "color": "#1f77b4", + "desc": "An Ada binding to SFML, the Simple and Fast Multimedia Library" + }, + { + "id": "sh1107", + "color": "darkcyan", + "desc": "Driver for the SH1107/OLED 128x128 monochrome display" + }, + { + "id": "matreshka_amf_uml", + "color": "#1f77b4", + "desc": "Unified Modeling Language support for AMF" + }, + { + "id": "atari_atr_tools", + "color": "#1f77b4", + "desc": "Atari / SIO2PC tools for ATR-files" + }, + { + "id": "matreshka_sql_postgresql", + "color": "#1f77b4", + "desc": "PostgreSQL binding for Ada" + }, + { + "id": "openapi", + "color": "#1f77b4", + "desc": "OpenAPI library to build REST client applications" + }, + { + "id": "agpl", + "color": "#1f77b4", + "desc": "Ada General Purpose Library with a robotics flavor" + }, + { + "id": "wayland_ada_info", + "color": "#1f77b4", + "desc": "A tool to display information about supported Wayland interfaces" + }, + { + "id": "ado_mysql", + "color": "#1f77b4", + "desc": "Ada Database Objects (Mysql)" + }, + { + "id": "microbit_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the BBC micro:bit v1" + }, + { + "id": "gnatdist_garlic", + "color": "#1f77b4", + "desc": "The configuration tool gnatdist for GARLIC" + }, + { + "id": "orka_transforms", + "color": "#1f77b4", + "desc": "Library to transform vectors, matrices, and quaternions using SIMD" + }, + { + "id": "rewriters", + "color": "#1f77b4", + "desc": "Easy, yet advanced manipulation of Ada code" + }, + { + "id": "adabots", + "color": "#1f77b4", + "desc": "Learn Ada by programming Minecraft robots" + }, + { + "id": "system_random", + "color": "#1f77b4", + "desc": "Minimal library to retrieve random data from system sources" + }, + { + "id": "utilada_aws", + "color": "#1f77b4", + "desc": "Utility Library REST support on top of AWS" + }, + { + "id": "rejuvenation", + "color": "#1f77b4", + "desc": "Analysis and manipulation of Ada code based on concrete patterns" + }, + { + "id": "utilada_xml", + "color": "#1f77b4", + "desc": "Utility Library serialization with XML/Ada" + }, + { + "id": "mandelbrot_ascii", + "color": "#1f77b4", + "desc": "Mandelbrot renderer using Unicode glyphs" + }, + { + "id": "remoteio", + "color": "darkcyan", + "desc": "Remote I/O Protocol Client Library for GNAT Ada" + }, + { + "id": "servletada_unit", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (Testing framework)" + }, + { + "id": "dependency_graph_extractor", + "color": "#1f77b4", + "desc": "Extract dependency information from Ada projects" + }, + { + "id": "ado_postgresql", + "color": "#1f77b4", + "desc": "Ada Database Objects (PostgreSQL)" + }, + { + "id": "gnatcoll_gmp", + "color": "#1f77b4", + "desc": "GNAT Components Collection - GNU Multiple Precision Arithmetic binding" + }, + { + "id": "audio_base", + "color": "#1f77b4", + "desc": "Basic Ada packages for audio applications" + }, + { + "id": "edc_client", + "color": "darkcyan", + "desc": "Client library for: github.com/hgrodriguez/embedded-dashboard-console" + }, + { + "id": "startup_gen", + "color": "darkcyan", + "desc": "Generates startup files (crt0 and linker script)" + }, + { + "id": "littlefs", + "color": "darkcyan", + "desc": "Ada/SPARK binding for the LittleFS flash embedded filesystem" + }, + { + "id": "pico_bsp", + "color": "darkcyan", + "desc": "Board support package for Raspberry Pi Pico" + }, + { + "id": "gnatcoll", + "color": "#1f77b4", + "desc": "GNAT Components Collection - Core packages" + }, + { + "id": "emacs_gpr_query", + "color": "#1f77b4", + "desc": "Emacs xref backend using information output by GNAT compiler." + }, + { + "id": "gnatcoll_python", + "color": "#1f77b4", + "desc": "GNAT Components Collection - python2 binding" + }, + { + "id": "progress_indicators", + "color": "#1f77b4", + "desc": "Ways of displaying progress in command line tools." + }, + { + "id": "orka_opengl", + "color": "#1f77b4", + "desc": "OpenGL 4.6 backend for the Orka rendering engine" + }, + { + "id": "euler_tools", + "color": "#1f77b4", + "desc": "Assortment of mathematical functions to solve Project Euler problems." + }, + { + "id": "ado_sqlite", + "color": "#1f77b4", + "desc": "Ada Database Objects (SQLite)" + }, + { + "id": "loga", + "color": "#1f77b4", + "desc": "Simple library for simple logging. Like npm package \"debug\", but for Ada" + }, + { + "id": "matreshka_amf_utp", + "color": "#1f77b4", + "desc": "The UML Testing Profile for AMF" + }, + { + "id": "linenoise_ada", + "color": "#1f77b4", + "desc": "Bindings to the Linenoise line editing library" + }, + { + "id": "weechat_ada", + "color": "#1f77b4", + "desc": "Ada 2012 library for WeeChat plug-ins" + }, + { + "id": "itsybitsy_bsp", + "color": "darkcyan", + "desc": "Board support package for Arduino ItsyBitsy" + }, + { + "id": "gnat_riscv64_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - RISC-V cross-compiler" + }, + { + "id": "labs_standalone", + "color": "#1f77b4", + "desc": "Ada exercices for training" + }, + { + "id": "gnoga", + "color": "#1f77b4", + "desc": "gnoga - The GNU Omnificent GUI for Ada" + }, + { + "id": "gnatcoll_readline", + "color": "#1f77b4", + "desc": "GNAT Components Collection - readline binding" + }, + { + "id": "wayland_client_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-client and the Wayland protocol" + }, + { + "id": "pygamer_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the AdaFruit PyGamer" + }, + { + "id": "gnat_native", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - Native" + }, + { + "id": "iso", + "color": "#1f77b4", + "desc": "ISO Standard references for Ada such as 1366 & 4217 (Country & Currency)" + }, + { + "id": "stopwatch", + "color": "#1f77b4", + "desc": "Keep track of elapsed time" + }, + { + "id": "dotenv", + "color": "#1f77b4", + "desc": "Loads environment variables from .env for Ada projects." + }, + { + "id": "lace_collada", + "color": "#1f77b4", + "desc": "A Collada parser." + }, + { + "id": "matreshka_spikedog_awsd", + "color": "#1f77b4", + "desc": "Web-application server. API library" + }, + { + "id": "program_proofs_in_spark", + "color": "purple", + "desc": "Programs from the book Program Proofs in SPARK" + }, + { + "id": "simple_components", + "color": "#1f77b4", + "desc": "Simple Components - A collection of support packages" + }, + { + "id": "hangman", + "color": "#1f77b4", + "desc": "Hangman game for the console" + }, + { + "id": "powerjoular", + "color": "#1f77b4", + "desc": "Monitoring the power consumption of multiple platforms and processes" + }, + { + "id": "orka_tensors_gpu", + "color": "#1f77b4", + "desc": "Tensors using compute shaders on the GPU" + }, + { + "id": "matreshka_amf", + "color": "#1f77b4", + "desc": "Implementation of OMG's Meta Object Facility (MOF)" + }, + { + "id": "ansiada", + "color": "#1f77b4", + "desc": "ANSI escape sequences" + }, + { + "id": "cbsg", + "color": "#1f77b4", + "desc": "Corporate Bullshit Generator library" + }, + { + "id": "brackelib", + "color": "#1f77b4", + "desc": "Library which contains various utility packages." + }, + { + "id": "epoll", + "color": "#1f77b4", + "desc": "Linux epoll binding" + }, + { + "id": "security", + "color": "#1f77b4", + "desc": "Security Library for HTTP client and server with OAuth2 support" + }, + { + "id": "spoon", + "color": "#1f77b4", + "desc": "Use posix_spawn() to spawn processes without forking" + }, + { + "id": "atari_exe_tools", + "color": "#1f77b4", + "desc": "Atari tools for for handling EXE-files" + }, + { + "id": "getopt", + "color": "#1f77b4", + "desc": "POSIX getopt(3) for Ada" + }, + { + "id": "b2ssum", + "color": "#1f77b4", + "desc": "BLAKE2s file hash utility" + }, + { + "id": "raspberry_bsp", + "color": "#1f77b4", + "desc": "Board Support package for Raspberry PI v1, v2 and B+" + }, + { + "id": "matreshka_servlet", + "color": "#1f77b4", + "desc": "Servlet API" + }, + { + "id": "wayland_cursor_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-cursor" + }, + { + "id": "wayland_protocols_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for various Wayland protocols" + }, + { + "id": "openapi_server", + "color": "#1f77b4", + "desc": "OpenAPI library to build REST server applications" + }, + { + "id": "evdev", + "color": "#1f77b4", + "desc": "Library for input devices and force-feedback using Linux' evdev API" + }, + { + "id": "yeison", + "color": "#1f77b4", + "desc": "A JSON-like data structure using Ada 2022 features" + }, + { + "id": "sparknacl", + "color": "purple", + "desc": "Verified SPARK 2014 re-implementation of TweetNaCl cryptographic library" + }, + { + "id": "wordle", + "color": "#1f77b4", + "desc": "Wordle for the terminal" + }, + { + "id": "felix", + "color": "#1f77b4", + "desc": "X/Open Native Language System (NLS) for Ada" + }, + { + "id": "openglada", + "color": "#1f77b4", + "desc": "Thick Ada binding for OpenGL" + }, + { + "id": "ini_files", + "color": "#1f77b4", + "desc": "A standalone, portable Ada package for configuration files" + }, + { + "id": "emojis", + "color": "#1f77b4", + "desc": "A library to replace names between colons with emojis" + }, + { + "id": "matreshka_amf_dd", + "color": "#1f77b4", + "desc": "Diagram Definition (DD) specification support for AMF" + }, + { + "id": "matreshka_spikedog_core", + "color": "#1f77b4", + "desc": "Web-application server. Implementation library" + }, + { + "id": "dashera", + "color": "#1f77b4", + "desc": "DASHER Terminal Emulator" + }, + { + "id": "cortex_m", + "color": "darkcyan", + "desc": "Drivers for Cortex-M micro-controllers (NVIC, SysTick, etc.)" + }, + { + "id": "lace_swig", + "color": "#1f77b4", + "desc": "Provides packages required by bindings produced by the 'swig4ada' tool." + }, + { + "id": "mcp2221", + "color": "darkcyan", + "desc": "MCP2221 USB Raw HID I/O Expander Library for GNAT Ada" + }, + { + "id": "gnatprove", + "color": "#1f77b4", + "desc": "Automatic formal verification of SPARK code" + }, + { + "id": "spawn_glib", + "color": "#1f77b4", + "desc": "A simple library to spawn processes and communicate with them." + }, + { + "id": "task_coroutines", + "color": "#1f77b4", + "desc": "Coroutines and generators using only standard tasking features" + }, + { + "id": "scripted_testing", + "color": "#1f77b4", + "desc": "Integration testing" + }, + { + "id": "tash", + "color": "#1f77b4", + "desc": "Binding to Tcl/Tk" + }, + { + "id": "mos6502_create_led", + "color": "#1f77b4", + "desc": "Create ROM with little program" + }, + { + "id": "ada_voxel_space_demo", + "color": "#1f77b4", + "desc": "Voxel Space render engine demo in Ada" + }, + { + "id": "sha2", + "color": "#1f77b4", + "desc": "Secure Hash Algorithm 2 implemented in Ada" + }, + { + "id": "simple_regex", + "color": "#1f77b4", + "desc": "Port of Rob Pike's simple regex from the Practice of Programming." + }, + { + "id": "lace", + "color": "#1f77b4", + "desc": "Contains a set of low level re-usable Ada components." + }, + { + "id": "emacs_wisi", + "color": "#1f77b4", + "desc": "Ada code for Emacs wisi ELPA package" + }, + { + "id": "zlib_ada", + "color": "#1f77b4", + "desc": "ZLib for Ada thick binding" + }, + { + "id": "adayaml", + "color": "#1f77b4", + "desc": "Experimental YAML 1.3 implementation in Ada" + }, + { + "id": "gnat_avr_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - AVR cross-compiler" + }, + { + "id": "jupyter_kernel", + "color": "#1f77b4", + "desc": "Jupyter Kernel for Ada" + }, + { + "id": "matreshka_amf_ocl", + "color": "#1f77b4", + "desc": "The UML OCL for AMF" + }, + { + "id": "blake2s", + "color": "purple", + "desc": "SPARK83 implementation of the BLAKE2s hash function" + }, + { + "id": "utilada_curl", + "color": "#1f77b4", + "desc": "Utility Library REST support on top of CURL" + }, + { + "id": "atomic", + "color": "purple", + "desc": "Standalone Ada/SPARK bindings to GCC atomic built-ins" + }, + { + "id": "matreshka_xml", + "color": "#1f77b4", + "desc": "Library to manipulate with XML streams and documents" + }, + { + "id": "orka_plugin_terrain", + "color": "#1f77b4", + "desc": "Orka plug-in for adaptive tessellated flattened spheroids" + }, + { + "id": "excel_writer", + "color": "#1f77b4", + "desc": "Produce Excel spreadsheets" + }, + { + "id": "freetypeada", + "color": "#1f77b4", + "desc": "Thick binding to the FreeType library" + }, + { + "id": "ado_all", + "color": "#1f77b4", + "desc": "Ada Database Objects (All drivers)" + }, + { + "id": "ada_pretty", + "color": "#1f77b4", + "desc": "Ada Pretty Printer Library" + }, + { + "id": "gnat_arm_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - ARM cross-compiler" + }, + { + "id": "lace_bullet", + "color": "#1f77b4", + "desc": "Provides a thin Ada binding to the 'bullet' C++ project." + }, + { + "id": "inotify", + "color": "#1f77b4", + "desc": "Monitor filesystem events using Linux' inotify API" + }, + { + "id": "tiny_text", + "color": "#1f77b4", + "desc": "Low resolution bitmap font with a small memory footprint" + }, + { + "id": "xdg_base_dir", + "color": "#1f77b4", + "desc": "XDG Base Directory Specification" + }, + { + "id": "langkit_support", + "color": "#1f77b4", + "desc": "Runtime support library for Langkit-generated libraries" + }, + { + "id": "emacs_ada_mode", + "color": "#1f77b4", + "desc": "Parser for Emacs ada-mode" + }, + { + "id": "jwt", + "color": "#1f77b4", + "desc": "JSON Web Token (JWT) implementation in Ada" + }, + { + "id": "libadalang", + "color": "#1f77b4", + "desc": "Ada semantic analysis library" + }, + { + "id": "rclada_examples", + "color": "#1f77b4", + "desc": "ROS2 Ada Client Library - Examples" + }, + { + "id": "hello", + "color": "#1f77b4", + "desc": "'Hello, world!' demonstration project" + }, + { + "id": "avrada_lib", + "color": "darkcyan", + "desc": "Library of drivers for AVR microcontrollers" + }, + { + "id": "ncursesada", + "color": "#1f77b4", + "desc": "Ada binding to the ncurses text user interface library" + }, + { + "id": "spawn", + "color": "#1f77b4", + "desc": "A simple library to spawn processes and communicate with them." + }, + { + "id": "wikiada", + "color": "#1f77b4", + "desc": "Wiki Engine with parser and renderer for several wiki syntaxes" + }, + { + "id": "lace_gel", + "color": "#1f77b4", + "desc": "A 2D/3D game engine library (GEL)." + }, + { + "id": "mos6502_create_nop", + "color": "#1f77b4", + "desc": "Create NOP ROM" + }, + { + "id": "servletada_ews", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (EWS)" + }, + { + "id": "semantic_versioning", + "color": "#1f77b4", + "desc": "Semantic Versioning in Ada" + }, + { + "id": "lace_xml", + "color": "#1f77b4", + "desc": "Provides simple XML read/write support." + }, + { + "id": "gnatcoll_syslog", + "color": "#1f77b4", + "desc": "GNAT Components Collection - syslog binding" + }, + { + "id": "vss", + "color": "#1f77b4", + "desc": "Advanced string and text manipulation with Unicode support" + }, + { + "id": "bingada", + "color": "#1f77b4", + "desc": "Bingo application in GTKAda with sound in ASFML" + }, + { + "id": "virtapu", + "color": "#1f77b4", + "desc": "A virtual Audio Processing Unit to simulate 8-bit era game sounds" + }, + { + "id": "orka_plugin_atmosphere", + "color": "#1f77b4", + "desc": "Orka plug-in for precomputed atmospheric scattering" + }, + { + "id": "slip", + "color": "purple", + "desc": "SLIP Protocol Implementation" + }, + { + "id": "canberra_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libcanberra" + }, + { + "id": "templates_parser", + "color": "#1f77b4", + "desc": "Templates Parser: File generation from templates in Ada" + }, + { + "id": "gnatcoll_sql", + "color": "#1f77b4", + "desc": "GNAT Components Collection - sql" + }, + { + "id": "gtkada", + "color": "#1f77b4", + "desc": "An Ada graphical toolkit based on Gtk+" + }, + { + "id": "gnatcoll_python3", + "color": "#1f77b4", + "desc": "GNAT Components Collection - python3 binding" + }, + { + "id": "gpr_unit_provider", + "color": "#1f77b4", + "desc": "GNAT Project File Library" + }, + { + "id": "matreshka_sql_oracle", + "color": "#1f77b4", + "desc": "Oracle DB binding for Ada" + }, + { + "id": "matreshka_sql_sqlite3", + "color": "#1f77b4", + "desc": "SQLite binding for Ada" + }, + { + "id": "tiled_code_gen", + "color": "#1f77b4", + "desc": "Generate GESTE data from Tiled maps and tilesets" + }, + { + "id": "ppag", + "color": "#1f77b4", + "desc": "First steps with Gnoga" + }, + { + "id": "iterators", + "color": "#1f77b4", + "desc": "Functional iterators a la Rust" + }, + { + "id": "garlic", + "color": "#1f77b4", + "desc": "GNAT Library for Ada Distributed Environment (garlic)" + }, + { + "id": "xia", + "color": "#1f77b4", + "desc": "Implements XPath 1.0 in Ada" + }, + { + "id": "simh_tapes", + "color": "#1f77b4", + "desc": "Library to handle SimH Standard magnetic tape image files" + }, + { + "id": "orka_plugin_archives", + "color": "#1f77b4", + "desc": "Orka plug-in to load resources from Zip archives" + }, + { + "id": "uri_mime", + "color": "#1f77b4", + "desc": "URI & MIME Type Parsing and Manupulation" + }, + { + "id": "florist_blady", + "color": "#1f77b4", + "desc": "POSIX Ada Bindings" + }, + { + "id": "lace_shared", + "color": "#1f77b4", + "desc": "Default settings for GPR files in the Lace project." + }, + { + "id": "workers", + "color": "#1f77b4", + "desc": "Simple task pool for parallelization" + }, + { + "id": "muntsos_raspberrypi1", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi1 targets" + }, + { + "id": "lace_gel_full_demo", + "color": "#1f77b4", + "desc": "A demo of most of GEL's features." + }, + { + "id": "anagram", + "color": "#1f77b4", + "desc": "Grammar handling and parser generation Ada library" + }, + { + "id": "libgpr2", + "color": "#1f77b4", + "desc": "Parser for GPR Project File" + }, + { + "id": "spdx", + "color": "#1f77b4", + "desc": "SPDX License Expression Validator" + }, + { + "id": "base64", + "color": "#1f77b4", + "desc": "Base64 encoding/decoding routines" + }, + { + "id": "matreshka_sql_mysql", + "color": "#1f77b4", + "desc": "MySQL binding for Ada" + }, + { + "id": "lace_physics", + "color": "#1f77b4", + "desc": "Provides 2D/3D rigid body dynamics simulation." + }, + { + "id": "awa_unit", + "color": "#1f77b4", + "desc": "Ada Web Application (Testing framework)" + }, + { + "id": "axmpp", + "color": "#1f77b4", + "desc": "XMPP client library in Ada" + }, + { + "id": "adl_middleware", + "color": "darkcyan", + "desc": "Middleware layer of the Ada Drivers Library project" + }, + { + "id": "gnatcoll_lzma", + "color": "#1f77b4", + "desc": "GNAT Components Collection - lzma binding" + }, + { + "id": "gnatcoll_iconv", + "color": "#1f77b4", + "desc": "GNAT Components Collection - iconv binding" + }, + { + "id": "orka", + "color": "#1f77b4", + "desc": "OpenGL 4.6 rendering kernel written in Ada 2012" + }, + { + "id": "avltrees", + "color": "#1f77b4", + "desc": "Threaded AVL trees library for Ada" + }, + { + "id": "sdlada", + "color": "#1f77b4", + "desc": "Ada 2012 SDL 2.x bindings." + }, + { + "id": "keystoreada", + "color": "#1f77b4", + "desc": "Ada Keystore" + }, + { + "id": "geste_examples", + "color": "#1f77b4", + "desc": "Example for the GESTE game engine" + }, + { + "id": "zeromq_ada", + "color": "#1f77b4", + "desc": "An Ada-binding the \u00d8MQ library" + }, + { + "id": "libadalang_tools", + "color": "#1f77b4", + "desc": "Ada semantic analysis library extension and tools" + }, + { + "id": "clic", + "color": "#1f77b4", + "desc": "Command Line Interface Components" + }, + { + "id": "matreshka_spikedog_api", + "color": "#1f77b4", + "desc": "Web-application server. API library" + }, + { + "id": "linux_hal", + "color": "darkcyan", + "desc": "HAL drivers for Linux userspace" + }, + { + "id": "tresses", + "color": "darkcyan", + "desc": "Synth library inspired by Mutable Instruments Braids" + }, + { + "id": "aws", + "color": "#1f77b4", + "desc": "Ada Web Server" + }, + { + "id": "nrf5x_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the Nordic nRF5X micro-controller family" + }, + { + "id": "libhello", + "color": "#1f77b4", + "desc": "Basic library demonstration project" + }, + { + "id": "basalt", + "color": "purple", + "desc": "Collection of formally verified building blocks" + }, + { + "id": "eeprom_i2c", + "color": "darkcyan", + "desc": "EEPROM I2C drivers library for embedded platforms" + }, + { + "id": "uri_ada", + "color": "#1f77b4", + "desc": "Processing of URI strings" + }, + { + "id": "wayland_egl_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-egl" + }, + { + "id": "c_strings", + "color": "#1f77b4", + "desc": "Convenience subprograms to interact with C strings" + }, + { + "id": "bbqueue", + "color": "purple", + "desc": "DMA friendly lock-free BipBuffer" + }, + { + "id": "rclada", + "color": "#1f77b4", + "desc": "ROS2 Ada Client Library" + }, + { + "id": "servletada_aws", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (AWS)" + }, + { + "id": "openai", + "color": "#1f77b4", + "desc": "OpenAI client library" + }, + { + "id": "dg_loada", + "color": "#1f77b4", + "desc": "dg_loada loads (restores) legacy DG AOS/VS DUMP_II files" + }, + { + "id": "ada_language_server", + "color": "#1f77b4", + "desc": "An implementation of the Microsoft's Language Server Protocol for Ada" + }, + { + "id": "asis", + "color": "#1f77b4", + "desc": "Ada Semantic Interface Specification or ASIS (library part)" + }, + { + "id": "lace_gel_animation_demo", + "color": "#1f77b4", + "desc": "A demo of GEL's human animation." + }, + { + "id": "emacs_wisitoken_grammar_mode", + "color": "#1f77b4", + "desc": "parser for Emacs wisitoken-grammar mode" + }, + { + "id": "uxstrings", + "color": "#1f77b4", + "desc": "Unicode Extended Strings utilities" + }, + { + "id": "shoot_n_loot", + "color": "#1f77b4", + "desc": "Platform game for the AdaFruit PyGamer console" + }, + { + "id": "matreshka_league", + "color": "#1f77b4", + "desc": "League - universal string library. Part of Matreshka framework" + }, + { + "id": "samd51_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the SAMD51 micro-controller family" + }, + { + "id": "embedded_components", + "color": "darkcyan", + "desc": "Platform agnostic drivers to interface external components" + }, + { + "id": "umwi", + "color": "#1f77b4", + "desc": "Unicode Monospace Width Information" + }, + { + "id": "itsybitsy_rp2040_bsp", + "color": "darkcyan", + "desc": "Board support package for Arduino ItsyBitsy RP2040" + }, + { + "id": "wordlelib", + "color": "#1f77b4", + "desc": "Library to track progress in a game of Wordle" + }, + { + "id": "dcf", + "color": "#1f77b4", + "desc": "Ada 2012 library for document container files, Zip-based archive files" + }, + { + "id": "lvgl_ada", + "color": "darkcyan", + "desc": "Bindings for the LVGL embedded GUI framework" + }, + { + "id": "akt", + "color": "#1f77b4", + "desc": "Ada Keystore Tool" + }, + { + "id": "automate", + "color": "#1f77b4", + "desc": "Ada finite-state machine generator" + }, + { + "id": "labs_radar", + "color": "#1f77b4", + "desc": "Introductory Ada exercises based around a fake radar codebase" + }, + { + "id": "stephes_ada_library", + "color": "#1f77b4", + "desc": "Stephe's Ada library; miscellaneous useful stuff." + }, + { + "id": "orka_simd", + "color": "#1f77b4", + "desc": "Bindings for x86 SIMD extensions like SSE, AVX2, FMA, F16C" + }, + { + "id": "gnatcov", + "color": "#1f77b4", + "desc": "Coverage Analysis Tool" + }, + { + "id": "apdf", + "color": "#1f77b4", + "desc": "Portable package for producing dynamically PDF documents" + }, + { + "id": "lace_math", + "color": "#1f77b4", + "desc": "Provides an Ada package family covering pure and applied mathematics." + }, + { + "id": "cobs", + "color": "purple", + "desc": "Consistent Overhead Byte Stuffing (COBS) encoder/decoder" + }, + { + "id": "orka_types", + "color": "#1f77b4", + "desc": "Data types for Orka" + }, + { + "id": "rtmidi", + "color": "#1f77b4", + "desc": "Ada \"middleweight\" binding for the rtMIDI library" + }, + { + "id": "tiny_rp2040_bsp", + "color": "darkcyan", + "desc": "Board support package for Pimoroni Tiny RP2040" + }, + { + "id": "labs_solar_system", + "color": "#1f77b4", + "desc": "A set of SDL-based exercises to learn Ada" + }, + { + "id": "get_password", + "color": "#1f77b4", + "desc": "Read a string without echo, in password-like style" + }, + { + "id": "vanilla", + "color": "#1f77b4", + "desc": "Simple replace in character stream" + }, + { + "id": "minimal_containers", + "color": "#1f77b4", + "desc": "Much reduced version of Ada.Containers (bounded Maps, Vectors)" + }, + { + "id": "ada_lua", + "color": "#1f77b4", + "desc": "An Ada binding for lua" + }, + { + "id": "spark_unbound", + "color": "purple", + "desc": "Unbound data structures in Ada-Spark" + }, + { + "id": "pbkdf2", + "color": "#1f77b4", + "desc": "PBKDF2 implemented in Ada" + }, + { + "id": "florist_blady", + "color": "#1f77b4", + "desc": "POSIX Ada Bindings" + }, + { + "id": "toml_slicer", + "color": "#1f77b4", + "desc": "Edit TOML files directly without parsing" + }, + { + "id": "xmlada", + "color": "#1f77b4", + "desc": "The XML/Ada toolkit" + }, + { + "id": "matreshka_soap", + "color": "#1f77b4", + "desc": "Framework for work with SOAP 1.2" + }, + { + "id": "gnat_math_extensions", + "color": "#1f77b4", + "desc": "Eigenvalues, eigenvectors for non-symmetric, non-Hermitian matrices" + }, + { + "id": "rxada", + "color": "#1f77b4", + "desc": "Experimental implementation of ReactiveX in Ada" + }, + { + "id": "gnatcoll_sqlite", + "color": "#1f77b4", + "desc": "GNAT Components Collection - sqlite" + }, + { + "id": "gprbuild", + "color": "#1f77b4", + "desc": "The GPRBuild Ada/multilanguage build tool" + }, + { + "id": "utilada", + "color": "#1f77b4", + "desc": "Utility Library with streams, processes, logs, serialization, encoders" + }, + { + "id": "orka_egl", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for EGL" + }, + { + "id": "matreshka_amf_mofext", + "color": "#1f77b4", + "desc": "The UML mofext for AMF" + }, + { + "id": "minisamd51_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the MiniSAM D51" + }, + { + "id": "pico_examples", + "color": "darkcyan", + "desc": "Examples for Ada on the Raspberry Pi Pico" + }, + { + "id": "webdriver", + "color": "#1f77b4", + "desc": "Web Browser control API" + }, + { + "id": "partord", + "color": "#1f77b4", + "desc": "Small library for sorting with partial orders" + }, + { + "id": "hungarian", + "color": "#1f77b4", + "desc": "Ada wrapper for the fast Stachniss' Hungarian solver" + }, + { + "id": "utilada_lzma", + "color": "#1f77b4", + "desc": "Utility Library streams with LZMA support" + }, + { + "id": "servletada", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (Core)" + }, + { + "id": "mold_lib", + "color": "#1f77b4", + "desc": "Meta-variable Operations for Lean Development (lib)" + }, + { + "id": "si_units", + "color": "#1f77b4", + "desc": "Pretty print physical values in properly scaled metric (SI) units." + }, + { + "id": "lal_highlight", + "color": "#1f77b4", + "desc": "Simple code highlighters based on Libadalang" + }, + { + "id": "optional", + "color": "#1f77b4", + "desc": "Optional values a la java.lang.Optional" + }, + { + "id": "matreshka_sql_firebird", + "color": "#1f77b4", + "desc": "Firebird SQL binding for Ada" + }, + { + "id": "cashe", + "color": "#1f77b4", + "desc": "A fixed-point decimal money library written in Ada." + }, + { + "id": "serverfaces_unit", + "color": "#1f77b4", + "desc": "Web Server Faces JSR 252, JSR 314 and JSR 344 (Testing framework)" + }, + { + "id": "orka_plugin_gltf", + "color": "#1f77b4", + "desc": "Orka plug-in for loading glTF models" + }, + { + "id": "saatana", + "color": "purple", + "desc": "SPARK/Ada Algorithms Targeting Advanced Network Applications" + }, + { + "id": "gnatcoll_xref", + "color": "#1f77b4", + "desc": "GNAT Components Collection - xref" + }, + { + "id": "svd2ada", + "color": "#1f77b4", + "desc": "Ada binding generator from CMSIS-SVD hardware descriptions files" + }, + { + "id": "ada_toml", + "color": "#1f77b4", + "desc": "TOML parser for Ada" + }, + { + "id": "geo_coords", + "color": "#1f77b4", + "desc": "Geo coordinates calculation for determining Location, Distance, Bearing" + }, + { + "id": "xoshiro", + "color": "purple", + "desc": "xoshiro128++ and xoshiro256++ pseudo-random number generators" + }, + { + "id": "wisitoken", + "color": "#1f77b4", + "desc": "Generalized error correcting LALR and packrat parser generator" + }, + { + "id": "socketcan", + "color": "#1f77b4", + "desc": "An Ada language binding to SocketCAN for GNU/Linux systems" + }, + { + "id": "are", + "color": "#1f77b4", + "desc": "Advanced Resource Embedder" + }, + { + "id": "audio_wavefiles", + "color": "#1f77b4", + "desc": "Ada Wavefile Library" + }, + { + "id": "esp_idf", + "color": "darkcyan", + "desc": "Ada binding for the ESP-IDF SDK" + }, + { + "id": "septum", + "color": "#1f77b4", + "desc": "An interactive context-based text search tool for large codebases." + }, + { + "id": "avrada_rts", + "color": "darkcyan", + "desc": "Minimal run time system (RTS) for AVR 8bit controllers" + }, + { + "id": "matreshka_soap_wsse", + "color": "#1f77b4", + "desc": "WS-Security 1.1 implementation for SOAP 1.2" + }, + { + "id": "dir_iterators", + "color": "#1f77b4", + "desc": "Ways of moving around directory trees" + }, + { + "id": "lace_opengl", + "color": "#1f77b4", + "desc": "Provides an openGL engine." + }, + { + "id": "honki_tonks_zivilisationen", + "color": "#1f77b4", + "desc": "The Code of my 4X turn-based strategy game." + }, + { + "id": "hmac", + "color": "#1f77b4", + "desc": "HMAC implemented in Ada" + }, + { + "id": "muntsos_beaglebone", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for BeagleBone targets" + }, + { + "id": "muntsos_raspberrypi2", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi2 targets" + }, + { + "id": "hal", + "color": "darkcyan", + "desc": "Hardware Abstraction Layer (HAL)" + }, + { + "id": "trendy_terminal", + "color": "#1f77b4", + "desc": "Terminal options, setup, tab completion and hinting." + }, + { + "id": "ajunitgen", + "color": "#1f77b4", + "desc": "Generator of JUnit-compatible XML reports" + }, + { + "id": "libadalang2xml", + "color": "#1f77b4", + "desc": "Generates XML for Ada source, using libadalang." + }, + { + "id": "awa", + "color": "#1f77b4", + "desc": "Ada Web Application" + }, + { + "id": "admpfr", + "color": "#1f77b4", + "desc": "Ada bindings for MPFR" + }, + { + "id": "specfun", + "color": "#1f77b4", + "desc": "Native Ada library of special functions (e.g., beta, gamma)" + }, + { + "id": "aunit", + "color": "#1f77b4", + "desc": "Ada unit test framework" + }, + { + "id": "geste", + "color": "#1f77b4", + "desc": "GEneric Sprite and Tile Engine" + }, + { + "id": "rsfile", + "color": "#1f77b4", + "desc": "Randomly pick a file with probability proportional to its size" + }, + { + "id": "openglada_text", + "color": "#1f77b4", + "desc": "Text rendering library for OpenGLAda" + }, + { + "id": "lvgl_ada_examples", + "color": "#1f77b4", + "desc": "Examples for the LVGL embedded GUI framework Ada binding" + }, + { + "id": "libsimpleio", + "color": "darkcyan", + "desc": "Linux Simple I/O Library for GNAT Ada" + }, + { + "id": "lvgl_ada_simulator", + "color": "#1f77b4", + "desc": "Native simulator of an LVGL display" + }, + { + "id": "adacl", + "color": "#1f77b4", + "desc": "Ada Class Library" + }, + { + "id": "orka_tensors_cpu", + "color": "#1f77b4", + "desc": "Tensors using SIMD instructions on the CPU" + }, + { + "id": "midi", + "color": "darkcyan", + "desc": "Library to encode and decode MIDI messages" + }, + { + "id": "stm32f0x2_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for stm32f0x2 mcu family" + }, + { + "id": "j2ada", + "color": "#1f77b4", + "desc": "Almost Java to Ada translator" + }, + { + "id": "spat", + "color": "purple", + "desc": "SPAT - SPARK Proof Analysis Tool" + }, + { + "id": "mos6502_create_reset", + "color": "#1f77b4", + "desc": "Create ROM with reset vector" + } + ], + "links": [ + { + "source": "rp2040_hal", + "target": "atomic", + "value": 1 + }, + { + "source": "rp2040_hal", + "target": "cortex_m", + "value": 1 + }, + { + "source": "rp2040_hal", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "rp2040_hal", + "target": "hal", + "value": 1 + }, + { + "source": "rp2040_hal", + "target": "usb_embedded", + "value": 1 + }, + { + "source": "ado", + "target": "utilada", + "value": 1 + }, + { + "source": "ado", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "mage_hat", + "target": "mage", + "value": 1 + }, + { + "source": "minisamd51_example", + "target": "minisamd51_bsp", + "value": 1 + }, + { + "source": "bb_pico_bsp", + "target": "embedded_components", + "value": 1 + }, + { + "source": "bb_pico_bsp", + "target": "lvgl_ada", + "value": 1 + }, + { + "source": "bb_pico_bsp", + "target": "pico_bsp", + "value": 1 + }, + { + "source": "zipdcf", + "target": "dcf", + "value": 1 + }, + { + "source": "openglada_glfw", + "target": "openglada", + "value": 1 + }, + { + "source": "openglada_images", + "target": "gid", + "value": 1 + }, + { + "source": "openglada_images", + "target": "openglada", + "value": 1 + }, + { + "source": "mage", + "target": "sdlada", + "value": 1 + }, + { + "source": "ashell", + "target": "florist_blady", + "value": 1 + }, + { + "source": "elevator", + "target": "gnatprove", + "value": 1 + }, + { + "source": "lmdb_ada", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_omp", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "aicwl", + "target": "gtkada", + "value": 1 + }, + { + "source": "eagle_lander", + "target": "gtkada", + "value": 1 + }, + { + "source": "serverfaces", + "target": "security", + "value": 1 + }, + { + "source": "serverfaces", + "target": "servletada", + "value": 1 + }, + { + "source": "serverfaces", + "target": "utilada", + "value": 1 + }, + { + "source": "microbit_examples", + "target": "microbit_bsp", + "value": 1 + }, + { + "source": "utilada_unit", + "target": "utilada", + "value": 1 + }, + { + "source": "emacs_gpr_mode", + "target": "emacs_wisi", + "value": 1 + }, + { + "source": "emacs_gpr_mode", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emacs_gpr_mode", + "target": "wisitoken", + "value": 1 + }, + { + "source": "ltp_305", + "target": "hal", + "value": 1 + }, + { + "source": "ews", + "target": "xmlada", + "value": 1 + }, + { + "source": "matreshka_sql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "vaton", + "target": "spark_unbound", + "value": 1 + }, + { + "source": "wordlist", + "target": "aaa", + "value": 1 + }, + { + "source": "wordlist", + "target": "ada_toml", + "value": 1 + }, + { + "source": "wordlist", + "target": "resources", + "value": 1 + }, + { + "source": "markdown", + "target": "vss", + "value": 1 + }, + { + "source": "protobuf", + "target": "ada_pretty", + "value": 1 + }, + { + "source": "protobuf", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "libgpr", + "target": "xmlada", + "value": 1 + }, + { + "source": "gnatcoll_zlib", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "orka_tools", + "target": "orka", + "value": 1 + }, + { + "source": "orka_tools", + "target": "orka_awt", + "value": 1 + }, + { + "source": "orka_tools", + "target": "orka_plugin_gltf", + "value": 1 + }, + { + "source": "usb_embedded", + "target": "bbqueue", + "value": 1 + }, + { + "source": "usb_embedded", + "target": "hal", + "value": 1 + }, + { + "source": "minirest", + "target": "aaa", + "value": 1 + }, + { + "source": "orka_numerics", + "target": "orka_types", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "libadalang", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "markdown", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "vss", + "value": 1 + }, + { + "source": "orka_awt", + "target": "evdev", + "value": 1 + }, + { + "source": "orka_awt", + "target": "inotify", + "value": 1 + }, + { + "source": "orka_awt", + "target": "orka_egl", + "value": 1 + }, + { + "source": "orka_awt", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "orka_awt", + "target": "wayland_cursor_ada", + "value": 1 + }, + { + "source": "orka_awt", + "target": "wayland_egl_ada", + "value": 1 + }, + { + "source": "orka_awt", + "target": "wayland_protocols_ada", + "value": 1 + }, + { + "source": "orka_awt", + "target": "orka", + "value": 1 + }, + { + "source": "orka_awt", + "target": "orka_numerics", + "value": 1 + }, + { + "source": "orka_awt", + "target": "orka_tensors_cpu", + "value": 1 + }, + { + "source": "orka_awt", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "lace_c_math", + "target": "lace_math", + "value": 1 + }, + { + "source": "lace_c_math", + "target": "lace_swig", + "value": 1 + }, + { + "source": "lace_box2d", + "target": "lace_c_math", + "value": 1 + }, + { + "source": "elada", + "target": "utilada", + "value": 1 + }, + { + "source": "avrada_mcu", + "target": "avrada_rts", + "value": 1 + }, + { + "source": "avrada_mcu", + "target": "gnat_avr_elf", + "value": 1 + }, + { + "source": "gnatcoll_postgres", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_postgres", + "target": "gnatcoll_sql", + "value": 1 + }, + { + "source": "play_2048", + "target": "asfml", + "value": 1 + }, + { + "source": "play_2048", + "target": "ada_toml", + "value": 1 + }, + { + "source": "dynamo", + "target": "ado_all", + "value": 1 + }, + { + "source": "dynamo", + "target": "ado_mysql", + "value": 1 + }, + { + "source": "dynamo", + "target": "ado_postgresql", + "value": 1 + }, + { + "source": "dynamo", + "target": "ado_sqlite", + "value": 1 + }, + { + "source": "dynamo", + "target": "elada", + "value": 1 + }, + { + "source": "dynamo", + "target": "libgpr", + "value": 1 + }, + { + "source": "dynamo", + "target": "security", + "value": 1 + }, + { + "source": "dynamo", + "target": "serverfaces", + "value": 1 + }, + { + "source": "dynamo", + "target": "servletada", + "value": 1 + }, + { + "source": "dynamo", + "target": "utilada", + "value": 1 + }, + { + "source": "dynamo", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "dynamo", + "target": "xmlada", + "value": 1 + }, + { + "source": "pygamer_simulator", + "target": "asfml", + "value": 1 + }, + { + "source": "pygamer_simulator", + "target": "hal", + "value": 1 + }, + { + "source": "gnatdoc", + "target": "gpr_unit_provider", + "value": 1 + }, + { + "source": "gnatdoc", + "target": "libadalang", + "value": 1 + }, + { + "source": "gnatdoc", + "target": "libgpr2", + "value": 1 + }, + { + "source": "gnatdoc", + "target": "markdown", + "value": 1 + }, + { + "source": "gnatdoc", + "target": "vss", + "value": 1 + }, + { + "source": "dummyserver", + "target": "json", + "value": 1 + }, + { + "source": "matreshka_fastcgi", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "keypadder", + "target": "aws", + "value": 1 + }, + { + "source": "keypadder", + "target": "ada_toml", + "value": 1 + }, + { + "source": "sh1107", + "target": "embedded_components", + "value": 1 + }, + { + "source": "matreshka_amf_uml", + "target": "matreshka_amf_dd", + "value": 1 + }, + { + "source": "matreshka_amf_uml", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "atari_atr_tools", + "target": "adacl", + "value": 1 + }, + { + "source": "matreshka_sql_postgresql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "openapi", + "target": "security", + "value": 1 + }, + { + "source": "openapi", + "target": "utilada", + "value": 1 + }, + { + "source": "openapi", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "wayland_ada_info", + "target": "wayland_protocols_ada", + "value": 1 + }, + { + "source": "ado_mysql", + "target": "ado", + "value": 1 + }, + { + "source": "microbit_bsp", + "target": "embedded_components", + "value": 1 + }, + { + "source": "microbit_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "microbit_bsp", + "target": "nrf5x_hal", + "value": 1 + }, + { + "source": "orka_transforms", + "target": "orka_simd", + "value": 1 + }, + { + "source": "orka_transforms", + "target": "orka_types", + "value": 1 + }, + { + "source": "rewriters", + "target": "libadalang", + "value": 1 + }, + { + "source": "rewriters", + "target": "rejuvenation", + "value": 1 + }, + { + "source": "adabots", + "target": "utilada_curl", + "value": 1 + }, + { + "source": "adabots", + "target": "json", + "value": 1 + }, + { + "source": "utilada_aws", + "target": "aws", + "value": 1 + }, + { + "source": "utilada_aws", + "target": "utilada", + "value": 1 + }, + { + "source": "rejuvenation", + "target": "libadalang", + "value": 1 + }, + { + "source": "utilada_xml", + "target": "utilada", + "value": 1 + }, + { + "source": "utilada_xml", + "target": "xmlada", + "value": 1 + }, + { + "source": "servletada_unit", + "target": "servletada", + "value": 1 + }, + { + "source": "servletada_unit", + "target": "utilada", + "value": 1 + }, + { + "source": "servletada_unit", + "target": "utilada_unit", + "value": 1 + }, + { + "source": "dependency_graph_extractor", + "target": "libadalang", + "value": 1 + }, + { + "source": "ado_postgresql", + "target": "ado", + "value": 1 + }, + { + "source": "gnatcoll_gmp", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "edc_client", + "target": "hal", + "value": 1 + }, + { + "source": "startup_gen", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "startup_gen", + "target": "libgpr", + "value": 1 + }, + { + "source": "startup_gen", + "target": "templates_parser", + "value": 1 + }, + { + "source": "pico_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "pico_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "gnatcoll", + "target": "libgpr", + "value": 1 + }, + { + "source": "emacs_gpr_query", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "emacs_gpr_query", + "target": "gnatcoll_sqlite", + "value": 1 + }, + { + "source": "emacs_gpr_query", + "target": "gnatcoll_xref", + "value": 1 + }, + { + "source": "gnatcoll_python", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "progress_indicators", + "target": "ansiada", + "value": 1 + }, + { + "source": "orka_opengl", + "target": "orka_egl", + "value": 1 + }, + { + "source": "orka_opengl", + "target": "orka_types", + "value": 1 + }, + { + "source": "ado_sqlite", + "target": "ado", + "value": 1 + }, + { + "source": "matreshka_amf_utp", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_utp", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "itsybitsy_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "itsybitsy_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "gnoga", + "target": "simple_components", + "value": 1 + }, + { + "source": "gnoga", + "target": "uxstrings", + "value": 1 + }, + { + "source": "gnatcoll_readline", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "wayland_client_ada", + "target": "wayland_ada_scanner", + "value": 1 + }, + { + "source": "pygamer_bsp", + "target": "cortex_m", + "value": 1 + }, + { + "source": "pygamer_bsp", + "target": "samd51_hal", + "value": 1 + }, + { + "source": "lace_collada", + "target": "lace_math", + "value": 1 + }, + { + "source": "lace_collada", + "target": "lace_xml", + "value": 1 + }, + { + "source": "matreshka_spikedog_awsd", + "target": "aws", + "value": 1 + }, + { + "source": "matreshka_spikedog_awsd", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_awsd", + "target": "matreshka_spikedog_core", + "value": 1 + }, + { + "source": "program_proofs_in_spark", + "target": "gnatprove", + "value": 1 + }, + { + "source": "orka_tensors_gpu", + "target": "orka", + "value": 1 + }, + { + "source": "orka_tensors_gpu", + "target": "orka_numerics", + "value": 1 + }, + { + "source": "orka_tensors_gpu", + "target": "orka_types", + "value": 1 + }, + { + "source": "matreshka_amf", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_amf", + "target": "matreshka_xml", + "value": 1 + }, + { + "source": "security", + "target": "utilada", + "value": 1 + }, + { + "source": "security", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "atari_exe_tools", + "target": "adacl", + "value": 1 + }, + { + "source": "b2ssum", + "target": "blake2s", + "value": 1 + }, + { + "source": "matreshka_servlet", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "wayland_cursor_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "wayland_protocols_ada", + "target": "wayland_ada_scanner", + "value": 1 + }, + { + "source": "wayland_protocols_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "openapi_server", + "target": "openapi", + "value": 1 + }, + { + "source": "openapi_server", + "target": "security", + "value": 1 + }, + { + "source": "openapi_server", + "target": "servletada", + "value": 1 + }, + { + "source": "openapi_server", + "target": "utilada", + "value": 1 + }, + { + "source": "openapi_server", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "wordle", + "target": "aaa", + "value": 1 + }, + { + "source": "wordle", + "target": "ansiada", + "value": 1 + }, + { + "source": "wordle", + "target": "wordlelib", + "value": 1 + }, + { + "source": "wordle", + "target": "wordlist", + "value": 1 + }, + { + "source": "matreshka_amf_dd", + "target": "matreshka_amf", + "value": 1 + }, + { + "source": "matreshka_amf_dd", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_core", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_core", + "target": "matreshka_spikedog_api", + "value": 1 + }, + { + "source": "dashera", + "target": "gtkada", + "value": 1 + }, + { + "source": "cortex_m", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "cortex_m", + "target": "hal", + "value": 1 + }, + { + "source": "spawn_glib", + "target": "gtkada", + "value": 1 + }, + { + "source": "scripted_testing", + "target": "tash", + "value": 1 + }, + { + "source": "ada_voxel_space_demo", + "target": "sdlada", + "value": 1 + }, + { + "source": "lace", + "target": "lace_shared", + "value": 1 + }, + { + "source": "emacs_wisi", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emacs_wisi", + "target": "wisitoken", + "value": 1 + }, + { + "source": "adayaml", + "target": "simple_components", + "value": 1 + }, + { + "source": "jupyter_kernel", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "jupyter_kernel", + "target": "spawn", + "value": 1 + }, + { + "source": "jupyter_kernel", + "target": "zeromq_ada", + "value": 1 + }, + { + "source": "matreshka_amf_ocl", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_ocl", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "utilada_curl", + "target": "utilada", + "value": 1 + }, + { + "source": "matreshka_xml", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "orka_plugin_terrain", + "target": "orka", + "value": 1 + }, + { + "source": "orka_plugin_terrain", + "target": "orka_plugin_atmosphere", + "value": 1 + }, + { + "source": "orka_plugin_terrain", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "ado_all", + "target": "ado_mysql", + "value": 1 + }, + { + "source": "ado_all", + "target": "ado_postgresql", + "value": 1 + }, + { + "source": "ado_all", + "target": "ado_sqlite", + "value": 1 + }, + { + "source": "ada_pretty", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "lace_bullet", + "target": "lace_c_math", + "value": 1 + }, + { + "source": "tiny_text", + "target": "hal", + "value": 1 + }, + { + "source": "langkit_support", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "langkit_support", + "target": "gnatcoll_gmp", + "value": 1 + }, + { + "source": "langkit_support", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "emacs_ada_mode", + "target": "emacs_wisi", + "value": 1 + }, + { + "source": "emacs_ada_mode", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emacs_ada_mode", + "target": "wisitoken", + "value": 1 + }, + { + "source": "jwt", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "libadalang", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "libadalang", + "target": "gnatcoll_gmp", + "value": 1 + }, + { + "source": "libadalang", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "libadalang", + "target": "langkit_support", + "value": 1 + }, + { + "source": "rclada_examples", + "target": "rclada", + "value": 1 + }, + { + "source": "hello", + "target": "libhello", + "value": 1 + }, + { + "source": "avrada_lib", + "target": "avrada_mcu", + "value": 1 + }, + { + "source": "avrada_lib", + "target": "avrada_rts", + "value": 1 + }, + { + "source": "avrada_lib", + "target": "gnat_avr_elf", + "value": 1 + }, + { + "source": "wikiada", + "target": "utilada", + "value": 1 + }, + { + "source": "lace_gel", + "target": "lace_opengl", + "value": 1 + }, + { + "source": "lace_gel", + "target": "lace_physics", + "value": 1 + }, + { + "source": "lace_gel", + "target": "sdlada", + "value": 1 + }, + { + "source": "servletada_ews", + "target": "ews", + "value": 1 + }, + { + "source": "servletada_ews", + "target": "servletada", + "value": 1 + }, + { + "source": "lace_xml", + "target": "lace_shared", + "value": 1 + }, + { + "source": "gnatcoll_syslog", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "bingada", + "target": "gtkada", + "value": 1 + }, + { + "source": "bingada", + "target": "asfml", + "value": 1 + }, + { + "source": "orka_plugin_atmosphere", + "target": "orka", + "value": 1 + }, + { + "source": "orka_plugin_atmosphere", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "templates_parser", + "target": "xmlada", + "value": 1 + }, + { + "source": "gnatcoll_sql", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_python3", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gpr_unit_provider", + "target": "libadalang", + "value": 1 + }, + { + "source": "gpr_unit_provider", + "target": "libgpr2", + "value": 1 + }, + { + "source": "matreshka_sql_oracle", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_sql_oracle", + "target": "matreshka_sql", + "value": 1 + }, + { + "source": "matreshka_sql_sqlite3", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "tiled_code_gen", + "target": "apdf", + "value": 1 + }, + { + "source": "tiled_code_gen", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "tiled_code_gen", + "target": "xmlada", + "value": 1 + }, + { + "source": "ppag", + "target": "gnoga", + "value": 1 + }, + { + "source": "iterators", + "target": "aaa", + "value": 1 + }, + { + "source": "xia", + "target": "xmlada", + "value": 1 + }, + { + "source": "orka_plugin_archives", + "target": "dcf", + "value": 1 + }, + { + "source": "orka_plugin_archives", + "target": "orka", + "value": 1 + }, + { + "source": "lace_gel_full_demo", + "target": "lace_gel", + "value": 1 + }, + { + "source": "anagram", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll_gmp", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "matreshka_sql_mysql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_sql_mysql", + "target": "matreshka_sql", + "value": 1 + }, + { + "source": "lace_physics", + "target": "lace", + "value": 1 + }, + { + "source": "lace_physics", + "target": "lace_box2d", + "value": 1 + }, + { + "source": "lace_physics", + "target": "lace_bullet", + "value": 1 + }, + { + "source": "awa_unit", + "target": "awa", + "value": 1 + }, + { + "source": "awa_unit", + "target": "serverfaces_unit", + "value": 1 + }, + { + "source": "awa_unit", + "target": "servletada_unit", + "value": 1 + }, + { + "source": "axmpp", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "adl_middleware", + "target": "hal", + "value": 1 + }, + { + "source": "gnatcoll_lzma", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_iconv", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "orka", + "target": "orka_egl", + "value": 1 + }, + { + "source": "orka", + "target": "orka_opengl", + "value": 1 + }, + { + "source": "orka", + "target": "orka_simd", + "value": 1 + }, + { + "source": "orka", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "orka", + "target": "orka_types", + "value": 1 + }, + { + "source": "keystoreada", + "target": "utilada", + "value": 1 + }, + { + "source": "geste_examples", + "target": "geste", + "value": 1 + }, + { + "source": "geste_examples", + "target": "sdlada", + "value": 1 + }, + { + "source": "libadalang_tools", + "target": "libadalang", + "value": 1 + }, + { + "source": "libadalang_tools", + "target": "templates_parser", + "value": 1 + }, + { + "source": "clic", + "target": "aaa", + "value": 1 + }, + { + "source": "clic", + "target": "ada_toml", + "value": 1 + }, + { + "source": "clic", + "target": "ansiada", + "value": 1 + }, + { + "source": "clic", + "target": "simple_logging", + "value": 1 + }, + { + "source": "matreshka_spikedog_api", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_api", + "target": "matreshka_servlet", + "value": 1 + }, + { + "source": "linux_hal", + "target": "hal", + "value": 1 + }, + { + "source": "tresses", + "target": "midi", + "value": 1 + }, + { + "source": "aws", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "aws", + "target": "xmlada", + "value": 1 + }, + { + "source": "nrf5x_hal", + "target": "cortex_m", + "value": 1 + }, + { + "source": "nrf5x_hal", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "nrf5x_hal", + "target": "hal", + "value": 1 + }, + { + "source": "eeprom_i2c", + "target": "hal", + "value": 1 + }, + { + "source": "wayland_egl_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "bbqueue", + "target": "atomic", + "value": 1 + }, + { + "source": "servletada_aws", + "target": "servletada", + "value": 1 + }, + { + "source": "servletada_aws", + "target": "utilada_aws", + "value": 1 + }, + { + "source": "openai", + "target": "openapi", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "libadalang", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "libadalang_tools", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "libgnatdoc", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "vss", + "value": 1 + }, + { + "source": "lace_gel_animation_demo", + "target": "lace_gel", + "value": 1 + }, + { + "source": "emacs_wisitoken_grammar_mode", + "target": "emacs_wisi", + "value": 1 + }, + { + "source": "emacs_wisitoken_grammar_mode", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emacs_wisitoken_grammar_mode", + "target": "wisitoken", + "value": 1 + }, + { + "source": "uxstrings", + "target": "simple_components", + "value": 1 + }, + { + "source": "shoot_n_loot", + "target": "geste", + "value": 1 + }, + { + "source": "shoot_n_loot", + "target": "pygamer_bsp", + "value": 1 + }, + { + "source": "shoot_n_loot", + "target": "pygamer_simulator", + "value": 1 + }, + { + "source": "shoot_n_loot", + "target": "virtapu", + "value": 1 + }, + { + "source": "samd51_hal", + "target": "cortex_m", + "value": 1 + }, + { + "source": "samd51_hal", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "samd51_hal", + "target": "hal", + "value": 1 + }, + { + "source": "samd51_hal", + "target": "usb_embedded", + "value": 1 + }, + { + "source": "embedded_components", + "target": "adl_middleware", + "value": 1 + }, + { + "source": "embedded_components", + "target": "hal", + "value": 1 + }, + { + "source": "itsybitsy_rp2040_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "itsybitsy_rp2040_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "itsybitsy_rp2040_bsp", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "wordlelib", + "target": "aaa", + "value": 1 + }, + { + "source": "akt", + "target": "keystoreada", + "value": 1 + }, + { + "source": "akt", + "target": "utilada", + "value": 1 + }, + { + "source": "orka_simd", + "target": "orka_types", + "value": 1 + }, + { + "source": "apdf", + "target": "gid", + "value": 1 + }, + { + "source": "lace_math", + "target": "lace_shared", + "value": 1 + }, + { + "source": "tiny_rp2040_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "tiny_rp2040_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "tiny_rp2040_bsp", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "labs_solar_system", + "target": "mage", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "hmac", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "sha1", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "sha2", + "value": 1 + }, + { + "source": "toml_slicer", + "target": "aaa", + "value": 1 + }, + { + "source": "matreshka_soap", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_soap", + "target": "matreshka_xml", + "value": 1 + }, + { + "source": "gnatcoll_sqlite", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_sqlite", + "target": "gnatcoll_sql", + "value": 1 + }, + { + "source": "matreshka_amf_mofext", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_mofext", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "minisamd51_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "minisamd51_bsp", + "target": "samd51_hal", + "value": 1 + }, + { + "source": "pico_examples", + "target": "chests", + "value": 1 + }, + { + "source": "pico_examples", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "pico_examples", + "target": "pico_bsp", + "value": 1 + }, + { + "source": "pico_examples", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "webdriver", + "target": "aws", + "value": 1 + }, + { + "source": "webdriver", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "utilada_lzma", + "target": "lzmada", + "value": 1 + }, + { + "source": "utilada_lzma", + "target": "utilada", + "value": 1 + }, + { + "source": "servletada", + "target": "elada", + "value": 1 + }, + { + "source": "servletada", + "target": "security", + "value": 1 + }, + { + "source": "servletada", + "target": "utilada", + "value": 1 + }, + { + "source": "mold_lib", + "target": "ada_toml", + "value": 1 + }, + { + "source": "mold_lib", + "target": "simple_logging", + "value": 1 + }, + { + "source": "lal_highlight", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "lal_highlight", + "target": "libadalang", + "value": 1 + }, + { + "source": "matreshka_sql_firebird", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_sql_firebird", + "target": "matreshka_sql", + "value": 1 + }, + { + "source": "cashe", + "target": "iso", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "security", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "serverfaces", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "servletada", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "servletada_unit", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "utilada", + "value": 1 + }, + { + "source": "serverfaces_unit", + "target": "utilada_unit", + "value": 1 + }, + { + "source": "orka_plugin_gltf", + "target": "json", + "value": 1 + }, + { + "source": "orka_plugin_gltf", + "target": "orka", + "value": 1 + }, + { + "source": "orka_plugin_gltf", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "gnatcoll_xref", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_xref", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "gnatcoll_xref", + "target": "gnatcoll_sql", + "value": 1 + }, + { + "source": "gnatcoll_xref", + "target": "gnatcoll_sqlite", + "value": 1 + }, + { + "source": "svd2ada", + "target": "xmlada", + "value": 1 + }, + { + "source": "wisitoken", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "wisitoken", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "are", + "target": "elada", + "value": 1 + }, + { + "source": "are", + "target": "utilada", + "value": 1 + }, + { + "source": "are", + "target": "xmlada", + "value": 1 + }, + { + "source": "audio_wavefiles", + "target": "audio_base", + "value": 1 + }, + { + "source": "esp_idf", + "target": "hal", + "value": 1 + }, + { + "source": "septum", + "target": "dir_iterators", + "value": 1 + }, + { + "source": "septum", + "target": "progress_indicators", + "value": 1 + }, + { + "source": "septum", + "target": "trendy_terminal", + "value": 1 + }, + { + "source": "septum", + "target": "atomic", + "value": 1 + }, + { + "source": "avrada_rts", + "target": "gnat_avr_elf", + "value": 1 + }, + { + "source": "matreshka_soap_wsse", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_soap_wsse", + "target": "matreshka_soap", + "value": 1 + }, + { + "source": "lace_opengl", + "target": "lace_collada", + "value": 1 + }, + { + "source": "honki_tonks_zivilisationen", + "target": "asfml", + "value": 1 + }, + { + "source": "hmac", + "target": "sha1", + "value": 1 + }, + { + "source": "hmac", + "target": "sha2", + "value": 1 + }, + { + "source": "ajunitgen", + "target": "xml_ez_out", + "value": 1 + }, + { + "source": "libadalang2xml", + "target": "libadalang", + "value": 1 + }, + { + "source": "awa", + "target": "ado", + "value": 1 + }, + { + "source": "awa", + "target": "elada", + "value": 1 + }, + { + "source": "awa", + "target": "keystoreada", + "value": 1 + }, + { + "source": "awa", + "target": "security", + "value": 1 + }, + { + "source": "awa", + "target": "serverfaces", + "value": 1 + }, + { + "source": "awa", + "target": "servletada", + "value": 1 + }, + { + "source": "awa", + "target": "servletada_aws", + "value": 1 + }, + { + "source": "awa", + "target": "utilada", + "value": 1 + }, + { + "source": "awa", + "target": "utilada_aws", + "value": 1 + }, + { + "source": "awa", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "awa", + "target": "wikiada", + "value": 1 + }, + { + "source": "openglada_text", + "target": "freetypeada", + "value": 1 + }, + { + "source": "openglada_text", + "target": "openglada", + "value": 1 + }, + { + "source": "lvgl_ada_examples", + "target": "lvgl_ada", + "value": 1 + }, + { + "source": "lvgl_ada_examples", + "target": "lvgl_ada_simulator", + "value": 1 + }, + { + "source": "lvgl_ada_simulator", + "target": "asfml", + "value": 1 + }, + { + "source": "lvgl_ada_simulator", + "target": "lvgl_ada", + "value": 1 + }, + { + "source": "orka_tensors_cpu", + "target": "orka_numerics", + "value": 1 + }, + { + "source": "orka_tensors_cpu", + "target": "orka_simd", + "value": 1 + }, + { + "source": "orka_tensors_cpu", + "target": "orka_types", + "value": 1 + }, + { + "source": "midi", + "target": "bbqueue", + "value": 1 + }, + { + "source": "midi", + "target": "hal", + "value": 1 + }, + { + "source": "stm32f0x2_hal", + "target": "cortex_m", + "value": 1 + }, + { + "source": "stm32f0x2_hal", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "stm32f0x2_hal", + "target": "hal", + "value": 1 + }, + { + "source": "stm32f0x2_hal", + "target": "usb_embedded", + "value": 1 + }, + { + "source": "spat", + "target": "si_units", + "value": 1 + } + ], + "colors": { + "default": "#1f77b4", + "SPARK": "purple", + "Embedded": "darkcyan" + } +} \ No newline at end of file diff --git a/docs/2018-03.alr-draft.pdf b/docs/2018-03.alr-draft.pdf new file mode 100644 index 00000000..d28f4cca Binary files /dev/null and b/docs/2018-03.alr-draft.pdf differ diff --git a/docs/alr-logo-black-white.svg b/docs/alr-logo-black-white.svg new file mode 100644 index 00000000..7a7d781f --- /dev/null +++ b/docs/alr-logo-black-white.svg @@ -0,0 +1,205 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/alr-logo-sq.png b/docs/alr-logo-sq.png new file mode 100644 index 00000000..0f14b987 Binary files /dev/null and b/docs/alr-logo-sq.png differ diff --git a/docs/alr-logo-white.svg b/docs/alr-logo-white.svg new file mode 100644 index 00000000..e543f4a6 --- /dev/null +++ b/docs/alr-logo-white.svg @@ -0,0 +1,131 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/docs/alr-logo.svg b/docs/alr-logo.svg new file mode 100644 index 00000000..6a384419 --- /dev/null +++ b/docs/alr-logo.svg @@ -0,0 +1,130 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/docs/alr-logo.svg.png b/docs/alr-logo.svg.png new file mode 100644 index 00000000..2807f005 Binary files /dev/null and b/docs/alr-logo.svg.png differ diff --git a/docs/catalog-format-spec.md b/docs/catalog-format-spec.md new file mode 100644 index 00000000..546b3b9a --- /dev/null +++ b/docs/catalog-format-spec.md @@ -0,0 +1,1164 @@ +# Catalog format specification + +## Big picture + +Each release belonging to a crate is described as a TOML file. This file has +minor differences depending on its location: a local manifest is found at the +top-level directory of the sources of a project, in which case its named +`alire.toml`, whereas a manifest found in an index (e.g., the community index), +is named `-.toml`. + +Other than that, contents follow the same conventions and there are only slight +differences (some fields are intended only for an index manifest, and cannot +appear, or are optional, in a local manifest). These differences are highlighted +in the following descriptions, where necessary. + +Each TOML description file contains exactly one release, except for the special +external definitions that are described in their own section. + +## Information encoding + +This section describes the various encodings used in this format to encode +information. + +First, there are two kinds of data: atomic and composite. + +Atomic data designates values that cannot be decomposed. There are only two +atomic data types: + + - mere strings (`"Hello, world!"`); + - booleans (`true`, `false`); + +When a string denotes a relative path intended to be portable across operating +systems, it must use forward slashes as directory separator: `"path/to/my/resource"`. + +We can then split composite data in two kinds: lists (TOML's arrays) and +mappings (JSON's tables). Lists are just sequences of other values, for +instance a list of strings: + +```toml +["A", "B"] +``` + +Mappings are the traditional sets of associations from keys (here, always +strings) to other values. For instance, the following represents a set of +dependencies, with version constraints: + +```toml +libfoo = "^1.2" +libbar = "^2.0 & /=2.1.3" # Excluding a known bad version +``` + +In some contexts, information can be dynamic: special encodings can be used to +make data vary depending on the environment (OS, architecture, ...). The +environment is represented as a set of specific variables which can have a +specific set of values: see the [Parameters](#parameters) section below for a +comprehensive list. + +All properties that support dynamic expressions follow the same structure, in +which the expression (case-like) is inserted between the key and its value. +For example, given a static expression: + +```toml +key = "value" +``` + +one of its cases would be expressed by the following inline TOML table: + +```toml +key.'case(var)'.var_value = "value" +``` + +Several expressions can be inserted between a property key and its value, +leading to a combinatorial explosion if all cases have specific values. The +equivalent to an `others` Ada clause in this format is a `'...'` entry. + +Here is an example of a conditional boolean value. + +```toml +{'case(distribution)' = { + 'debian|ubuntu': true, + '...': false +}} + +# Or in a more idiomatic TOML syntax +['case(distribution)'] +'debian|ubuntu' = true +'...' = false +``` + +Depending on the value of the `distribution` environment variable, this will +return `true` (its value is `debian` or `ubuntu`) or `false` (for other +values). Note that these and subsequent examples are not showing the +left-hand-side property to which such a value would be assigned. + +A little variation allows building environment-dependent composite data. For +instance, to make the dependency on `libbar` above dynamic: + +```toml +{ + "libfoo": "^1.2", + "case(os)": { + "linux": {"libbar": "^2.0"}, + "windows": {"libwinbar": "^3.0"}, + "...": {} + } +} + +# Or in a more idiomatic TOML syntax +libfoo = "^1.2" + +['case(os)'.linux] +libbar = "^2.0" + +['case(os)'.windows] +libwinbar = "^3.0" + +['case(os)'.'...'] +``` + +The `case(os)` part selects dependencies depending on the value of the `os` +environment variable. + +If the `os` environment variable contains `linux`, this will create the +following dependencies: + +```toml +libfoo = "^1.2" +libbar = "^2.0" +``` + +If the `os` environment variable contains `windows`, this will create the +following dependencies: + +```toml +libfoo = "^1.2" +libwinbar = "^3.0" +``` + +And finally for other `os` values: + +```toml +libfoo = "^1.2" +``` + +## Release Information + +This section describes the actual properties that must or can appear in a +manifest file to describe a release. Unless specified, all the entries must be +static, i.e. they cannot depend on the context. + + - `name`: mandatory string. The name of the crate this release belongs to. Use + `alr help identifiers` to see the rules such names must follow. + + - `version`: mandatory string. The semantic version of the release. + + - `description`: mandatory string. One-line description about the package. For + instance: + + ```toml + description = "Library to handle foobars" + ``` + + - `long-description`: optional free-form string to provide information about + this package, in addition to `description`, without length restrictions. + + - `authors`: optional array of strings. Flat list of human-readable names for + the authors, i.e. the people that wrote the software that is packaged. For + instance: + + ```toml + authors = ["Alice Example", + "Bob For Instance "] + ``` + + - `maintainers`: mandatory (for indexing) array of strings. Flat list of + human-readable names (optional) for the maintainers, with a contact email + (mandatory); i.e. the people that maintain the crate metadata in Alire. For + instance: + + ```toml + maintainers = ["alice@example.com", + "Bob For Instance "] + ``` + + - `maintainers-logins`: mandatory (for indexing) array of strings. Flat + list of github login usernames used by the maintainers of the crate. This + information is used to authorize crate modifications. For instance: + + ```toml + maintainers-logins = ["alicehacks", "bobcoder"] + ``` + + - `licenses`: mandatory (for indexing) string. A valid [SPDX + expression](https://spdx.org/licenses/). Custom license identifiers are + accepted with the format: `custom-[0-9a-zA-Z.-]+` + + ```toml + licenses = "MIT" + ``` + + For a double license: + + ```toml + licenses = "GPL-3.0-only OR MIT" + ``` + + For a custom license: + + ```toml + licenses = "custom-my-license-1.2" + ``` + + - `website`: optional string. URL to the original project's website. For + instance: + + ```toml + website = "https://myproject.example.org/" + ``` + + - `tags`: optional array of strings. Flat list of topics covered by the crate. + Tags will help users find crates related to their interests: + + ```toml + tags = ["spark", "security"] + ``` + + - `available`: optional dynamic boolean expression. Determines whether the + package is available for the current platform (true) or not (false). For + instance: + + ```toml + [available.'case(distribution)'] + 'debian|ubuntu' = true + '...' = false + ``` + + - `depends-on`: optional array of dynamic dependencies expressions. For instance: + + ```toml + [[depends-on]] # A static dependency + libfoo = "^1.2" + + [[depends-on]] # A dynamic dependency + [depends-on.'case(os)'.linux] + libbar = "^2.0" + + [depends-on.'case(os)'.windows] + libwinbar = "^3.0" + ``` + + Available constraint operators are the usual Ada relationals (`=`, `/=`, `>`, `>=`, + `<`, `<=`) plus caret (`^`, any upwards version within the same major point) + and tilde (\~, any upwards version within the same minor point). + + **Note that caret and tilde do not have any special behavior for pre-1 + versions.** This means, for example, that `^0.2` will still mean any release + below `1.0`. The Semver specification does not make any promises about the + compatibility of pre-1 versions, and there are differing interpretations of + these operators out there for such versions. Bear in mind this when expressing + your restrictions; for pre-1 versions you most likely want to use `~0.x` + constraints (compatibility within a minor version). + + Logical operators for and (&), or (|) are accepted; see the `Semantic_Versioning` + project documentation on [extended version + sets](https://github.com/alire-project/semantic_versioning#types). + + See also the [section on compiler dependencies](#compiler-versions-and-cross-compilers) + for more details on how to use the `depends-on` property for cross-compiling or + compiler version selection. + + - `project-files`: optional list of strings. Each is a path, relative to the + root of the source directory, to a `.gpr` project file to be made available. + Expressions are accepted. For instance: + + ```toml + project-files = ["my_project.gpr", "utils/utils_for_my_project.gpr"] + + [project-files.'case(word-size)'] + bits-64 = ["my_project.gpr"] + bits-32 = ["my_project32.gpr"] + ``` + + - `gpr-externals`: optional table, giving a mapping from the name of external + variables in the `.gpr` project files to sets of possible values (as array of + strings), or an empty string if this set is infinite. For instance: + + ```toml + [gpr-externals] + BUILD_MODE = ["debug", "profile", "release"] + TAG = "" + ``` + + - `gpr-set-externals`: optional dynamic table, setting values of project + external variables when building the project. This should not be used to + specify default values, the default values must be specified in the `.gpr` + project file. Expressions are accepted before the mapping. For instance: + + ```toml + [gpr-set-externals] + BUILD_MODE = "release" + + [gpr-set-externals.'case(os)'] + linux = { OS = "gnu-linux" } # Compact table syntax is convenient in this case + windows = { OS = "ms-linux" } # to see all enumeration values, one per row. + ``` + + - `environment`: optional dynamic table used to modify environment variables + that will apply at build time. Variables and values are specified with the + form `VARIABLE. = "value"`, where `` is one of `append`, + `prepend`, or `set`. For instance: + + ```toml + [environment] + C_INCLUDE_PATH.append = "/usr/include/something" + MY_PROJECT_ASSETS.set= "${CRATE_ROOT}/assets" + PATH.append = "${DISTRIB_ROOT}/usr/bin" + ``` + + Predefined variables are provided by Alire and will be replaced in the + value: + + - `${CRATE_ROOT}` absolute path to the deployment directory of the crate. + - `${DISTRIB_ROOT}` absolute path to the root directory of the system + distribution. On UNIX systems it will be `/`, on Windows `msys2` it will + be the `msys2` installation directory (e.g. + `C:\Users\user_name\.cache\alire\msys2`). + + Environment entries can use dynamic expressions: + + ```toml + [environment.'case(distribution)'] + msys2 = { C_INCLUDE_PATH.append = "${DISTRIB_ROOT}/mingw64/include/SDL2" } + ``` + + - `executables`: optional dynamic list of strings. Each one is the simple name + of an executable provided by the package. Executables are looked for by + `alr` in the build tree and must not include a path. If only one executable is + given, it is considered the default for `alr run`. For instance: + + ```toml + executables = ["my_main"] + ``` + + - `actions`: optional dynamic list of actions to perform when certain events + take place in a workspace. The general action syntax is: + + ```toml + [[actions]] + type = + command = + ``` + + `` is an array of strings for a shell command to run in the + source directory. + + For events that cause a workspace-wide triggering of actions (all + `pre_/post_` actions described next), the actions are invoked in a + dependency-safe order, starting at the leaves of the dependency graph + (releases with no dependencies) and moving up to the root release (the working + release, or the release being obtained with `alr get`). In this context, the + root release is considered part of the dependency solution, and so its + actions are executed too, always in the last place. + + `` can be either: + + - `post-fetch`: the command is to be run whenever there are new sources + deployed in the workspace, in any release in the solution. All releases + `post-fetch` actions are run after the new deployment is complete. Initial + retrieval, subsequent modification of dependencies, pinning a + directory or repository is considered a deployment of new sources. A manual + `alr update`, even if it results in no changes, will also trigger this + action in every release in the solution. + + - `pre-build`: the command is to be run right before the build of the + workspace starts. This kind of action is run for all releases in the + solution. + + - `post-build`: the command is to be run right after a build has + successfully completed. This kind of action is run for all releases in the + solution. + + - `test`: the command is run on demand for crate testing within the Alire + ecosystem (using `alr test`). This kind of action is run only for the + root crate being tested, after its build succeeds, and after any + `post-build` actions. + + Since actions may end being run more than once they should take this into + account and allow multiple runs with the expected results intended by the + packager. + + Actions accept dynamic expressions. For example: + + ```toml + [[actions.'case(os)'.linux]] + type = "post-fetch" + command = ["make"] + + [[actions.'case(os)'.windows]] + type = "post-fetch" + command = ["cmd", "build"] + + [[actions.'case(os)'.'...']] + # An explicit empty case alternative, which is not mandatory + ``` + + - `auto-gpr-with`: optional Boolean value that specifies if the project (gpr) files + of a crate can be automatically depended upon ('withed') directly by the root + project file. (The default is true.) This feature is meant to simplify the process + of using dependencies in Alire. However, not all project files are supposed to be + direct dependencies. Some are intended to be extended, for example, and in that + case a crate can disable the feature by setting `auto-gpr-with=false`. + + - `origin`: dynamic table. Mandatory for index manifests and forbidden in + workspace manifests. This table describes how sources are obtained, using + the following fields: + + - `url`: mandatory string which points to a source file or repository. + + - `hashes`: mandatory string array for source archives. An array + of "kind:digest" fields that specify a hash kind and its value. Kinds + accepted are: `sha512`. + + - `archive-name`: optional string. If `url` points to a source archive, + this can specify the name of the file to download, which is needed in + order to properly extract the sources, in case the URL does not identify it. + + - `commit`: mandatory string for VCS origins that describes the + VCS-specific revision to be checked out (a git/hg hash, a svn + revision). + + - `subdir`: optional relative path, only valid for repository origins, + that when provided indicates that the crate is not located at the + repository root. This option enables the possibility of publishing + several crates from the same repository (sometimes referred to as a + *monorepo*). + + Examples of origin tables: + + ```toml + # Clone a git repository with a crate at its root + [origin] + url = "git+https://github.com/example-user/example-project" + commit = "ec8b267bb8b777c6887059059924d823e9443439" + ``` + + ```toml + # Download and extract a source archive + origin = "https://example.org/0123456789" + archive-name = "archive.tar.gz" + hashes = ["sha512:bf6082573dc537836ea8506a2c9a75dc7837440c35c5b02a52add52e38293640d99e90a9706690591f8899b8b4935824b195f230b3aa1c4da10911e3caf954c04ac"] + ``` + + ```toml + # Clone a git repository with the crate in a subdirectory + [origin] + url = "git+https://github.com/example-user/example-project" + commit = "ec8b267bb8b777c6887059059924d823e9443439" + subdir = "examples" + ``` + + - `available`: optional dynamic boolean expression. If it evaluates to + `false`, the package is not available for the current platform. + + - `notes`: optional string. Provides miscellaneous information about this + release. For instance: + + ```json + notes = "Experimental version" + ``` + + - `configuration`: optional table to control crate configuration code + generators: + + For more information on crate configuration, see [Using crate + configuration](#using-crate-configuration). + + - `disabled`: Completely disable configuration code generation for the + crate (default: `false`) + + - `output_dir`: Path to the directory where the configuration code will + be generated, relative to the crate root (default: `config`). + + - `generate_ada`: Enable generation of Ada configuration (default: + `true`). + + - `generate_gpr`: Enable generation of GPR file configuration (default: + `true`). + + - `generate_c`: Enable generation of C configuration (default: `true`). + + - `auto_gpr_with`: Enabled generation of list of withed project in the + GPR file configuration (default: `true`). + + + - `configuration.variables`: optional table of crate configuration variable + definitions. + + For more information on crate configuration, see [Using crate + configuration](#using-crate-configuration). + + The keys of the table are names of the variables. Variable definitions + themselves are tables with the following entries: + + - `type`: mandatory string which defines the type of the variable, it can + be: + + - `String`: any string + + - `Boolean`: either `True` or `False` + + - `Enum`: enumeration type + + - `Integer`: an integer value that can be encoded in 64-bit + + - `Real`: a real value that can be encoded in IEEE 754 binary64 + + - `default`: optional default value for the variable. Will be used if no + crates explicitly set a value for this variable. Must be a valid value + for the type. + + - `first`: (optional) for `Real` and `Integer` types only. Defines the + lower bound of valid values for the type (inclusive). + + - `last`: (optional) for `Real` and `Integer` types only. Defines the + upper bound of valid values for the type (inclusive). + + - `values`: mandatory for `Enum` types. An array of strings containing + all the possible values for the enumeration. + + + Example: + ```toml + [configuration.variables] + Device_Name = {type = "String", default = "no device name"} + Print_Debug = {type = "Boolean", default = false} + Debug_Level = {type = "Enum", values = ["Info", "Debug", "Warn", "Error"], default = "Warn"} + Buffer_Size = {type = "Integer", first = 0, last = 1024, default = 256} + Max_Power = {type = "Real", first = 0.0, last = 100.0, default = 50.0} + ``` + - `configuration.values` optional table of variables assignment: + + The keys of the table are crate names, and entries are sub-tables of + `variable_name` and `value`. The type of the value has to match the + definition of the variable type. + + Example: + ```toml + [configuration.values] + crate_1.var1 = 42 + crate_1.var2 = true + crate_2.var1 = "Debug" + ``` + + - `build-profiles`: optional table of strings that sets the build profile of + crates in the solution. + + For more information on build profiles and switches, see [Build profiles and + switches](#build-profiles-and-switches). + + There are 3 build profiles available in Alire: + - `Development` + - `Release` + - `Validation` + + Example: + ```toml + [build-profiles] + depend1 = "validation" # Set depend1 build profile to validation + depend2 = "development" # Set depend2 build profile to development + my_crate = "release" # Set my_crate build profile to release + ``` + A wildcard key can be used to set the build profile of all crates that are + not otherwise specified: + ```toml + [build-profiles] + "*" = "validation" # Set all build profiles to validation + ``` + + - `build-switches`: optional table of build profile switches definitions. + + For more information on build profiles and switches, see [Build profiles and + switches](#build-profiles-and-switches). + + The keys of the table are either build profiles or the wildcard `"*"`: + - `Development` + - `Release` + - `Validation` + + The values are profile definitions, themselves tables with switch categories + as keys and switches selection as values. This list of switch categories and + their corresponding selection is as follow: + - `Optimization` + - `Performance` + - `Size` + - `Debug` + - `Debug_Info` + - `No` + - `Yes` + - `Runtime_Checks` + - `None` + - `Default` + - `Overflow` + - `Everything` + - `Compile_Checks` + - `None` + - `Warnings` + - `Errors` + - `Contracts` + - `No` + - `Yes` + - `Style_Checks` + - `No` + - `Yes` + - `Ada_Version` + - `Compiler_Default` + - `Ada83` + - `Ada95` + - `Ada05` + - `Ada12` + - `Ada2022` + - `GNAT_Extensions` + + For example, to enable all run-time checks in the release profile: + ```toml + [build-switches] + release.runtime_checks = "Everything" + ``` + To disable style checks for all profiles: + ```toml + [build-switches] + "*".style_checks = "No" + ``` + + All switch categories also accept a custom list of switches, for instance: + ```toml + [build-switches] + release.optimization = ["-O1"] + validation.style_checks = ["-gnatyg"] + ``` + + - `provides`: specifies a list of releases of another crate for which the + current release is a drop-in replacement. I.e., the crate is either + API-compatible or call-compatible, depending on how it is to be used (as a + source library, or providing some command-line tool). + + Example: + ```toml + name = "foo" + provides = ["bar=1.1"] + # A crate depending on `bar^1` might find this `foo` release in its solution instead. + ``` + + - `forbids`: an array of tables containing dependency specifications, just as + the `depends-on` property. Releases matching one of the forbidden + dependencies are prevented from appearing in a solution with the release + doing the forbidding. + + There are two use cases for this property: + + 1. To codify known conflicts between releases for some reason (for example, + sources with the same name). + 2. To provide drop-in replacements for another crate, in conjunction with + a `provides` field. In this case the release must both provide and forbid + the crate for which it is a replacement. + + Example: + + ```toml + name = "bar" + version = "1.0" + provides = [ "foo=1.0" ] + [[forbids]] + baz = "*" # This crate cannot coexist with ours for some reason + foo = "*" # No other crate that provides foo is needed/allowed at the same time + ``` + +## Work-in-progress dependency overrides + +It is usual to develop several interdependent crates at the same time. In this scenario, it is often impractical to rely on indexed releases which are not intended to be modified. Instead, one would prefer to use a work-in-progress version of a crate to fulfill some dependency. + +Alire provides *pins* to support this use case. Pins override dependencies, they are intended to be used locally, and to be fulfilled by proper dependencies once a crate is ready to be published. The use of pins is based on two ideas: + +* Dependencies are given, as normally, in the `depends-on` array of the manifest, even for those dependencies to be pinned. This way, once the release is ready, pins are simply removed and the actual dependencies are used in their place. +* Dependency overrides, aka *pins*, are given under the `[[pins]]` array of the manifest. + +Three kinds of pins are available, all of them with the syntax: + +`crate_name = { pin_attributes }` + +The specific pin kinds and their attributes are: + +* Pins to versions: used to force the use of a particular version of an indexed crate. + + * `version`: a string containing a single version to be used. + * `crate_name = { version = "1.2+hotfix-1" }` + +* Pins to local crates: a local directory will fulfill the crate dependency, no matter what version is given in its local manifest. "Raw" Ada projects without an Alire manifest can be used too, as long as their project file matches the crate name and it is located in the directory given as override. + + * `path`: an absolute or relative path to the crate directory. + * `crate_name = { path = "../my/wip/crate" }` + + For the common case of directories containing an Alire manifest, dependencies and pins will be included recursively in the build context. + +* Pins to git repositories: the repository will be cloned locally and its directory will be used as in the previous case. This pin may optionally include a commit to fix the checkout to be used, or a branch to track. Otherwise, the default branch will be used. Running `alr update` will refresh the checkout. + + * `url`: the URL of a git repository + * `commit` (optional): a complete git commit hash. + * `crate_name = { url = "https://my/repo.git" } # Updatable pin to default branch` + * `crate_name = { url = "https://my/repo.git", branch="feature" } # Updatable pin` + * `crate_name = { url = "https://my/repo.git", commit="abcdef..." } # Fixed pin` + +### Using pins for crate testing + +Pins are also useful to have a separate test project that depends on your main crate. The recommended setup is as follows: + +``` +/path/to/my_crate +├── alire.toml +└── tests + └── alire.toml +``` + +I.e., a `tests` crate is initialized within the main `my_crate`. In `tests` manifest, you have a dependency and local relative path pin for `my_crate`: + +```toml +# tests/alire.toml +[[depends-on]] +my_crate = "*" # Any version of the main crate +aunit = "*" # We can have dependencies for testing only +[[pins]] +my_crate = { path = ".." } # Overridden by the latest sources +``` + + Then, `my_crate` is published normally, and `tests` can be used locally for any kind of testing needed on `my_crate` without polluting `my_crate` manifest with test specifics (like extra dependencies used by the test setup). + +## External releases + +The above information applies to regular releases distributed from sources +(that is, the Ada projects whose distribution is the main Alire goal). Some +special supporting releases also exist that are described differently. + +A release is considered "external" when it is not built from sources and, +furthermore, its semantic version cannot be known until run time. Hence, the +availability and version of these releases is detected by `alr`. + +Several definitions for these external releases may exist so they are +defined in a manifest as a vector with key `external`: + +```toml +[[external]] +# Common entries to all externals +kind = "hint" # One of several predefined external kinds +hint = "Please install SDL in your platform from source or system packages" +# Specific external kind parameters might follow +``` + +All external kinds can define these regular properties: + + - `available`: when defined, it restricts the external detection to the given + environment conditions. + + - `hint`: optional dynamic string containing an explanation for the user on + how to make the external entity available. This explanation is shown on request + with `alr show --external`, or after `alr get`, for any external dependency + that could not be detected. + +### External kinds: hints + +A plain undetectable external kind intended to simply serve as a hint. For +crates that are known to be unavailable through Alire, it serves to +provide a generic or customized hint to the user. It has no specific +fields, other than the common ones just described. Its key is `"hint"`: + +```toml +[[external]] +kind = "hint" # Identifies this external kind +# Bare minimum external. Optionally, the hint/available fields can be used. +``` + +### External kinds: command-line tools + +This external kind is used to describe commands that can be run in the system, +and that are able to provide their own version via some particular invocation. +Their specific fields are (all mandatory): + +```toml +kind = "version-output" # Identifies this external kind + +version-command = ["gnat", "--version"] +# Invocation that will provide the version when the tool is available + +version-regexp = "^GNAT ([\\d\\.]+).*|^GNAT Community ([\\d]{4}).*" +# TOML-escaped GNAT.Regpat-compatible regular expression. Parenthesized +# matches will cause the matched expression to be parsed as the Semantic +# Version of the tool. + +provides = "another_crate_name" +# This crate will be equivalent to `another_crate_name` for the solver. The +# version will be the same as detected for the current external. For example, +# all GNAT compilers provide the "gnat" crate, and so there cannot be two +# compilers in the same solution. +``` + +### External kinds: system packages + +Systems that have their own package manager (e.g. Linux) can readily provide +many complex dependencies still unpackaged as source code in Alire. Alire can +use these on supported platforms (at this time, Debian & Ubuntu. Do not +hesitate to contact us if you would like to maintain other distributions) +during resolution. + +A system external gives a list of platform package names that supply the +dependency natively. The platform package manager will be used to detect their +availability and version. To that effect, the `origin` field is used (which can +accept dynamic expressions in this context): + +```toml +kind = "system" # Identifies this external kind +origin = ["libncursesada3", "libncursesada5"] +# As versions appear this list will grow. To speed up detection, dynamic +# expressions may become recommended for certain system packages. +``` + +For Ada pre-compiled system libraries that require the platform compiler for +linking (e.g., in Debian/Ubuntu), and that cannot be used with other GNAT +compilers, this should be expressed with the `available` property, e.g.: + +```toml +available.'case(toolchain)'.user = false +# `available` defaults to true, so it is enough to flag the user toolchains +``` + +## Parameters + + - `os`: name of the OS. Currently supported values are: `linux`, `macos` and + `windows`. + + - `distribution`: name of the Linux distribution, or `none` if running on a + different OS. Currently supported values are: `debian`, `ubuntu`. + + - `toolchain`: takes `system` value in distributions with the system Ada + compiler first in PATH (GNAT FSF in Debian/Ubuntu), `user` otherwise (GNAT + Community editions, other cross-target toolchains). + + - `word-size`: architecture word size. Currently supported values are: + `bits-32`, `bits-64`, `bits-unknown` + +## Using crate configuration + +`Alire` provides a mechanism for crates to expose a list of variables that can +be set by other crates depending on them. The configuration variables will then +be converted to Ada, C and GPR source files that can be used to change the +behavior or feature set of the code. + +Let's start with a simple example. A crate named `test` can print debug log on +the console. However printing on the console has a performance impact, for an +embedded project it can even have a significant code size impact. Therefore it +would be best if this logging can be disabled/enabled at compile time. + +To achieve this, a crate maintainer can define a configuration variable in the +crate manifest `alire.toml`. The definition will be like so: +```toml +[configuration.variables] +Enable_Logs = {type = "Boolean", default = false} +``` +A single variable of type `Boolean` with a default value of `false`. + +From this definition, `Alire` will generate various source files, including an +Ada package specification: + +```ada +package Test_Config is + Enable_Logs : constant Boolean := False; +end Test_Config; +``` + +In the crate source code, this configuration package can be used like so: +```ada + if Test_Config.Enable_Logs then + Print_Log ("This is a log message."); + end if; +``` + +If one of the crates depending on `test` sets the configuration variable to +`true`, e.g.: + +```toml +[configuration.values] +test.Enable_Logs = true +``` + +The constant value will change in the generated configuration package: +```ada +package Test_Config is + Enable_Logs : constant Boolean := True; +end Test_Config; +``` +Which will enable logging in the `test` crate. + +It is possible for multiple depending crates to set `test.Enable_Logs` to the +same value, however if two depending crates set the variable to a different +value then the configuration is invalid and `Alire` will print an error. If no +depending crates set the `test.Enable_Logs` variable, then its default value is +used. + +### When to use crate configuration? + +Usually when something has to be static or known at compiler-time, either for +performance or memory usage. + +### When _not_ to use crate configuration? + +When the Ada languages provides a better alternative. There are many ways to +provide an Ada API that will result in compile time optimization or static +memory usage. + +For instance, discriminants are an effective way to let the user define the +size of a buffer: + +```ada + type Buffered_Thing (Size : Positive) is private; +private + type Buffer_Array is array (Positive range <>) of Unsigned_8; + type Buffered_Thing (Size : Positive) is record + Buf : Buffer_Array (1 .. Size); + end record; +``` + +With this definition, users are then able to allocate either statically, on the +stack or on the heap depending on their project. + +```ada + Thing : Buffered_Thing (Size => 256); +``` + +### Use cases + +#### Log levels + +Enumerations variables in crate configuration can be used to set a level of log +verbosity: +```toml +[configuration.variables] +Log_Level = {type = "Enum", values = ["Info", "Debug", "Warn", "Error"], default = "Warn"} +``` + +#### Buffer size + +Integer variables can be used the define the size of a static buffer: + +```toml +[configuration.variables] +Buffer_Size = {type = "Integer", first = 0, last = 1024, default = 256} +``` +This is useful in particular for embedded projects where compile time memory +usage is preferred over dynamic allocation. + +#### Server URL + +String variables can be used to define the URL of a website or service: + +```toml +[configuration.variables] +URL_Name = {type = "String", default = "example.com"} +``` + +#### PID coefficients + +Real variables can be used for PID coefficients: +```toml +[configuration.variables] +Proportional = {type = "Real"} +Integral = {type = "Real"} +Derivative = {type = "Real"} +``` +#### Worst case allocation + +Integer variable can be used to define The maximum length of file names in a +file-system: +```toml +[configuration.variables] +Max_Filename_Length = {type = "Integer", first = 5, last = 128} +``` + +#### Select algorithm in GPR project file + +Crate configuration also generates a GPR project file, therefore it can be used +to control which units are compiled in the project. +```toml +[configuration.variables] +Sort_Algorithm = {type = "Enum", values = ["bubble", "quick", "merge"]} +``` + +The generated GPR will look something like this: +```ada +project Test_Config is + type Sort_Algorith_Kind is ("bubble", "quick", "merge"); + Sort_Algorith : Debug_Level_Kind := "quick"; +end Test_Config; +``` + +It can be used in the main GPR file like so: + +```ada + package Naming is + for Body ("Test.Sort") use "test-sort__" & Test_Config.Sort_Algorith; + end Naming; +``` +With the files `test-sort__bubble.adb`, `test-sort__quick.adb` and +`test-sort__merge.adb` each implementing a different algorithm. + +## Platform Specific Code + +In the crate configuration Alire also generates a few built-in values to +identify the host platform: + - `Alire_Host_OS` + - `Alire_Host_Arch` + - `Alire_Host_Distro` + +They can be used in the main GPR file to add a different source directory +based on the OS. For instance: +```ada + for Source_Dirs use ("src", + "src/" & Test_Config.Alire_Host_OS); +``` +with the following directory tree: +``` ++-- src + +-- host_specific.ads + +-- linux + | +-- host_specific.adb + +-- macos + | +-- host_specific.adb + +-- windows + +-- host_specific.adb +``` + +## Build Profiles and Switches + +As part of crate configuration, Alire will generate a list of compiler switches +in the configuration GPR file. The list of switches for a given crate is +controlled from two features: + - build-profiles + - build-switches + +There are 3 build profiles available in Alire: + - `Development` + - `Release` + - `Validation` + +By default, the root crate is in `Development` and the dependencies are in +`Release`. The defaults can be overridden in two ways: + - The build profile of the root crate can be changed with a switch to the + `alr build` command: + - `$ alr build --release` + - `$ alr build --validation` + - `$ alr build --development` (default) + - In the root crate manifest, the build profile of each crate in the solution + can be changed with the `[build-profiles]` table. + + This can be used, for instance, in a unit test crate to set the crate under + test in `validation` profile, or to debug one of the dependencies. + + Example: + ```toml + [build-profiles] + lib_under_test = "validation" + lib_to_debug = "development" + ``` + +Each crate can customize the compiler switches corresponding to its profiles +using the `[build-switches]` table. In general, this should be avoided to +preserve consistency in the ecosystem. However, there are cases where it makes +sense for a crates to change its build switches. For instance, a SPARK crate +that is proved to be safe from errors can disable run-time checks in all +profiles: +```toml +[build-switches] +"*".runtime_checks = "none" +``` + +It is also possible to specify a custom list of compiler switches for a +category: +```toml +[build-switches] +release.optimization = ["-O1", "-gnatn"] +``` + +### Using switches in GPR file + +Alire will generate a list of switches in the crate configuration GPR file. It +will look something like this: + +```ada +abstract project my_crate_Config is + [...] + Ada_Compiler_Switches := External_As_List ("ADAFLAGS", " ") & + ( + "-Os" -- Optimize for code size + ,"-gnatn" -- Enable inlining + ); + [...] +``` + +In the main GPR file, "with" the crate config GPR and use the +`Ada_Compiler_Switches` variable to define compiler switches: + +```ada +with "config/my_crate_config.gpr"; +project My_Crate is + + [...] + + package Compiler is + for Default_Switches ("Ada") use My_Crate_Config.Ada_Compiler_Switches; + end Compiler; +``` + +## Compiler versions and cross-compilers + +Dependencies in Alire are used also to deal with compiler versions and +cross-compilers. Also related is the information on toolchains available in the +[Toolchain management](./toolchains.md) document or via `alr help toolchains`. + +### Excluding compiler versions + +One may know that a particular compiler version has a problem with some code. +This may be expressed with dependencies on the generic `gnat` crate, which +although is not found in the catalog, is a crate that all GNAT compilers +provide. (Such a crate without actual releases, but provided by other crates, +is called a virtual crate.) For example: + +```toml +gnat = ">=7" # We require a minimum compiler version +gnat = "/=7.3" # We know a precise version is incompatible +``` + +Since only one dependency on a same crate may appear, the relational operators +`&` (and), `|` (or) can be used instead: + +```toml +[[depends-on]] +gnat = "/=7.3 & >=7" +``` + +### Requesting a compiler for a concrete target + +The other use of compiler dependencies is to specify that a compiler for a +particular target is needed. (Note that the project file **also** has to +specify the proper target and runtime.) This way Alire can configure the +appropriate environment for the build. For example: + +```toml +gnat_arm_elf = "*" # Any compiler targeting ARM +``` + +Dependencies on cross-compilers should **only** be used in crates that actually +require a concrete target (e.g., final binaries) to avoid preventing their use +as general libraries with any compiler. + +## Further reading ## + +You can inspect [index files](https://github.com/alire-project/alire-index) to +get an idea of how projects are included into the catalog. diff --git a/docs/classes.graphml b/docs/classes.graphml new file mode 100644 index 00000000..0ccb8a3e --- /dev/null +++ b/docs/classes.graphml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + Name + + + + + + + + Name + + + + + + + + + + + + + Semantic +Version + + + + + + + + Major +Minor +Patch + + + + + + + + + + + + + Milestone + + + + + + + + + + + + + + + + + + + + + Origin + + + + + + + + URL +Hash + + + + + + + + + + + + + Release + + + + + + + + Dependencies +Properties + + + + + + + + + + + + + Crate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 00000000..24923bf7 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,112 @@ +# Configuration + +`alr` provides a generic mechanism to `list`, `get`, `set` or +`unset` configuration options, either in a local or global context. + + Option names (keys) can use lowercase and uppercase alphanumeric characters + from the Latin alphabet. Underscores and dashes can also be used except as + the first or last character. Dot '.' is used to specify sub-categories, e.g. + 'user.name' or 'user.email'. + + Option values can be integers, floats, Booleans (true or false), or strings. The + type detection is automatic, e.g. 10 is integer, 10.1 is float, true is + Boolean. You can force a value to be a string by using double-quotes, e.g. + "10.1" or "true". Extra type checking is used for built-in options (see below). + + Specific config options: + + - `--list` List configuration options + - `--show-origin` Show origin of configuration values in `--list` + - `--get` Print value of a configuration option + - `--set` Set a configuration option + - `--unset` Unset a configuration option + - `--global` Set and Unset global configuration instead of the local one + - `--builtins-doc` Print Markdown list of built-in configuration options + + Examples: + + - `alr config --global --set my_option option_value` + + Will set a configuration option with the key `my_option` and the string + value `option_value` in the global configuration file. + + - `alr config --get my_option` + + Will print the value configuration option `my_option` if it is defined, + otherwise the command fails. + + +## Custom configuration options + +The `alr config` command allows you to set and get any combination of +configuration option `key` and `value`. You can use this feature to store your +own project related configuration, or implement tools that integrate in an +`Alire` context. However, be careful when naming custom configuration options +because `Alire` may use the same `key` in the future. We recommend using a +distinctive sub-category name, for instance: `my_project.my_config_option`. + +## Built-in configuration options + +The options used by `Alire` are pre-defined and documented. We call these +options `built-ins`. + +A built-in option has a pre-defined type that is checked when setting or +loading a configuration file. For instance: + + - `alr config --global --set user.email "This is not an email address"` + +will fail because the value tentatively assigned to `user.email` is not an +email address. + +The built-ins also have a short description to document their type and usage. + +## Built-ins list + +Here is the list of `Alire` built-in configuration options. You can also get +this from `alr` with `alr help config`. + + - **`index.auto_community`** [Boolean]: + When unset (default) or true, the community index will be added automatically when required if no other index is configured. + + - **`user.name`** [String]: + User full name. Used for the authors and maintainers field of a new crate. + + - **`user.email`** [Email address]: + User email address. Used for the authors and maintainers field of a new crate. + + - **`user.github_login`** [GitHub login]: + User GitHub login/username. Used to for the maintainers-logins field of a new crate. + + - **`editor.cmd`** [String]: + Editor command and arguments for editing crate code (alr edit). The executables and arguments are separated by a single space character. The token ${GPR_FILE} is replaced by a path to the project file to open. + + - **`msys2.do_not_install`** [Boolean]: + If true, Alire will not try to automatically install msys2 system package manager. (Windows only) + + - **`msys2.install_dir`** [Absolute path]: + Directory where Alire will detect and/or install msys2 system package manager. (Windows only) + + - **`msys2.installer`** [String]: + Filename of the executable msys2 installer, e.g. 'msys2-x86_64-20220319.exe'. (Windows only) + + - **`msys2.installer_url`** [String]: + URL of the executable msys2 installer, e.g. 'https://github.com/msys2/msys2-installer/releases/download/2022-03-19/msys2-x86_64-20220319.exe'. (Windows only) + + - **`update-manually-only`** [Boolean]: + If true, Alire will not attempt to update dependencies even after the manifest is manually edited, or when no valid solution has been ever computed. All updates have to be manually requested through `alr update` + + - **`distribution.disable_detection`** [Boolean]: + If true, Alire will report an unknown distribution and will not attempt to use the system package manager. + + - **`solver.autonarrow`** [Boolean]: + If true, `alr with` will replace 'any' dependencies with the appropriate caret/tilde dependency. + + - **`warning.caret`** [Boolean]: + If true, Alire will warn about the use of caret (^) for pre-1 dependencies. + + - **`warning.old_index`** [Boolean]: + When unset (default) or true, a warning will be emitted when using a compatible index with a lower version than the newest known. + + - **`toolchain.assistant`** [Boolean]: + If true, and assistant to select the default toolchain will run when first needed. + diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..67c27027 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,388 @@ +# Getting Started + +## Installation + +You can download the last release of Alire at the [GitHub +repository](https://github.com/alire-project/alire/releases). + +## `alr` on Linux + +On Linux, `Alire` is simply provided in an archive. + +Once the archive is extracted you have to add `alr` in the environment `PATH`: +```bash +$ export PATH=/bin/:$PATH +``` + +Alire provides GNAT toolchains hosted on x86-64 for Linux. If those toolchains do not +work for you, or if you are on another host architecture like ARM, you have the option +to look at the GNAT toolchains from the Linux distribution. + +## `alr` on Windows + +On Windows an installer is provided. The installer will create a shortcut to +start `PowerShell` with `Alire` in the environment `PATH`. + +The first time you run `alr` the program will ask if you want to install +[msys2](https://www.msys2.org/). This is recommended as `alr` will use `msys2` +to automatically install required tools such as `git` or `make` that you would +otherwise have to install manually. `msys2` will also provide external +libraries required by some projects in the Alire index, allowing you to build +more projects out of the box. + +Alire provides GNAT toolchains hosted on x86-64 for Windows. Those toolchains +should work for all cases, if not, let us know. + +## `alr` on macOS + +On macOS, `Alire` is simply provided in an archive. + +Once the archive is extracted you have to add `alr` in the environment `PATH`: +```bash +$ export PATH=/bin/:$PATH +``` + +If you try to run it on recent versions of macOS, you will get a popup saying +`“alr” cannot be opened because the developer cannot be verified.` and inviting +you to move it to the bin. The way round this is to remove the quarantine attribute, +```console +$ xattr -d com.apple.quarantine bin/alr +``` + +Alire provides GNAT toolchains hosted on x86-64 for macOS. If those toolchains do not +work for you, or if you are on another host architecture like the Apple M1, you have +the option to look at the GNAT toolchains from the community. + +## `alr` for other platforms + +If `alr` is not available on your platform, you can try to build it from +sources. Go to the [GitHub repository](https://github.com/alire-project/alire/) +for more information. + +## First steps + +The following miniguide shows how to obtain and build already packaged +projects, and create your own. First, create or enter into some folder where +you don't mind that new project folders are created by the `alr` tool + +Run `alr` without arguments to get a summary of available commands. + +Run `alr --help` for global options about verbosity. + +Run `alr help ` for more details about a command. + +### Downloading, compiling and running an executable crate + +Obtaining an executable project already cataloged in Alire is straightforward. +We'll demonstrate it with the `hello` project which is a plain "Hello, world!" +application (or you can use the `hangman` or `eagle_lander` projects as funnier +alternatives). + +Follow these steps: + +1. Issue `alr get hello` +1. Enter the new folder you'll find under your current directory: `cd hello*` +1. Build and run the project with `alr run`. This will build and then launch + the resulting executable. + + The first time you run this command, the `toolchain selection assistant` + will ask you to select your preferred default toolchains (GNAT compiler and + GPRbuild). For this getting started example, we recommend to just press + enter twice to select the defaults. + +As a shorthand, you can use `alr get --build hello` to get and build the +program in one step. + +### Creating a new crate + +Alire allows you to initialize an empty binary or library crate with ease: + +1. Issue `alr init --bin myproj` (you can use `--lib` for a library project) + + The first time you run this command, `alr` will ask a couple of questions to + automatically fill-in information about the crate: + - `GitHub login`: is used to identify the maintainer of the crate when + contributed to the community index. + - `Full name`: Name of the author of the crate + - `Email address`: Point of contact to author of the crate + + All the questions are optional for now, you can just press enter to use the + default values. + + The `alr init` command will create a basic `crate` structure in the `myproj` + directory. + +1. Enter the folder: `cd myproj` +1. Build the crate: `alr build` +1. Run the program: `alr run` + +We can now edit the sources of this executable in the `src/` directory. +For instance, add a "Hello world" to `src/myproj.adb`: +```ada +with Ada.Text_IO; +procedure Myproj is +begin + Ada.Text_IO.Put_Line ("Hello, world!"); +end Myproj; +``` + +Use `alr run` to build and run the program again: +```console +$ alr run +# Building myproj/myproj.gpr... +Compile + [Ada] myproj.adb +Bind + [gprbind] myproj.bexch + [Ada] myproj.ali +Link + [link] myproj.adb +Build finished successfully in 0.35 seconds. +Hello, world! +``` + +### The Alire manifest + +Besides the `alr` command, the main interface with Alire is the `manifest`. + +The manifest is a text file named `alire.toml` in the root directory of the +crate. It contains all sorts of information about the crate, some mandatory +such as the `name` and `version`, others optional like the `licenses`. Alire +manifests are written in [TOML](https://toml.io) format. + +You can have a look at the manifest to get a idea of its content, but nothing +has to be edited by hand so far. + + +## Dependencies and upgrading + +Alire keeps track of dependencies in the manifest (`alire.toml`) of your crate. + +Adding dependencies can be done with the `alr with` command: + +* `alr with crate_name` adds a dependency. You can immediately 'with' its + packages in your code. +* `alr with --del crate_name` removes a dependency. + +Alternatively you can edit the file to add dependencies and then issue: + +* `alr update`, which will fetch any modified dependencies in your project. + +Using `alr with` without arguments will show the current dependencies of your +project. Using one of `--solve`, `--tree`, `--versions`, `--graph` will show +different details about the complete solution needed to fulfill dependencies. + +### Add a dependency + +Let's add a dependency to the `libhello` crate. + +```console +$ alr with libhello +Requested changes: + + # libhello ^1.0.0 (add) + +Changes to dependency solution: + + + libhello 1.0.0 (new) + +Do you want to proceed? +[Y] Yes [N] No (default is Yes) +``` + +`alr` is showing the new dependency solution, i.e. all the crates in the +dependency graph and their version. + +Press enter to accept the new solution. + +`alr` will then download the sources of the `libhello` crate. + +### Use the dependency + +You can now edit the `src/myproj.adb` source file again, and write this piece +of code to call a function from the `libhello` crate: +```ada +with Libhello; +procedure Myproj is +begin + libhello.Hello_World; +end Myproj; +``` + +Run `alr run` to build and run the new executable: +```console +$ alr run +# Building myproj/myproj.gpr... +Setup + [mkdir] object directory for project Libhello + [mkdir] library directory for project Libhello +Compile + [Ada] myproj.adb + [Ada] libhello.adb +Build Libraries + [gprlib] hello.lexch + [archive] libhello.a + [index] libhello.a +Bind + [gprbind] myproj.bexch + [Ada] myproj.ali +Link + [link] myproj.adb +Build finished successfully in 0.34 seconds. +Hello, world! +``` + +As you can see, the `libhello` library sources are automatically built and +linked in your program. + +## Finding available projects + +For quick listing of crates and their descriptions you can use the `search` +command with the `--crates` switch: + +* `alr search --crates [substring]` + +Otherwise, `search` will look into releases, providing more details about specific +releases: + +* `alr search ` will look for `substring` in crate names. +* `alr search --list` will list the latest release of every crate. +* `alr search --list --full` will list all releases in the catalog. + +Even more details are obtained with: + +* `alr show ` + +This last command will show generic information. To see the one that +specifically applies to your platform: + +* `alr show --system ` + +The list of projects and their descriptions are also available on the Alire +website: + +* [alire.ada.dev](https://alire.ada.dev) + +## Build environment + +To create a build environment, `alr` sets environment variables such as +`GPR_PROJECT_PATH` before running `gprbuild`. If you want to run `gprbuild` +yourself or inside an editor (GNAT Studio), you can use the `printenv` command +to print the build environment: + +* `alr printenv` + +## Troubleshooting + +By default `alr` is quite terse and will hide the output of subprocesses, +mostly reporting in case of failure. If you hit any problem, increasing +verbosity (`-v` or even `-vv`) is usually enough to get an idea of the root of +the problem. Additionally, `-d` will show tracebacks of exceptions. + +## Running tests + +`alr` comes with a test suite for self-checks. See the instructions in the +[README](https://github.com/alire-project/alire/blob/master/testsuite/README.md) +of the `testsuite` folder. + +Additionally, you can test in batch the building of crates in your platform +with the `alr test` command. (See `alr test --help` output for instructions.) + +## Migration of an existing Ada/SPARK project to Alire + +First you have to decide on a crate name for your project, this name will have +to follow the naming rules of Alire. You can find those rules using the +command: +```bash +$ alr help identifiers +``` + +Avoid using `ada` as a prefix for your crate name, this will make the project +harder to find in a list. `ada` suffix is ok when the project is a binding for +an existing library (e.g. `sdlada`, `gtkada`). + +We will use the name `my_crate` as an example, and consider that the repository +uses the same name. + +Clone your project repository and enter the directory: +```bash +$ git clone https://github.com/github_login/my_crate.git +$ cd my_crate +``` + +At this point you have a choice: + 1. Let Alire generate a new GPR project file for you. This is recommended for + most projects, and in particular if your project has simple code + organization and GPR project file. One of the advantages is that Alire will + create a GPR project file “standardized” for best integration in the + ecosystem. + + 1. Keep your existing GPR project file. This is recommended for projects with + complex GPR project file(s). + +### 1: Using Alire GPR project file + +If you want Alire to generate a project you first have to delete the existing +GPR project file: + +```bash +$ rm *.gpr +``` + +And then use `alr init` command to create a skeleton for your crate: + +For a library: +```bash +$ alr init --in-place --lib my_crate +``` +For an application: +```bash +$ alr init --in-place --bin my_crate +``` + +If this is your first time using `alr init`, you will have to provide some +information like your name and GitHub login. + +You can ignore the warnings such as `Cannot create +'[...]/my_crate/src/my_crate.ads'`, Alire is trying to create a root package +for your crate but you probably already have one. + +From this point you can edit the GPR project file to change the source dir or +compilation flags, if needed. And then try to compile your crate with: +```bash +$ alr build +``` + +### 2: Using your own GPR project file(s) + +If you want to keep the existing GPR project file, use `alr init` with the +`--no-skel` option to skip the project skeleton creation: + +For a library: +```bash +$ alr init --in-place --no-skel --lib my_crate +``` +For an application: +```bash +$ alr init --in-place --no-skel --bin my_crate +``` +If this is your first time using `alr init`, you will have to provide some +information like your name and GitHub login. + +If your GPR project file does not match the crate name (i.e. `my_crate.gpr`), +you have to add a +`project-files` field in your `alire.toml` manifest. For instance: +```toml +project-files = ["project_file.gpr"] +``` + +Although this is not recommended (see Best practices), you can have multiple +GPR project files: +```toml +project-files = ["project_file_1.gpr", "project_file_2.gpr"] +``` + +You can now compile your crate with: +```bash +$ alr build +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..39f21bcc --- /dev/null +++ b/docs/index.md @@ -0,0 +1,101 @@ +--- +title: Docs +description: "Alire Documentation" +layout: default +--- +
+ +
+
+
+ + * Do not remove this line (it will not be displayed) + {:toc} + +
+ + The Alire documentation is maintained in this + + GitHub repository . Don't hesitate to suggest fix(es) and/or + improvement(s). + +
+
+ + + +{% include_relative introduction.md %} + +
+ +{% include_relative getting-started.md %} + +
+ +{% include_relative toolchains.md %} + +
+ +{% include_relative publishing.md %} + +
+ +{% include_relative catalog-format-spec.md %} + +
+ +{% include_relative configuration.md %} + +
+ +{% include_relative policies.md %} + +
+ +{% include_relative user-changes.md %} + +
+
+
diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 00000000..7dcbbcc7 --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,20 @@ +# Introduction + +`Alire` is a source-based package manager for the Ada and SPARK programming +languages. + +It is a way for developers to easily build upon projects (libraries or +programs) shared by the community, but also to easily share their projects for +others to build upon. + +In the Alire vocabulary, sources of projects/libraries/programs are provided by +what is called a `crate`. A crate can depend on crates, and other crates can +depend on it. For instance, the `libgpr` crate depends on the `xmlada` crate. + +Crates can have multiple dependencies, themselves having multiple dependencies. +This forms a dependency graph. Alire's main task is to automatically fetch, +build and upgrade the crates of the dependency graph so you don't have to do it +by hand. + +The main interface into the `Alire` ecosystem is a command line tool called +`alr`. diff --git a/docs/policies.md b/docs/policies.md new file mode 100644 index 00000000..83be5a71 --- /dev/null +++ b/docs/policies.md @@ -0,0 +1,88 @@ +# Policies + +## Crate ownership + +Because Alire comes late in the history of the Ada and SPARK languages we will +not apply a strict "first come, first served" policy on crate names. At least for +the first months or years, we allow ourselves a degree of control on the +projects/crates published in the index, with the following goals: + +- Long term support: Owner and maintainers of a project are most likely in the + best position to maintain the corresponding Alire crate. +- Respect the ownership of projects: Owner and maintainers of a project deserve + to be credited for their work. +- Avoid user confusion on the names of crates: Crate names should be clear with + regard to the project they contain. For instance, do not try to impersonate + existing crates or projects. + +To that end we will potentially reject a crate or transfer the ownership of +a crate. + +We count on the goodwill of the contributors to help us conduct this moderation +in a kind and courteous way. Do not submit a crate to the Alire index if you +are not willing to comply with this policy. + +As the Alire project matures, we expect to do less moderating and potentially +remove this policy in favor of a "first come, first served" policy. + +## Release immutability + +A release (identified by a unique semantic version) is protected against +changes by its integrity hashes. If errors are identified post-publication, a +release could be withdrawn, or superseded by a new one (using the appropriate +major/minor/patch/build version changes), but not modified. + +## Best practices + + - Avoid using `ada` as a prefix for your crate name, this will make the + project harder to find in a list. `ada` suffix is ok when the project is a + binding for an existing library (e.g. `sdlada`, `gtkada`). + + - Split big projects in multiple crates: + + - If your project is a collection of components (like GNATcoll for + instance) and each component has different dependencies, you should + consider splitting the collection into multiple Alire crates. The + components can still be maintained in the same repository and use the + same release archive/commit (e.g. + [gnatcoll_sqlite](https://alire.ada.dev/crates/gnatcoll_sqlite), + [gnatcoll_sql](https://alire.ada.dev/crates/gnatcoll_sql), + [gnatcoll_postgres](https://alire.ada.dev/crates/gnatcoll_postgres)). + + - If your project is an application/executable/tool, some parts of the + application may be interesting on their own and could benefit the + ecosystem. For instance a parser for a standard file format would be + useful across projects. + + - GPR project file clashes: to prevent issues when combining the GPR project + files of different crates, we recommend to follow the rules below: + + - Use a project file name that matches the name of the crate (e.g. + `my_crate.gpr` for a crate named `my_crate`) + + - Avoid using multiple GPR project files for a single crate + + - Avoid using common names for GPR project files such as `shared.gpr`, + `common.gpr`, `config.gpr`, etc. + + - Prefix GPR scenario variables with the name of your crate: + ``` + Build_Mode := External ("MY_CRATE_BUILD_MODE", "release"); + ``` + + - Avoid common names for GPR scenario variables such as `OS`, `TARGET`, + `BUILD_MODE`, `MODE`, etc. + + - For library projects, do use the "standard" `LIBRARY_TYPE` external, but + wrap it in a crate specific external: + + ``` + type Library_Type_Type is ("relocatable", "static", "static-pic"); + + Library_Type : Library_Type_Type := + external ("MY_CRATE_LIBRARY_TYPE", external ("LIBRARY_TYPE", "static")); + + for Library_Kind use Library_Type; + ``` + Having the `MY_CRATE_LIBRARY_TYPE` external will allow users to override + the value `LIBRARY_TYPE` just for this crate, if need be. diff --git a/docs/publishing.md b/docs/publishing.md new file mode 100644 index 00000000..5c7f6445 --- /dev/null +++ b/docs/publishing.md @@ -0,0 +1,267 @@ +# Publishing your projects in Alire + +Publishing a project in Alire is done with the help of the `alr publish` +command. The steps to take are described after some introductory concepts (jump +to these steps directly [here](#detailed-steps); you can also ask for help on +the [gitter channel](https://gitter.im/ada-lang/Alire) of the project. + +## General concepts + +The community index is a collection of +[TOML](https://github.com/toml-lang/toml) files stored in the +[alire-index](https://github.com/alire-project/alire-index) repository, under +the [index](https://github.com/alire-project/alire-index/blob/master/index) +directory. Each file contains a release for a crate and is named after the +crate and version it contains. A file contains the description of a release, +with other metadata. + +The complete specification of such TOML files is available in this +[document](catalog-format-spec.md). + +## New crates and releases + +Publishing a new crate is achieved through a pull-request against the index +repository, in which the TOML file for the release must be provided. + +### Index branches + +The community index is supported through two kinds of branches: + +- `stable-x.x.x` branches are used by stable versions of `alr`. +- `devel-x.x.x` branches are used to introduce breaking changes in the index + format, during the development of `alr`. + +Your `alr` version knows which branch to use, so you do not need to manually +select one. When using `alr publish` to assist on creating a release, you will +be provided with an upload link for the branch your `alr` is using. + +However, when submitting releases manually, you must decide to which branch +they will be added: selecting the latest stable branch results in the release +becoming immediately available to the latest stable `alr`. Conversely, using +the latest development branch will make the releases available for testing by +unstable clients, and will become generally available with the next stable +release of `alr`. + +Note that, as of this writing, only development branches exist, until the first +stable release of `alr` is made. + +## Checks on contributions + +Each crate is "owned" by a list of maintainers, provided with the +`maintainers-logins` property of the crate file. After the initial submission, +which will be manually approved (see the [policies](policies.md) for details), +the maintainers of a crate are the only people allowed to submit new releases +or metadata modifications to the corresponding crate. + +Other checks your submission will go through are: + +- It contains all required metadata. +- It builds on all of our CI configurations. + - You can disable an unsupported target with the `available` property. + +## Detailed steps + +Depending on how you develop your project, you can use one of the following +methods to prepare your release submission: + +### Starting from a git repository that contains an Alire workspace + +For this common use case, you need: + +- A git repository that is clean an up-to-date with its remote. + - The repository already contains the release you want to publish. + - The commit with the release must exist both locally and at the remote. +- The repository must also be an Alire-enabled workspace: + - It contains a top-level `alire.toml` manifest describing the release. +- The remote host must be one of a few trusted major open-source sites. + - This requirement is motivated by vulnerabilities identified with SHA1, + whose migration to a stronger hash is [not yet complete] + (https://git-scm.com/docs/hash-function-transition/) in `git`. + - `alr` will inform you if your host is not supported. Please contact us if + you think a site should be allowed. The complete list can be consulted by +running `alr publish --trusted-sites`. + - This is a temporary measure until more sophisticated publishing automation + is supported. See the [Remote Source Archive](#remote-source-archive) case +for alternatives to this scenario (you are not forced to change your code +hosting, or even have an online repository). + +By default, the last commit is used for the release. You can alternatively +provide another commit, tag, or branch. In any case, the git revision will be +used to obtain a final commit. That is, a release cannot evolve with a branch, +or be updated by moving a tag. + +- Within the repository, issue + +`alr publish` + +to use the last commit. You can, alternatively, issue: + +`alr publish . ` + +Note the path between `publish` and your non-commit revision. Likewise, you can +run this command from outside your repository, as long as you supply the proper +path to it. + +At this point, `alr publish` will carry out a few tests and, if everything +checks out, it will create a `${repo_root}/alire/releases/crate-version.toml` +file. This file must be submitted to the community index via a PR. A link for +conveniently creating this PR will also be provided by `alr`: + +- Upload the generated index manifest file (`crate-version.toml`) to the + supplied page link on github and create a pull-request. + +### Starting with a remote repository, without local clone + +This case is analogous to the previous one, but you don't need the local +repository. The same considerations about allowed hosts discussed in the +previous scenario apply: + +- The repository already contains the commit with release you want to publish. +- The repository must also be an Alire-enabled workspace: + - It contains a top-level `alire.toml` manifest describing the release. +- The remote host must be one of a few trusted major open-source sites. + - This requirement is motivated by vulnerabilities identified with SHA1, + whose migration to a stronger hash is [not yet complete] + (https://git-scm.com/docs/hash-function-transition/) in `git`. + - `alr` will inform you if your host is not supported. Please contact us if + you think a site should be allowed. The complete list can be consulted by +running `alr publish --trusted-sites`. + +The only difference when invoking `alr` is that you must supply the remote URL +and commit (not a tag or branch). The commit must exist in the repository: + +`alr publish ` + +The checks will be carried out and the outcome will be the same as in the +previous scenario. + +### Starting with a remote source archive + +This case can be used when you use another VCS other than `git`, or do not work +with an online repository. + +In this use case, you start from an already prepared final remote tarball/zipball: + +- The archive **must** contain a single directory (name not important) + containing, in turn, the sources. This is the kind of archives + automatically generated by GitHub, GitLab, Sourceforge... or through + `git archive`. +- The `alire.toml` manifest must be placed at the top-level with the rest of + your sources (inside the same single directory just described), containing + all required information except for the `[origin]` table, which will be created + by `alr`. +- This archive **must not** contain the `alire` directory generated by + `alr` in working directories. The `alire` directory is designed to be + put in your VCS ignore list. + +With the source archive already uploaded to the online host where it is going +to be served (there are no restrictions on this host), you should issue + +`alr publish ` + +and the publishing process will carry on as in the previous cases, performing +the checks and providing you with a file to submit to the index, and an upload +URL to do so. + +### Starting with a local source folder + +Invoking `alr publish --tar` inside an Alire workspace will result in the +creation of a source archive at `${CRATE_ROOT}/alire/archives/`. This archive +must be manually uploaded (for now) by the user to a publicly accessible +hosting service. + +After the upload, the user can supply the URL to fetch this archive to the +publishing assistant (which will be waiting for this information), and the +assistant will resume as if it had been invoked with `alr publish ` +(see #starting-with-a-remote-source-archive). + +### Support for complex projects whose sources become multiple Alire crates + +In case your project does not easily map to a single Alire crate (e.g., because +you manage multiple project files with different dependencies, or there are +other reasons to keep the sources together even if they generate several +crates), you have several options. + +The simplest one is to store each crate in a subdirectory within the +repository, with its corresponding Alire manifest, sources and project files. +With the repository up-to-date with the remote, and the local copy checked out +at the desired commit, issuing `alr publish` in each subdirectory will properly +recognize that the crate is nested below the repository root. Furthermore, when +using this method, all nested crates will share the same storage when retrieved +as dependencies. + +A similar alternative would be to publish each crate relying on source archives +In this case you can use `alr publish --tar` normally inside each subdirectory. +Compared with the previous options, there is no disadvantage to this method if +you favor source archives. + +Another possibility would be to use a bit of scripting to create temporary +subfolders with the described organization, and again using `alr publish --tar` +normally. + +Finally, the `alr publish` command provides a `--manifest ` switch to +work in place with several crates. You can have different manifests at custom +locations (other than the expected `./alire.toml`) and provide each one in turn +with the `--manifest` switch to create their respective crate. In this case, +`alr` temporarily uses the given file as the root manifest, so all sources will +be packaged for each crate. This is a bit wasteful, but as long as each crate's +project files are properly defined (no shared sources), this remains an option +to split the sources into crates. With the current support for autodetection of +crates in subdirectories, this option is not recommended for new repositories. + +### Starting from other configurations + +If your case does not fit well into any of the situations above we definitely +want to hear about it, to see how it can be brought into existing or new Alire +workflows. + +### Creating the PR via cloning. + +Instead of uploading the generated index manifest file via the github upload +link, you can follow the usual procedure to submit a PR to a github repository: + +1. Fork the community index to your GitHub account. +1. Clone your fork locally and place generated manifest at the intended folder. +1. Commit and push the changes to your fork. +1. Create the pull request from your fork against the community repository + through the GitHub web interface (or the + [`hub`](https://github.com/github/hub) tool). + 1. The base branch you select for the pull request will determine where + your changes will become available; see the section on [index + branches](#index-branches) for details. + +## Publishing outcome + +Once the pull request is verified and merged, the new release will become +available for normal use. The open source Ada ecosystem needs all the help it +can get, so thank you for contributing! + +## ALR Badge + +If you like, you can add a nice, shiny badge to your project page which links +back to the [Alire website](https://alire.ada.dev). This can even serve as a +reminder to republish your project once you published a new release, because +the badge shows the latest version of your project that is known to Alire. + +The [Alire website](https://alire.ada.dev) is updated once a day, every day. +Hence, after we accepted and merged your pull request, it might take up to a +day for your changes to appear there, usually less. + +To add the badge, all you need to do is add the line + +``` +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/YOUR_CRATE.json)](https://alire.ada.dev/crates/YOUR_CRATE.html) +``` + +to your `README.md`. Of course, you need to replace the string `YOUR_CRATE` with +your actual project's crate name. + +Here's an example: + +``` +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/hal.json)](https://alire.ada.dev/crates/hal.html) +``` + +This will be shown as: + +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/hal.json)](https://alire.ada.dev/crates/hal.html) diff --git a/docs/toolchains.md b/docs/toolchains.md new file mode 100644 index 00000000..2ab1e35c --- /dev/null +++ b/docs/toolchains.md @@ -0,0 +1,80 @@ +# Toolchain management + +Toolchains are comprised by a GNAT compiler and a `gprbuild` project file +processor. Alire strives to simplify the availability of GNAT releases, which +are packaged to be retrieved and used with ease. + +The user can now select a preferred compiler via `alr toolchain --select`. +Releases may still override this selection (for example to use a +cross-compiler). + +There are two kind of dependencies on GNAT compilers: generic dependencies on +the `gnat` crate, which apply to every compiler, and dependencies on a precise +native or cross-compiler. + +The native compiler for each platform is always `gnat_native`, whereas +cross-compilers follow the naming convention `gnat_` (e.g., +`gnat_riscv_elf`). Alire will only offer to install valid cross-compilers for +the host platform. + +## Identifying available compilers + +Compilers available for download can be listed with `alr search --full +--external-detect gnat_`. They will also be shown by the selection assistant, +`alr toolchain --select`. + +Running `alr toolchain` without arguments will show the installed compilers and +the preferred compiler, if any. + +## Manual compiler installation + +Besides selecting a default compiler with `alr toolchain --select`, the user +may install other compilers via `alr toolchain --install`. Installed but +unselected compilers will not be used, though, unless a crate explicitly +requests them via dependencies. + +Compilers can be removed with `alr toolchain --uninstall`. + +## Automatic compiler installation + +If a crate requires a target-specific compiler via its dependencies, `alr` will +attempt to use first a matching installed compiler. Otherwise, a matching +compiler will be automatically downloaded. + +Generic dependencies on `gnat` will never cause a compiler download. + +## Automatic compiler selection by Alire + +When a build is launched, or `alr printenv` is run to obtain a build environment, +`alr` will use the available compilers as follows: + +1. Any target-specific compiler needed due to dependencies will be +selected. +1. Otherwise, if the user has defined a preferred compiler, it will be +selected. +1. If no preferred compiler has been defined, Alire will rely on the existing +user environment. + +## Specifying dependencies on GNAT compilers for crate publishing + +From the point of view of a user preparing a release for publication, these +are the considerations to bear in mind: + +- Do not use any dependency on a compiler if you do not have a reason to do so. +- Use dependencies on `gnat` to specify known compiler version restrictions. +- Use dependencies on a precise gnat cross-compiler (e.g., `gnat_riscv_elf`) + when your crate is purposely only available for such a target. +- It is normally not necessary to specify a dependency on the native compiler + (`gnat_native`) as that would unnecessarily limit the availability of a + library crate that might be useful to dependent cross-target crates. +- It may be useful to depend on `gnat_native` in cases where a crate builds a + tool to be used always in the host platform, for example to be used in some + action during the build process. + +## Note about cross-compilation + +Independently of the compiler made available by `alr` in the environment, the +crate project file still must define an appropriate `Target` attribute for the +desired compiler. At the moment, Alire does not examine project file contents +to identify necessary compilers, and relies only on regular `depends-on` +dependencies. diff --git a/docs/user-changes.md b/docs/user-changes.md new file mode 100644 index 00000000..2e295c55 --- /dev/null +++ b/docs/user-changes.md @@ -0,0 +1,584 @@ +# User-facing changes log + +This document is a development diary summarizing changes in `alr` that notably +affect the user experience. It is intended as a one-stop point for users to +stay on top of `alr` new features. + +## Release 1.2 + +### New subcommand for listing and manual triggering of actions + +PR [#983](https://github.com/alire-project/alire/pull/983) + +Actions defined in a working release can be listed now with `alr action`. A +specific kind of action can be triggered by specifying its kind. Actions in the +complete dependency tree can be listed and triggered with the `--recursive` +switch. + +```console +$ alr action # Display actions defined in the root release +$ alr action --recursive # Display all actions in the root and dependencies +$ alr action post-build # Run post-build actions in the root release +$ alr action post-build -r # Run post-build actions in the root and dependencies +``` + +### Support for crates in repository subfolders (monorepos) + +PR [#939](https://github.com/alire-project/alire/pull/939) + +A crate can now be located nested within a repository and still be published +as a repository origin. This enables simpler publishing of such crates, as `alr +publish` will automatically recognize the situation. For example, let us say we +have this structure: + +``` +my_repo + +-- my_crate + +-- my_crate_examples +``` + +Running `alr publish` at `./git_repo/my_crate` or +`./git_repo/my_crate_examples` will detect that the crate is not at the +root and adjust the origin metadata to take into account the extra path. + +Other typical hierarchies that should likewise work are: + +``` +my_crate (also a repository) + +-- examples + +my_repo + +-- crate1 + +-- examples + +-- crate2 + +-- examples +``` + +At this time `alr publish` will not remove pins, so that is still a manual +adjustment that the user may have to perform prior to publishing; that is, the +manifest at each nested crate must be manually readied for publishing (just as +for any other regular crate). + +### Root crate build profile + +PR [#896](https://github.com/alire-project/alire/pull/896) + +The default build profile for the root crate is `Development`. This +can be changed with the `--release`, `--validation` and `--development` +switches for `alr build`. + +```console +$ alr build --release # build with release profile +$ alr build --validation # build with validation profile +$ alr build --development # build with development profile +$ alr build # build with development profile +``` + +### Build profiles and switches + +PR [#895](https://github.com/alire-project/alire/pull/895) + +As part of the crate configuration feature, Alire will generate a list of +compiler switches in the configuration GPR file. The list of switches is +controlled from two features: + - build-profiles + - build-switches + +### User defined command aliases + +PR [#853](https://github.com/alire-project/alire/pull/853) + +It is now possible to define in configuration (local or global) aliases for the +`alr` commands. + +```console +$ alr config --set --global alias.graph 'show --graph' +$ alr graph +``` +Will run the `alr show` command with the `--graph` switch. + +### New command `alr exec -- ` + +PR [#853](https://github.com/alire-project/alire/pull/853) + +This new command takes an executable and arguments and run them in the Alire +environment/context of the current crate. + +```console +$ alr exec -- sh -c 'echo ${ALIRE}' +True +``` + +### Pass alr clean switches to gprclean + +PR [#853](https://github.com/alire-project/alire/pull/853) + +Using the `--` delimiter the switches and arguments for `alr clean` can now be +passed to the underlying `gprclean` execution. + +For instance: +```console +$ alr clean -- -XTEST=42 +``` + + +### Pass alr build switches to gprbuild + +PR [#850](https://github.com/alire-project/alire/pull/850) + +Using the `--` delimiter, the switches and arguments for `alr build` are now +passed to the underlying `gprbuild` execution. + +For instance: +```console +$ alr build -- -f +``` +will force recompilation. + +### Global switches only allowed before sub-command + +PR [#850](https://github.com/alire-project/alire/pull/850) + +Before this change the global switches (`-f`, `-n`, `--config=`, etc.) could be +placed anywhere on the command line. For instance, the following two commands +were equivalent: +```console +$ alr -f show +$ alr show -f +``` + +Global switches are now only allowed before the sub-command name. Such that: +```console +$ alr -f show # Is OK +$ alr show -f # Is not OK (unrecognized option '-f' for 'show') +``` + +## Release `1.1` + +### Lockfile moved to `alire` folder + +PR [#789](https://github.com/alire-project/alire/pull/789) + +The lock file (`alire.lock`) is now a purely internal file, regenerated +as needed from scratch, and needs not be put under version control. Since, +furthermore, this file is not intended for user edition or inspection, it is +now created inside the `alire` folder of a crate. + +Existing lock files at the root of a crate will be automatically migrated to +their new location the first time an `alr` command that uses the lock file is +run inside a crate with the old situation. + +This change obsoletes the recommendation that accompanied PR +[#501](https://github.com/alire-project/alire/pull/501) about putting the lock +file under version control. + +### Conflicting releases + +PR [#781](https://github.com/alire-project/alire/pull/781) + +For releases that have known incompatibilities (duplicated source names, +drop-in equivalent crates), it is now possible to express this information +through a `forbids` table array, with the same syntax as dependencies. For +example: + +``` +[[forbids]] +conflicting_crate = "^1" +``` + +Releases related by a `forbids` property will not appear simultaneously as +dependencies in a solution, as the solver will discard these combinations. + +### Toolchain management + +PR [#775](https://github.com/alire-project/alire/pull/775) + +A variety of GNAT compilers (native and cross-target) is now available through +Alire. These compilers are managed with the `alr toolchain` new command. The +available compilers can be listed with `alr search --full gnat_`. + +Toolchain configuration is common to all crates in the active configuration +prefix (which can be switched with the global `-c` option or by providing a +path with the `ALR_CONFIG` environment variable). + +The `alr toolchain --select` subcommand allows selecting the preferred default +compiler (or none at all, to continue using the previous mode of operation) for +crates that do not specify one. + +Crates that require a particular cross-compiler may now specify it as a regular +dependency on, e.g., `gnat_riscv_elf`. + +In addition to a default compiler, the preferred version of a compiler for a +target may be made available with `alr toolchain --install `. +When launching a build, Alire will use preferably the default selected compiler +or, if the default is for a different target, one of the other installed +compilers. If no installed compiler is available for the crate target, Alire +will offer to download the appropriate cross-target compiler. + +Finally, running `alr toolchain` without arguments will list the currently +installed compilers and gprbuild versions. + +### Pins to git branches + +PR [#754](https://github.com/alire-project/alire/pull/754) + +A new option for remote pins exist to track branches: + +``` +[[pins]] +wip = { url = "https://gitrepo.com/wip.git" branch="feature" } +``` + +Running `alr update` will pull any changes from the branch. + +### Pins stored in the manifest + +PR [#743](https://github.com/alire-project/alire/pull/743). + +The options to modify pins through the command-line (`with --use`, `alr pin +[--unpin] crate` have been disabled in favor of direct edition of the manifest. +This way, pins are more robust against lockfile format changes. These kinds of +pins exist: + +``` +[[pins]] +foo = { version = "1.3.2+bugfix" } # Require a specific version +bar = { path = "../my/bar" } # Use a local crate to override a dependency +baz = { url = "https://github.com/baz.git" } # No commit, will use HEAD, will update on `alr update` +gru = { url = "https://gitlab.com/gru.git" commit="123456890abcdef..." } # Explicit commit, won't update +``` + +### Automatic GPR 'with' now in crate configuration + +PR [#740](https://github.com/alire-project/alire/pull/740). + +When adding or removing dependency with `alr with`, the list of `with` +statement for each project files of the dependencies is now automatically added +to the GPR crate configuration file instead of the root project file. + +### Git remotes for pinned releases + +PR [#715](https://github.com/alire-project/alire/pull/715) + +The pinning commands (`alr with --use`, `alr pin --use`) now also accept a git +repository URL, which will be downloaded and used to override a dependency, as +previously could be done only with local directories. The pinning feature works +recursively, so unpublished crates can now have complete dependencies prior to +submission to the community index (which relies only on indexed dependencies). + +### Switch to help with publishing of multi-crate repositories + +PR [#635](https://github.com/alire-project/alire/pull/635). + +The `alr publish` command now supports a new `--manifest ` switch, to +help with packaging sources that provide several crates. Maintainers can now +prepare different manifest files for the corresponding crates, and select each +one in turn for publishing, without the repository itself being an actual Alire +crate. Source management must still be taken care of by maintainers; sources +should not be shared by project files in different crates intended to be +simultaneously included. + +### Configuration of crates + +PR [#699](https://github.com/alire-project/alire/pull/679). +PR [#673](https://github.com/alire-project/alire/pull/673). + +Pre-compilation parameterization of source files can be now achieved by +declaring variables and initial constant values for these variables in the +Alire manifests. This allows customizing code in both the root crate and +dependencies. For example: + +```toml +[configuration.variables] +Device_Name = {type = "String", default = "no device name"} +Debug_Level = {type = "Enum", values = ["Info", "Debug", "Warn", "Error"], default = "Warn"} +Buffer_Size = {type = "Integer", first = 0, last = 1024, default = 256} + +[configuration.values] +crate_1.var1 = 42 +crate_1.var2 = true +crate_2.var1 = "Debug" +``` + +Check more examples and details in the catalog specification section ["Using +configuration"](https://github.com/mosteo/alire/blob/master/doc/catalog-format-spec.md#using-crate-configuration). + +## Release `1.0` + +### Narrow down versions for dependencies given without restrictions + +PR [#675](https://github.com/alire-project/alire/pull/675). + +When a user requests a dependency without narrowing down its version set (e.g., +`alr with foo`), the solved version will be used to instead add an +"update-safe" dependency (e.g., `foo^1.x`, `foo~0.x`). To truly request any +version, this can be explicitly entered as `alr with 'foo>=0'`. + +This behavior can be disabled by setting the `solver.autonarrow` configuration +option to false. + +### The command `alr list` has been renamed to `alr search --crates` + +PR [#671](https://github.com/alire-project/alire/pull/671). + +To consolidate search functionality under the single `alr search` command, the +old behavior of `alr list` can now be achieved with `alr search --crates`. By +default, `alr search` looks into releases, but now it can look too into crates +with the new `--crates` switch. + +### Document caret/tilde use for pre-1.0 versions, and warn about it + +PR [#669](https://github.com/alire-project/alire/pull/669). + +Alire does not change the meaning of caret (^) and tilde (~) operators for +pre/post-1.0 versions. This interpretation has been clarified in the catalog +specification, and `alr` will warn about any suspicious usage. This warning may +be disabled by the user with the new `warning.caret` configuration option. + +### Do not perform build relocations + +PR [#667](https://github.com/alire-project/alire/pull/667). + +GPRBuild machinery for build relocation is incompatible with some use cases, so +now all builds are performed in place, using the locations given in project +files. This should only have a user-visible impact for pinned dependencies, +which will see changes in their build directory when Alire builds for dependent +crates are run. + +### Switch to check for unknown enumeration values in the index + +PR [#656](https://github.com/alire-project/alire/pull/656). + +To allow backwards-compatible use of new supported environment configurations +in the index, unknown values in dynamic case expressions are silently ignored +when loading an index. In order to allow pinpointing these values (or truly +wrong entries), a new switch `alr index --check` can be used that will reject +an index containing unknown values. + +This error, either in indexes or a local manifest, can be downgraded to a +warning with `--force`. + +### Switch manifest `licenses` field to SPDX expressions + +PR [#629](https://github.com/alire-project/alire/pull/629). + +The `licenses` in crate manifests now expects a valid [SPDX +expression](https://spdx.org/licenses/). Custom license identifiers are +accepted with the format: `custom-[0-9a-zA-Z.-]+`. + +Example: +```toml +licenses = "MIT OR custom-my-own-license" +``` + +For the `1.x` release, usage of the previous `licenses` format is obsolete and +will trigger a warning. In future major releases this format will not be +accepted at all. + +### Custom editor command for `alr edit` + +PR [#611](https://github.com/alire-project/alire/pull/611). + +The code editor launched by `alr edit` can now be configured instead of using +the hard-coded GNATstudio. Use +`alr config --set --global editor.cmd " "` +for custom editor and command line arguments. The token ${GPR_FILE} is +replaced by a path to the project file to open. + +For instance: +```shell +$ alr config --set --global editor.cmd "emacs ${GPR_FILE}" +``` + +The default editor is still GNATstudio. + +## Release `0.7-beta` + +### Assistance to generate and publish as tarball + +PR [#529](https://github.com/alire-project/alire/pull/529). + +By using `alr publish --tar`, the publishing assistant starts with the +creation of a tarball of the sources in an Alire workspace. The user must +upload this tarball to an online location, after which the assistant proceeds +as if it had been invoked with `alr publish http[s]://url/to/tarball.tgz`. + +### First publishing assistant + +PR [#527](https://github.com/alire-project/alire/pull/527). + +A new publishing assistant can be invoked with `alr publish [URL [commit]]`. At +this time, the assistant requires that all necessary metadata for a release, +excepting the `[origin]` table, is informed in the `alire.toml` file. + +The assistant has local and remote modes of operation. In the local mode, the +user invokes the assistant from within a repository on its computer that is +up-to-date with its remote, and that contains an Alire workspace. In this case, +it is enough to run `alr publish`. + +In the remote mode, the user must prepare a source file or repository in their +final online locations, and use `alr publish []`, with the commit +being mandatory for repositories and not needed for source archives. + +In all cases, `alr` will fetch the sources, perform a few checks on the +completeness of the information, and generate a final metadata file, intended +to be submitted to the community index via pull request. An upload link is +provided for convenience that can be used to create this pull request. + +Complete information about this feature is available in the updated +[Publishing](publishing.md) page. + +Other features of the assistant are that, in the local mode, a branch or tag +can be specified to pinpoint a commit, and that the test build of the crate can +be skipped with `--skip-build`. + +### Move manifest and lock files to top-level folder + +PR [#501](https://github.com/alire-project/alire/pull/501). + +The metadata information about a crate/release has been reworked to simplify +user workflows and internal operation. Metadata is stored in the manifest file, +which as of this PR is always called `alire.toml` and located at the root +directory of an Alire-enabled workspace. A companion lock file, `alire.lock`, +stores information about the dependency solution and overrides. + +These two files can be safely put under version control. The manifest, in +particular, is intended to evolve with your Ada project, by being an up-to-date +record of any necessary dependencies and other properties (version, project +files, executables, maintainers, etc.). + +The manifest internal format has been simplified by eliminating the possibility +of multiple releases from its contents, which removes some nesting, and +removing or making optional some fields that only make sense at the time of +publishing a crate to some index. Check the [catalog-format-spec.md] file for +details. + +The `alire` directory continues to exist, and it is used to store the source +code of dependencies, local configuration and backup files. It can be safely +ignored for VCS, as its contents are either not critical or can be +reconstructed from the manifest information. + +### New `alr with --versions` switch + +PR [#464](https://github.com/alire-project/alire/pull/464). + +A new `alr with --versions` switch is available to obtain version-focused +information of dependencies. Namely, the combined dependencies on a crate are +shown, with the release in the solution, and the last known version for the +crate: +``` +CRATE DEPENDENCY SOLVED LATEST +a_project (root) 0.0.0 unknown +hello ^1 1.0.1 4.0.0 +libhello (^1.0) & (~1.0) 1.0.1 2.0.0 +superhello * 1.0.0 1.0.0 +unobtanium * missing unknown +wip * /fake unknown +``` + +### New `alr with --graph` and `alr with --tree` switches + +PR [#465](https://github.com/alire-project/alire/pull/465). + +The ASCII art dependency graph generated with `graph-easy`, that was printed at +the end of `alr with --solve` output, is moved to its own `alr with --graph` +switch. A fallback tree visualization is generated when `graph-easy` is +unavailable. This new tree visualization can also be obtained with `alr with +--tree`: +``` +my_project=0.0.0 +├── hello=1.0.1 (^1) +│ └── libhello=1.0.1 (^1.0) +├── superhello=1.0.0 (*) +│ └── libhello=1.0.1 (~1.0) +├── unobtanium* (direct,missed) (*) +└── wip* (direct,linked,pin=/fake) (*) +``` + +### Automatically 'with' GPR project files from dependencies + +PR [#458](https://github.com/alire-project/alire/pull/458). + +When adding or removing dependency with `alr with`, a list of `with` statement +for each project files of the dependencies can be automatically added to the +root project file: +``` +-- begin auto-gpr-with -- +-- This section was automatically added by Alire +with "libhello.gpr"; +-- end auto-gpr-with -- + +project Test is +... +``` + +This feature can be permanently enabled or disabled with a local or global +configuration option: +```bash +alr config --global --set auto-gpr-with false +``` + +Crates with project files not compatible with this feature can disable it using +the `auto-gpr-with` entry: +```toml +auto-gpr-with=false +``` + +### Show release-specific dependency sets in solutions + +PR [#453](https://github.com/alire-project/alire/pull/453). + +The dependency solution shown with the `--solve` switch now details for each +release the particular version set with which a dependency is brought into the +dependency closure. For example: + +``` +Dependencies (graph): + hello=1.0.1 --> libhello=1.0.1 (^1.0) + superhello=1.0.0 --> libhello=1.0.1 (~1.0) +``` + +### Use crate metadata when pinning to a directory + +PR [#450](https://github.com/alire-project/alire/pull/450). + +When pinning a dependency to a directory (`alr pin|with --use`), detect +if the target contains Alire metadata (as usual, in an `alire` subdir). In that +case, use it to determine further dependencies and project file scopes. Also, +the target dependency name is verified. + +For such a target directory, a shortcut `with` command is available since the +crate name can be determined from the metadata: `alr with --use +/path/to/target` (note the absence of a crate name). + +### Allow working with incomplete solutions + +PR [#447](https://github.com/alire-project/alire/pull/447). + +Before this patch, any change in dependencies that resulted in an incomplete +solution caused a final "invalid solution" error. Now, any incomplete solution +will be presented to the user with details about the unfulfilled dependencies. +This solution can be accepted and worked with normally, although the user is +responsible to provide in the environment any missing project files. + +This change affects all commands that compute a dependency solution, i.e., +`get`, `pin`, `update`, `with`. + +### Use a directory to fulfill a dependency + +PR [#439](https://github.com/alire-project/alire/pull/439) + +A local path can now be used to fulfill a dependency. The path can be supplied +during initial dependency addition or afterwards during pinning, via the +`--use` switch. Such a path will be added to the environment generated by `alr +setenv`. Examples: + +```bash +$ alr with some_crate --use /some/absolute/or/relative/path +# To simultaneously add a dependency and the directory to use for its GPR file. +# The dependency needs not to exist in the loaded indexes. + +$ alr with indexed_crate +$ alr pin indexed_crate --use /path/to/gpr/containing/folder +# To pin a previously added dependency. +``` diff --git a/index.md b/index.md new file mode 100644 index 00000000..3bdac05b --- /dev/null +++ b/index.md @@ -0,0 +1,150 @@ +--- +layout: page +--- + + + + +
+ +
+
+ Download for +
+
+
+ +
+ + + +## ALIRE: Ada LIbrary REpository + +A catalog of ready-to-use +[Ada](https://en.wikipedia.org/wiki/Ada_(programming_language))/[SPARK](https://en.wikipedia.org/wiki/SPARK_(programming_language)) +libraries plus a command-line tool (`alr`) to obtain, build, and incorporate +them into your own projects. It aims to fulfill a similar role to Rust's +`cargo` or OCaml's `opam`. + +### Design principles + +`alr` is tailored to userspace, in a similar way to Python's virtualenv. A +project or workspace will contain all its dependencies. + +Some projects require binary packages from the distribution (Debian/Ubuntu's +apt, msys2's pacman on Windows). In this case the user will be asked to +authorize an installation through the distribution package manager. + +Properties and dependencies of projects are managed through a TOML file. This +file exists locally for working copies of projects, and the [Alire community +index](https://github.com/alire-project/alire-index) stores the files +corresponding to its projects. + +The complete build environment is automatically set up by Alire, thus freeing +the user from concerns about installation paths. The user simply adds +dependencies to the `alire.toml` manifest, either from the command-line +(`alr with`) or a text editor, Alire handles the rest. + +### Supported platforms + +`Alire` builds are available for Linux x86-64, Windows x86-64 and macOS x86-64. +For all those platforms, recent Ada compiler (GNAT FSF) are provided including +cross compilers for ARM, RISC-V and AVR. + +For other platforms, Alire can be built from sources using a GNAT FSF compiler +version 9.2 onward. + + + + + +{% assign badge_url = "https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/alire-badge.json" %} + + +{{ site.data.update.date }} diff --git a/network.md b/network.md new file mode 100644 index 00000000..2c972d19 --- /dev/null +++ b/network.md @@ -0,0 +1,161 @@ +--- +title: Network Graph +layout: default +--- + + + +
+ +Controls: Mouse wheel to zoom in and out, left click to move around or drag a +node, double-click to open node page. + +
+ + + + + + +
+
+ + + + diff --git a/search.html b/search.html new file mode 100644 index 00000000..9da5b522 --- /dev/null +++ b/search.html @@ -0,0 +1,22 @@ +--- +title: Search +description: "Search this site" +layout: page +permalink: /search/ +tipue_search_active: true +exclude_from_search: true +--- + +
+
+
+
+
+ +
+ + diff --git a/tags.md b/tags.md new file mode 100644 index 00000000..4a2e5e29 --- /dev/null +++ b/tags.md @@ -0,0 +1,97 @@ +--- +title: Tags +description: "Index of crate tags" +layout: page +permalink: /tags/ +popular_count: 10 +--- + + + + + +{% capture tags_with_count %} + {% for tag in site.data.tags %} + {{ tag.crates.size | plus: 1000000 }}#{{ tag.name }}#{{ tag.crates.size }} + {% endfor %} +{% endcapture %} + +{% assign sorted_popular_tags = tags_with_count | split:' ' | sort | reverse %} +{% assign top_popular_tags = sorted_popular_tags | slice: 0, page.popular_count %} + +### Top {{ page.popular_count }} Tags +
+{% for tag in top_popular_tags %} +{% assign tagitems = tag | split: '#' %} +{% assign name = tagitems[1] %} +{% assign count = tagitems[2] %} +#{{name}}({{count}}){% endfor %} +
+ +{% for tag in top_popular_tags %} + {% assign tagitems = tag | split: '#' %} + {% assign name = tagitems[1] %} +
    + {%- for crate in site.crates -%} + {%- if crate.tags contains name %} +
  • {{ crate.title }} {{ crate.short_description }}
  • +{%- endif %}{%- endfor %} +
+{% endfor %} + +
+### All Tags +{% assign alphabet= "0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" | split: ' ' %} +{% for letter in alphabet %} + {% capture filtered_tags %} + {% for tag in site.data.tags %} + {% assign tag_first_letter = tag.name | upcase | slice: 0 %} + {% if tag_first_letter == letter %} + {{ tag.name }} + {% endif %} + {% endfor %} + {% endcapture %} + {% assign filtered_list = filtered_tags | split: ' ' | sort %} + + {% if filtered_list.size > 0 %} +{{ letter }} +
+{% for tag in filtered_list %} +#{{ tag }}{% endfor %} +
+ + {% for tag in filtered_list %} +
    + {%- for crate in site.crates -%} + {%- if crate.tags contains tag %} +
  • {{ crate.title }} {{ crate.short_description }}
  • +{%- endif %}{%- endfor %} +
+{% endfor %} +

+ {% endif %} +{% endfor %} + +{{ site.data.tags.size }} tags. diff --git a/transition_from_gnat_community.md b/transition_from_gnat_community.md new file mode 100644 index 00000000..b06a810d --- /dev/null +++ b/transition_from_gnat_community.md @@ -0,0 +1,151 @@ +--- +title: Transition from GNAT Community +layout: page +--- + +In May 2022 AdaCore announced [the end of the GNAT Community release]( +https://blog.adacore.com/a-new-era-for-ada-spark-open-source-community). +This document provides instructions on how to continue Ada/SPARK programming +without the GNAT Community release. + +One of the characteristics of GNAT Community was that it came with many tools +and libraries all in one package: + + - A compiler and debugger: GNAT and GDB + - An IDE: GNAT Studio + - SPARK support with GNATprove + - Pre-built libraries: Gnatcoll, XMLada, Libadalang, etc. + +You will find below three ways to replace the content of GNAT Community with +the same tools and libraries but from different releases. + +# Using the Alire package manager + +Alire is a source-based package manager for the Ada and SPARK programming +languages. + +It is a way for developers to easily build upon projects (libraries or +programs) shared by the community, but also to easily share their projects for +others to build upon. + +In the Alire vocabulary, sources of projects/libraries/programs are provided by +what is called a crate. A crate can depend on other crates, and other crates +can depend on it. For instance, the libgpr crate depends on the xmlada crate. + +Crates can have multiple dependencies, themselves having multiple dependencies. +This forms a dependency graph. Alire's main task is to automatically fetch, +build and upgrade the crates of the dependency graph so you don't have to do it +by hand. + +The main interface into the Alire ecosystem is a command line tool called alr. +Alire is mostly a command line tool, however you will see that once the project +is set up you can start your favorite IDE and forget about Alire for the most +part. + + +### Compiler and debugger + +Since version 1.1, binary releases of GNAT and GDB are provided by Alire. The +supported platforms are Windows x64-64, Linux x86-64, and macOS x86-64, +including cross compilers for ARM and RISC-V on all three hosts. + +When first running alr, you can select your preferred compiler. Using the +default choices, Alire will provide the latest GNAT FSF available. + +### IDE + +For IDEs, one option is [Visual Studio Code](https://code.visualstudio.com/) +with the +[Ada extension](https://marketplace.visualstudio.com/items?itemName=AdaCore.ada). + +Another one is GNAT Studio. As of today Alire doesn't install GNAT Studio +automatically, but you can get a release for Windows x64-64 or Linux x86-64 +from the repository: +[GNAT Studio on GitHub](https://github.com/AdaCore/gnatstudio/releases) Once +GNAT Studio is installed and in the PATH, you only have to use the command +`$ alr edit` in your crate to start it. + +### SPARK + +The SPARK formal verification tool GNATprove is available as a binary release +for Windows x64-64, Linux x86-64 and macOS x86-64. To use it, simply add +gnatprove as a dependency of your crate: +```console +$ alr with gnatprove +``` + +### Libraries + +All the libraries provided in GNAT Community are now available in easy to build +source crates in the Alire index. Simply add the required library as a +dependency of your crate: +```console +$ alr with xmlada +$ alr with libadalang +``` + +## Start a new Alire project (crate) + +The repository [Ada_SPARK_Workflow](https://github.com/alire-project/ada_spark_workflow) +provides an example as well as instructions on how to make a new Alire +project and use all the advantages of the package manager. It also shows +how to use GitHub features to reach the highest open source software quality +standard. + +## How to convert a GNAT Community project to Alire + +The Alire documentation contains a section on migration of existing Ada/SPARK +project to the Alire workflow: [Migration of an existing Ada/SPARK project to +Alire](https://alire.ada.dev/docs/#migration-of-an-existing-adaspark-project-to-alire). + +# Using individual packages + +This solution is the closest to the GNAT Community workflow. As part of the +Alire project a few tools are pre-built from the FSF sources and available for +download. When using Alire these tools are automatically downloaded for you, +but you can also decide not to use Alire and install them by hand. + +Other than manual installation of the components, the main drawback of this +solution is that you do not have access to all the libraries of the Alire +ecosystem. + +### How to install + +Extract all the archives listed below under the same root directory. + +If you only want to use the tools from GNAT Studio, you should just have to run +GNAT Studio executable from `bin/` directory. + +If you want to use the command line, add the `bin/` directory from your root +installation to the PATH environment variable. + +### Compiler, GPRbuild, and debugger + +Builds of GNAT FSF, GPRbuild, and GDB are available in the Alire GNAT-FSF-builds +repository: [github.com/alire-project/GNAT-FSF-builds/releases](https://github.com/alire-project/GNAT-FSF-builds/releases) + +### IDE + +For GNAT Studio, you can download a binary public release from the repository: +[github.com/AdaCore/gnatstudio/releases](github.com/AdaCore/gnatstudio/releases). You can also consider using +[Visual Studio Code](https://code.visualstudio.com/) with the [Ada extension](https://marketplace.visualstudio.com/items?itemName=AdaCore.ada). + +### SPARK + +Builds of GNATprove for SPARK are also available from the Alire GNAT-FSF-builds +repository: [github.com/alire-project/GNAT-FSF-builds/releases](https://github.com/alire-project/GNAT-FSF-builds/releases) + +### Libraries + +With this solution, you have to build libraries from sources in dedicated +AdaCore GitHub repositories: [github.com/AdaCore/](https://github.com/AdaCore/) + +# Using distribution package managers + +Some Linux/BSD distributions or msys2 for Windows provide builds of GNAT FSF. + - Debian/ubuntu: `$ sudo apt install gnat gprbuild` + - Arch Linux: `$ sudo pacman -S gcc-ada gprbuild` + - msys2 for Windows: `$ sudo pacman -S mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gprbuild` + +You can help us maintain this list of tools available in your favorite +distributions, or even contribute new packages for the distribution. diff --git a/update-gh-pages.sh b/update-gh-pages.sh new file mode 100644 index 00000000..7145a0d9 --- /dev/null +++ b/update-gh-pages.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +# This script is made to run in a GitHub action. + +if [ "x${DOC_BRANCH:-}" == "x" ]; then + DOC_BRANCH="release/1.2" +fi + +# First print the list of crates so that it is visible in the logs +alr --no-tty search --crates + +alr_version=$(alr --no-tty version | grep "alr version" | cut -d: -f2 | tr -d '[:blank:]') +alire_lib_version=$(alr --no-tty version | grep "libalire version" | cut -d: -f2 | tr -d '[:blank:]') +index_branch=$(alr --no-tty version | grep "community index branch" | cut -d: -f2 | tr -d '[:blank:]') +echo "From community branch \`${index_branch}\`." +echo "Alr \`${alr_version}\`." +echo "Alire Library \`${alire_lib_version}\`." + +# Get the list of crates +list=`alr --no-tty search --crates | cut -f1 -d' ' | grep -v 'Searching...'` + +if [ -z "$list" ]; then + echo "error: The list of crate is empty" + exit 1 +fi + +echo "List of crates:" +echo $list +echo "---------------" + +for crate in $list; do + + # Create a crate page + alr --no-tty show --jekyll $crate > _crates/$crate.md + + # Extract the last version of the crate + version=`cat _crates/$crate.md | grep 'version:' | head -1 | cut -d':' -f2` + + # Crate a badge json template for the crate + cat > _badges/$crate.json <_data/update.yml <> docs/configuration.md + +# Cleanup alire repo +rm -rf alire/ + +# Generate dependency graph data +python dependency_graph.py + +# Stop if not running in GHA workflow +[ "${CI:-unset}" = "unset" ] && { echo Not running in GHA, exiting...; exit 0; } + +# Remove the ignore files to be able to commit crates and badges to the branch +rm -f _crates/.gitignore _badges/.gitignore + +# deploy script based on https://github.com/peaceiris/actions-gh-pages + +remote_repo="https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" +remote_branch="gh-pages" +local_dir="${HOME}/$(tr -cd 'a-f0-9' < /dev/urandom | head -c 32)" +PUBLISH_DIR="." + +git clone --depth=1 --single-branch --branch "${remote_branch}" "${remote_repo}" "${local_dir}" +cd "${local_dir}" +git rm -r '*' +find "${GITHUB_WORKSPACE}/${PUBLISH_DIR}" -maxdepth 1 | \ + tail -n +2 | \ + xargs -I % cp -rf % "${local_dir}/" + +# push to publishing branch +git config user.name "${GITHUB_ACTOR}" +git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" +git remote rm origin || true +git remote add origin "${remote_repo}" +git add --all +git commit --allow-empty --amend -m "Automated deployment: $(date -u) ${GITHUB_SHA}" +git checkout -b to_publish +git push -f origin "to_publish:${remote_branch}"