diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml new file mode 100644 index 00000000..10e6f1ea --- /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@v4 + - 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/a0b_armv7m.json b/_badges/a0b_armv7m.json new file mode 100644 index 00000000..a7a70935 --- /dev/null +++ b/_badges/a0b_armv7m.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_armv7m" +version: "0.2.0" +--- diff --git a/_badges/a0b_armv7m_systick_clock.json b/_badges/a0b_armv7m_systick_clock.json new file mode 100644 index 00000000..ead41dc7 --- /dev/null +++ b/_badges/a0b_armv7m_systick_clock.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_armv7m_systick_clock" +version: "0.1.0" +--- diff --git a/_badges/a0b_armv7m_systick_clock_timer.json b/_badges/a0b_armv7m_systick_clock_timer.json new file mode 100644 index 00000000..7869b1a7 --- /dev/null +++ b/_badges/a0b_armv7m_systick_clock_timer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_armv7m_systick_clock_timer" +version: "0.1.0" +--- diff --git a/_badges/a0b_atsam3x8e.json b/_badges/a0b_atsam3x8e.json new file mode 100644 index 00000000..fdf424e9 --- /dev/null +++ b/_badges/a0b_atsam3x8e.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_atsam3x8e" +version: "0.2.0" +--- diff --git a/_badges/a0b_atsam3x8e_gpio.json b/_badges/a0b_atsam3x8e_gpio.json new file mode 100644 index 00000000..147ca9e4 --- /dev/null +++ b/_badges/a0b_atsam3x8e_gpio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_atsam3x8e_gpio" +version: "0.1.0" +--- diff --git a/_badges/a0b_atsam3x8e_tc5_timer.json b/_badges/a0b_atsam3x8e_tc5_timer.json new file mode 100644 index 00000000..d18f47d5 --- /dev/null +++ b/_badges/a0b_atsam3x8e_tc5_timer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_atsam3x8e_tc5_timer" +version: "0.1.0" +--- diff --git a/_badges/a0b_atsam3x8e_twi_i2c.json b/_badges/a0b_atsam3x8e_twi_i2c.json new file mode 100644 index 00000000..f3ca2aee --- /dev/null +++ b/_badges/a0b_atsam3x8e_twi_i2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_atsam3x8e_twi_i2c" +version: "0.1.0" +--- diff --git a/_badges/a0b_base.json b/_badges/a0b_base.json new file mode 100644 index 00000000..ed16cb98 --- /dev/null +++ b/_badges/a0b_base.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_base" +version: "0.3.0" +--- diff --git a/_badges/a0b_callbacks.json b/_badges/a0b_callbacks.json new file mode 100644 index 00000000..168c4e62 --- /dev/null +++ b/_badges/a0b_callbacks.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_callbacks" +version: "0.2.0" +--- diff --git a/_badges/a0b_exti.json b/_badges/a0b_exti.json new file mode 100644 index 00000000..08fab237 --- /dev/null +++ b/_badges/a0b_exti.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_exti" +version: "0.1.0" +--- diff --git a/_badges/a0b_gpio.json b/_badges/a0b_gpio.json new file mode 100644 index 00000000..cdd3e002 --- /dev/null +++ b/_badges/a0b_gpio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_gpio" +version: "0.1.0" +--- diff --git a/_badges/a0b_i2c.json b/_badges/a0b_i2c.json new file mode 100644 index 00000000..6c751a60 --- /dev/null +++ b/_badges/a0b_i2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_i2c" +version: "0.1.0" +--- diff --git a/_badges/a0b_stm32f401.json b/_badges/a0b_stm32f401.json new file mode 100644 index 00000000..cc33d27f --- /dev/null +++ b/_badges/a0b_stm32f401.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_stm32f401" +version: "0.2.0" +--- diff --git a/_badges/a0b_stm32f401_dma.json b/_badges/a0b_stm32f401_dma.json new file mode 100644 index 00000000..e834ab79 --- /dev/null +++ b/_badges/a0b_stm32f401_dma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_stm32f401_dma" +version: "0.1.0" +--- diff --git a/_badges/a0b_stm32f401_gpio.json b/_badges/a0b_stm32f401_gpio.json new file mode 100644 index 00000000..de4641da --- /dev/null +++ b/_badges/a0b_stm32f401_gpio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_stm32f401_gpio" +version: "0.1.0" +--- diff --git a/_badges/a0b_stm32f401_i2c.json b/_badges/a0b_stm32f401_i2c.json new file mode 100644 index 00000000..e5450a5c --- /dev/null +++ b/_badges/a0b_stm32f401_i2c.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_stm32f401_i2c" +version: "0.1.0" +--- diff --git a/_badges/a0b_stm32f401_tim11_timer.json b/_badges/a0b_stm32f401_tim11_timer.json new file mode 100644 index 00000000..58318454 --- /dev/null +++ b/_badges/a0b_stm32f401_tim11_timer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_stm32f401_tim11_timer" +version: "0.1.0" +--- diff --git a/_badges/a0b_time.json b/_badges/a0b_time.json new file mode 100644 index 00000000..a25924cc --- /dev/null +++ b/_badges/a0b_time.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_time" +version: "0.2.0" +--- diff --git a/_badges/a0b_timer.json b/_badges/a0b_timer.json new file mode 100644 index 00000000..a25e715a --- /dev/null +++ b/_badges/a0b_timer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "a0b_timer" +version: "0.1.0" +--- 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_gui.json b/_badges/ada_gui.json new file mode 100644 index 00000000..089971b3 --- /dev/null +++ b/_badges/ada_gui.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_gui" +version: "20240224.0.1" +--- diff --git a/_badges/ada_language_server.json b/_badges/ada_language_server.json new file mode 100644 index 00000000..49b71647 --- /dev/null +++ b/_badges/ada_language_server.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_language_server" +version: "25.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..a2b2d43c --- /dev/null +++ b/_badges/ada_toml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ada_toml" +version: "0.5.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..55c9f428 --- /dev/null +++ b/_badges/adabots.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adabots" +version: "1.9.0" +--- diff --git a/_badges/adacl.json b/_badges/adacl.json new file mode 100644 index 00000000..b0b3112d --- /dev/null +++ b/_badges/adacl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adacl" +version: "5.16.1" +--- diff --git a/_badges/adare_dilithium5.json b/_badges/adare_dilithium5.json new file mode 100644 index 00000000..664bb9e8 --- /dev/null +++ b/_badges/adare_dilithium5.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adare_dilithium5" +version: "0.2.3" +--- diff --git a/_badges/adare_hqc256.json b/_badges/adare_hqc256.json new file mode 100644 index 00000000..e78a202b --- /dev/null +++ b/_badges/adare_hqc256.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adare_hqc256" +version: "0.2.3" +--- diff --git a/_badges/adasat.json b/_badges/adasat.json new file mode 100644 index 00000000..f3ad60cc --- /dev/null +++ b/_badges/adasat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "adasat" +version: "25.0.0" +--- 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..1aae8a7b --- /dev/null +++ b/_badges/ado.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado" +version: "2.4.1" +--- 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..b07445f1 --- /dev/null +++ b/_badges/ado_mysql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_mysql" +version: "2.4.1" +--- diff --git a/_badges/ado_postgresql.json b/_badges/ado_postgresql.json new file mode 100644 index 00000000..5fecb4a3 --- /dev/null +++ b/_badges/ado_postgresql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_postgresql" +version: "2.4.1" +--- diff --git a/_badges/ado_sqlite.json b/_badges/ado_sqlite.json new file mode 100644 index 00000000..7905a7c2 --- /dev/null +++ b/_badges/ado_sqlite.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ado_sqlite" +version: "2.4.1" +--- diff --git a/_badges/aflex.json b/_badges/aflex.json new file mode 100644 index 00000000..525ccec6 --- /dev/null +++ b/_badges/aflex.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aflex" +version: "1.7.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..61f0c743 --- /dev/null +++ b/_badges/akt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "akt" +version: "1.4.1" +--- 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/alr2appimage.json b/_badges/alr2appimage.json new file mode 100644 index 00000000..d84983d4 --- /dev/null +++ b/_badges/alr2appimage.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "alr2appimage" +version: "0.9.3" +--- 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/aoa_22.json b/_badges/aoa_22.json new file mode 100644 index 00000000..5f5543f3 --- /dev/null +++ b/_badges/aoa_22.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aoa_22" +version: "20220720.0.0" +--- diff --git a/_badges/aoa_23.json b/_badges/aoa_23.json new file mode 100644 index 00000000..a38a925f --- /dev/null +++ b/_badges/aoa_23.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aoa_23" +version: "20230119.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..5b23246f --- /dev/null +++ b/_badges/are.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "are" +version: "1.5.1" +--- diff --git a/_badges/asfml.json b/_badges/asfml.json new file mode 100644 index 00000000..fddea9c7 --- /dev/null +++ b/_badges/asfml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "asfml" +version: "2.6.1" +--- 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..08356c65 --- /dev/null +++ b/_badges/atomic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "atomic" +version: "1.0.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..489020eb --- /dev/null +++ b/_badges/aunit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aunit" +version: "25.0.0" +--- diff --git a/_badges/automate.json b/_badges/automate.json new file mode 100644 index 00000000..5c3fdede --- /dev/null +++ b/_badges/automate.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "automate" +version: "3.0.0" +--- 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..f4aaef9b --- /dev/null +++ b/_badges/awa.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "awa" +version: "2.5.0" +--- diff --git a/_badges/awa_unit.json b/_badges/awa_unit.json new file mode 100644 index 00000000..88977f29 --- /dev/null +++ b/_badges/awa_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "awa_unit" +version: "2.5.0" +--- diff --git a/_badges/aws.json b/_badges/aws.json new file mode 100644 index 00000000..a2c15d8a --- /dev/null +++ b/_badges/aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "aws" +version: "24.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..78e8ceb7 --- /dev/null +++ b/_badges/ayacc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ayacc" +version: "1.4.1" +--- diff --git a/_badges/azip.json b/_badges/azip.json new file mode 100644 index 00000000..0178676f --- /dev/null +++ b/_badges/azip.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "azip" +version: "2.7.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_code_drawing.json b/_badges/bar_code_drawing.json new file mode 100644 index 00000000..8672306c --- /dev/null +++ b/_badges/bar_code_drawing.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bar_code_drawing" +version: "20240701.0.0" +--- diff --git a/_badges/bar_codes.json b/_badges/bar_codes.json new file mode 100644 index 00000000..44e60aa0 --- /dev/null +++ b/_badges/bar_codes.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bar_codes" +version: "5.0.0" +--- diff --git a/_badges/bare_runtime.json b/_badges/bare_runtime.json new file mode 100644 index 00000000..617c1acb --- /dev/null +++ b/_badges/bare_runtime.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bare_runtime" +version: "14.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..69bce4e2 --- /dev/null +++ b/_badges/bbqueue.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbqueue" +version: "1.0.0" +--- diff --git a/_badges/bbs.json b/_badges/bbs.json new file mode 100644 index 00000000..ca883bfc --- /dev/null +++ b/_badges/bbs.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs" +version: "0.1.0" +--- diff --git a/_badges/bbs_embed_common.json b/_badges/bbs_embed_common.json new file mode 100644 index 00000000..d15e399e --- /dev/null +++ b/_badges/bbs_embed_common.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs_embed_common" +version: "0.1.0" +--- diff --git a/_badges/bbs_embed_linux.json b/_badges/bbs_embed_linux.json new file mode 100644 index 00000000..6a9a3474 --- /dev/null +++ b/_badges/bbs_embed_linux.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs_embed_linux" +version: "0.1.0" +--- diff --git a/_badges/bbs_lisp.json b/_badges/bbs_lisp.json new file mode 100644 index 00000000..09d7d366 --- /dev/null +++ b/_badges/bbs_lisp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs_lisp" +version: "0.1.1" +--- diff --git a/_badges/bbs_simcpu.json b/_badges/bbs_simcpu.json new file mode 100644 index 00000000..df132537 --- /dev/null +++ b/_badges/bbs_simcpu.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs_simcpu" +version: "0.1.0" +--- diff --git a/_badges/bbs_webif.json b/_badges/bbs_webif.json new file mode 100644 index 00000000..ffc956f5 --- /dev/null +++ b/_badges/bbs_webif.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbs_webif" +version: "0.1.0" +--- diff --git a/_badges/bbt.json b/_badges/bbt.json new file mode 100644 index 00000000..ed2cd2f5 --- /dev/null +++ b/_badges/bbt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bbt" +version: "0.0.5" +--- diff --git a/_badges/binary_trees.json b/_badges/binary_trees.json new file mode 100644 index 00000000..22219fe8 --- /dev/null +++ b/_badges/binary_trees.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "binary_trees" +version: "20240519.0.0" +--- 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/bit_sets.json b/_badges/bit_sets.json new file mode 100644 index 00000000..5fac067e --- /dev/null +++ b/_badges/bit_sets.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bit_sets" +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/blinkenlights.json b/_badges/blinkenlights.json new file mode 100644 index 00000000..024cc16e --- /dev/null +++ b/_badges/blinkenlights.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "blinkenlights" +version: "0.1.0" +--- diff --git a/_badges/bme280.json b/_badges/bme280.json new file mode 100644 index 00000000..0019f917 --- /dev/null +++ b/_badges/bme280.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "bme280" +version: "1.0.0" +--- 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/checksum.json b/_badges/checksum.json new file mode 100644 index 00000000..aac9708a --- /dev/null +++ b/_badges/checksum.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "checksum" +version: "0.1.0" +--- diff --git a/_badges/cheddar.json b/_badges/cheddar.json new file mode 100644 index 00000000..a4147e2a --- /dev/null +++ b/_badges/cheddar.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cheddar" +version: "3.3.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/chipmunk2d.json b/_badges/chipmunk2d.json new file mode 100644 index 00000000..b60232f3 --- /dev/null +++ b/_badges/chipmunk2d.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "chipmunk2d" +version: "0.1.0" +--- diff --git a/_badges/clic.json b/_badges/clic.json new file mode 100644 index 00000000..20aaa130 --- /dev/null +++ b/_badges/clic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "clic" +version: "0.3.0" +--- 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/controlled_io.json b/_badges/controlled_io.json new file mode 100644 index 00000000..fc9d8ab3 --- /dev/null +++ b/_badges/controlled_io.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "controlled_io" +version: "20240401.0.1" +--- diff --git a/_badges/cortex_m.json b/_badges/cortex_m.json new file mode 100644 index 00000000..7e18ccb7 --- /dev/null +++ b/_badges/cortex_m.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "cortex_m" +version: "1.0.0" +--- diff --git a/_badges/crc_32.json b/_badges/crc_32.json new file mode 100644 index 00000000..34891939 --- /dev/null +++ b/_badges/crc_32.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "crc_32" +version: "20240725.0.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..8897e17e --- /dev/null +++ b/_badges/dashera.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dashera" +version: "0.15.1" +--- diff --git a/_badges/db_maker.json b/_badges/db_maker.json new file mode 100644 index 00000000..137adcd0 --- /dev/null +++ b/_badges/db_maker.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "db_maker" +version: "20240119.0.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..681556be --- /dev/null +++ b/_badges/dir_iterators.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dir_iterators" +version: "0.0.5" +--- diff --git a/_badges/dirty_booleans.json b/_badges/dirty_booleans.json new file mode 100644 index 00000000..2585c18d --- /dev/null +++ b/_badges/dirty_booleans.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "dirty_booleans" +version: "0.1.0" +--- 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/easy_graphics.json b/_badges/easy_graphics.json new file mode 100644 index 00000000..d09d53bf --- /dev/null +++ b/_badges/easy_graphics.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "easy_graphics" +version: "0.1.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..5919869f --- /dev/null +++ b/_badges/elada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "elada" +version: "1.8.7" +--- 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/elogs.json b/_badges/elogs.json new file mode 100644 index 00000000..047c76ae --- /dev/null +++ b/_badges/elogs.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "elogs" +version: "1.2.0" +--- diff --git a/_badges/emacs_ada_mode.json b/_badges/emacs_ada_mode.json new file mode 100644 index 00000000..43382cd0 --- /dev/null +++ b/_badges/emacs_ada_mode.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_ada_mode" +version: "8.1.0" +--- diff --git a/_badges/emacs_gpr_mode.json b/_badges/emacs_gpr_mode.json new file mode 100644 index 00000000..7c3dcfda --- /dev/null +++ b/_badges/emacs_gpr_mode.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_gpr_mode" +version: "1.0.5" +--- diff --git a/_badges/emacs_gpr_query.json b/_badges/emacs_gpr_query.json new file mode 100644 index 00000000..7213cff1 --- /dev/null +++ b/_badges/emacs_gpr_query.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_gpr_query" +version: "1.0.2" +--- diff --git a/_badges/emacs_wisi.json b/_badges/emacs_wisi.json new file mode 100644 index 00000000..309997dc --- /dev/null +++ b/_badges/emacs_wisi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emacs_wisi" +version: "4.3.2" +--- 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..24c9a353 --- /dev/null +++ b/_badges/embedded_components.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "embedded_components" +version: "0.3.0" +--- diff --git a/_badges/emdee.json b/_badges/emdee.json new file mode 100644 index 00000000..fadbf545 --- /dev/null +++ b/_badges/emdee.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "emdee" +version: "0.2.1" +--- 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/encryption_utilities.json b/_badges/encryption_utilities.json new file mode 100644 index 00000000..a66b3d58 --- /dev/null +++ b/_badges/encryption_utilities.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "encryption_utilities" +version: "20220701.0.0" +--- 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/enet.json b/_badges/enet.json new file mode 100644 index 00000000..cb169064 --- /dev/null +++ b/_badges/enet.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "enet" +version: "1.0.0" +--- diff --git a/_badges/enet_stm32.json b/_badges/enet_stm32.json new file mode 100644 index 00000000..bfbccf23 --- /dev/null +++ b/_badges/enet_stm32.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "enet_stm32" +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/ethernet.json b/_badges/ethernet.json new file mode 100644 index 00000000..772d96dc --- /dev/null +++ b/_badges/ethernet.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ethernet" +version: "1.0.0" +--- diff --git a/_badges/euler_tools.json b/_badges/euler_tools.json new file mode 100644 index 00000000..86355466 --- /dev/null +++ b/_badges/euler_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "euler_tools" +version: "1.3.0" +--- 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..3fab1191 --- /dev/null +++ b/_badges/excel_writer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "excel_writer" +version: "19.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..9184c663 --- /dev/null +++ b/_badges/florist.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "florist" +version: +--- diff --git a/_badges/florist_blady.json b/_badges/florist_blady.json new file mode 100644 index 00000000..5253d194 --- /dev/null +++ b/_badges/florist_blady.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "florist_blady" +version: "6.1.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/getada.json b/_badges/getada.json new file mode 100644 index 00000000..fd8e1a99 --- /dev/null +++ b/_badges/getada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "getada" +version: "1.0.1" +--- 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/gfx_core.json b/_badges/gfx_core.json new file mode 100644 index 00000000..4cf90270 --- /dev/null +++ b/_badges/gfx_core.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gfx_core" +version: "0.1.0" +--- diff --git a/_badges/gfx_rasteriser.json b/_badges/gfx_rasteriser.json new file mode 100644 index 00000000..eef1fef1 --- /dev/null +++ b/_badges/gfx_rasteriser.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gfx_rasteriser" +version: "0.1.0" +--- diff --git a/_badges/gid.json b/_badges/gid.json new file mode 100644 index 00000000..c3344ac6 --- /dev/null +++ b/_badges/gid.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gid" +version: "13.0.1" +--- diff --git a/_badges/globe_3d.json b/_badges/globe_3d.json new file mode 100644 index 00000000..4d9858d1 --- /dev/null +++ b/_badges/globe_3d.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "globe_3d" +version: "2023.11.12" +--- 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..884a1608 --- /dev/null +++ b/_badges/gnat_arm_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_arm_elf" +version: "14.2.1" +--- diff --git a/_badges/gnat_avr_elf.json b/_badges/gnat_avr_elf.json new file mode 100644 index 00000000..9e3d031a --- /dev/null +++ b/_badges/gnat_avr_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_avr_elf" +version: "14.2.1" +--- 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..76d9f5b8 --- /dev/null +++ b/_badges/gnat_native.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_native" +version: "14.2.1" +--- diff --git a/_badges/gnat_riscv64_elf.json b/_badges/gnat_riscv64_elf.json new file mode 100644 index 00000000..57008977 --- /dev/null +++ b/_badges/gnat_riscv64_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_riscv64_elf" +version: "14.2.1" +--- diff --git a/_badges/gnat_xtensa_esp32_elf.json b/_badges/gnat_xtensa_esp32_elf.json new file mode 100644 index 00000000..bbb97c60 --- /dev/null +++ b/_badges/gnat_xtensa_esp32_elf.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnat_xtensa_esp32_elf" +version: "14.2.1" +--- diff --git a/_badges/gnatcoll.json b/_badges/gnatcoll.json new file mode 100644 index 00000000..a168b8b1 --- /dev/null +++ b/_badges/gnatcoll.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_gmp.json b/_badges/gnatcoll_gmp.json new file mode 100644 index 00000000..494f01cc --- /dev/null +++ b/_badges/gnatcoll_gmp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_gmp" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_iconv.json b/_badges/gnatcoll_iconv.json new file mode 100644 index 00000000..8d518ec6 --- /dev/null +++ b/_badges/gnatcoll_iconv.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_iconv" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_lzma.json b/_badges/gnatcoll_lzma.json new file mode 100644 index 00000000..904b28cc --- /dev/null +++ b/_badges/gnatcoll_lzma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_lzma" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_omp.json b/_badges/gnatcoll_omp.json new file mode 100644 index 00000000..b21a533e --- /dev/null +++ b/_badges/gnatcoll_omp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_omp" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_postgres.json b/_badges/gnatcoll_postgres.json new file mode 100644 index 00000000..0bfb2a2a --- /dev/null +++ b/_badges/gnatcoll_postgres.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_postgres" +version: "25.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..cdb23725 --- /dev/null +++ b/_badges/gnatcoll_readline.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_readline" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_sql.json b/_badges/gnatcoll_sql.json new file mode 100644 index 00000000..2f91dc1e --- /dev/null +++ b/_badges/gnatcoll_sql.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_sql" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_sqlite.json b/_badges/gnatcoll_sqlite.json new file mode 100644 index 00000000..a8c18264 --- /dev/null +++ b/_badges/gnatcoll_sqlite.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_sqlite" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_syslog.json b/_badges/gnatcoll_syslog.json new file mode 100644 index 00000000..44995e9a --- /dev/null +++ b/_badges/gnatcoll_syslog.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_syslog" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_xref.json b/_badges/gnatcoll_xref.json new file mode 100644 index 00000000..43ce6309 --- /dev/null +++ b/_badges/gnatcoll_xref.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_xref" +version: "25.0.0" +--- diff --git a/_badges/gnatcoll_zlib.json b/_badges/gnatcoll_zlib.json new file mode 100644 index 00000000..8ef686dd --- /dev/null +++ b/_badges/gnatcoll_zlib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatcoll_zlib" +version: "25.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..859820eb --- /dev/null +++ b/_badges/gnatdoc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatdoc" +version: "25.0.0" +--- diff --git a/_badges/gnatformat.json b/_badges/gnatformat.json new file mode 100644 index 00000000..7a83e917 --- /dev/null +++ b/_badges/gnatformat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatformat" +version: "25.0.0" +--- diff --git a/_badges/gnatprove.json b/_badges/gnatprove.json new file mode 100644 index 00000000..8cbdb620 --- /dev/null +++ b/_badges/gnatprove.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gnatprove" +version: "14.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..0527cd58 --- /dev/null +++ b/_badges/gprbuild.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gprbuild" +version: "24.0.1" +--- diff --git a/_badges/gsl.json b/_badges/gsl.json new file mode 100644 index 00000000..3cbde198 --- /dev/null +++ b/_badges/gsl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gsl" +version: "0.1.0" +--- diff --git a/_badges/gtkada.json b/_badges/gtkada.json new file mode 100644 index 00000000..2b2e514a --- /dev/null +++ b/_badges/gtkada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gtkada" +version: "25.0.1" +--- diff --git a/_badges/gwindows.json b/_badges/gwindows.json new file mode 100644 index 00000000..ec2ce382 --- /dev/null +++ b/_badges/gwindows.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "gwindows" +version: "1.4.3" +--- diff --git a/_badges/hac.json b/_badges/hac.json new file mode 100644 index 00000000..573b07f8 --- /dev/null +++ b/_badges/hac.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hac" +version: "0.40.0" +--- diff --git a/_badges/hal.json b/_badges/hal.json new file mode 100644 index 00000000..e99020ea --- /dev/null +++ b/_badges/hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hal" +version: "1.0.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/hex_format.json b/_badges/hex_format.json new file mode 100644 index 00000000..c916f888 --- /dev/null +++ b/_badges/hex_format.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hex_format" +version: "0.1.0" +--- diff --git a/_badges/hirtos.json b/_badges/hirtos.json new file mode 100644 index 00000000..4e18f870 --- /dev/null +++ b/_badges/hirtos.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hirtos" +version: "2.0.0" +--- diff --git a/_badges/hirtos_separation_kernel.json b/_badges/hirtos_separation_kernel.json new file mode 100644 index 00000000..d1fefd2f --- /dev/null +++ b/_badges/hirtos_separation_kernel.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hirtos_separation_kernel" +version: "2.0.0" +--- 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/hmc5883.json b/_badges/hmc5883.json new file mode 100644 index 00000000..539dceaf --- /dev/null +++ b/_badges/hmc5883.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hmc5883" +version: "1.0.0" +--- diff --git a/_badges/honki_tonks_zivilisationen.json b/_badges/honki_tonks_zivilisationen.json new file mode 100644 index 00000000..8ea36317 --- /dev/null +++ b/_badges/honki_tonks_zivilisationen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "honki_tonks_zivilisationen" +version: "0.5.5305" +--- diff --git a/_badges/hp41cx_tools.json b/_badges/hp41cx_tools.json new file mode 100644 index 00000000..7cde6d17 --- /dev/null +++ b/_badges/hp41cx_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "hp41cx_tools" +version: "1.6.2" +--- 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/image_io.json b/_badges/image_io.json new file mode 100644 index 00000000..2a17f12c --- /dev/null +++ b/_badges/image_io.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "image_io" +version: "20240725.0.0" +--- diff --git a/_badges/image_random.json b/_badges/image_random.json new file mode 100644 index 00000000..ab2dcdef --- /dev/null +++ b/_badges/image_random.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "image_random" +version: "20200720.0.0" +--- diff --git a/_badges/ini_files.json b/_badges/ini_files.json new file mode 100644 index 00000000..508ee7ce --- /dev/null +++ b/_badges/ini_files.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ini_files" +version: "11.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/intl.json b/_badges/intl.json new file mode 100644 index 00000000..7b67bdfd --- /dev/null +++ b/_badges/intl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "intl" +version: "1.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/jintp.json b/_badges/jintp.json new file mode 100644 index 00000000..7dd9b1c1 --- /dev/null +++ b/_badges/jintp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "jintp" +version: "0.1.0" +--- diff --git a/_badges/journada.json b/_badges/journada.json new file mode 100644 index 00000000..8855a522 --- /dev/null +++ b/_badges/journada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "journada" +version: "1.0.0" +--- diff --git a/_badges/json.json b/_badges/json.json new file mode 100644 index 00000000..a00d7bf6 --- /dev/null +++ b/_badges/json.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "json" +version: "6.0.0" +--- 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..aeefda3d --- /dev/null +++ b/_badges/keystoreada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "keystoreada" +version: "1.4.1" +--- diff --git a/_badges/labs_radar.json b/_badges/labs_radar.json new file mode 100644 index 00000000..c945201c --- /dev/null +++ b/_badges/labs_radar.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "labs_radar" +version: "1.0.0" +--- diff --git a/_badges/labs_solar_system.json b/_badges/labs_solar_system.json new file mode 100644 index 00000000..7a475104 --- /dev/null +++ b/_badges/labs_solar_system.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "labs_solar_system" +version: "1.1.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/lal_refactor.json b/_badges/lal_refactor.json new file mode 100644 index 00000000..79f4c172 --- /dev/null +++ b/_badges/lal_refactor.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lal_refactor" +version: "25.0.0" +--- diff --git a/_badges/langkit_support.json b/_badges/langkit_support.json new file mode 100644 index 00000000..20ee5190 --- /dev/null +++ b/_badges/langkit_support.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "langkit_support" +version: "25.0.0" +--- diff --git a/_badges/lea.json b/_badges/lea.json new file mode 100644 index 00000000..c8657a2b --- /dev/null +++ b/_badges/lea.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lea" +version: "0.90.0" +--- diff --git a/_badges/learnadainy.json b/_badges/learnadainy.json new file mode 100644 index 00000000..e5c4286c --- /dev/null +++ b/_badges/learnadainy.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "learnadainy" +version: "0.2.0" +--- diff --git a/_badges/libadalang.json b/_badges/libadalang.json new file mode 100644 index 00000000..3cc27ba2 --- /dev/null +++ b/_badges/libadalang.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang" +version: "25.0.0" +--- diff --git a/_badges/libadalang2xml.json b/_badges/libadalang2xml.json new file mode 100644 index 00000000..67ce553b --- /dev/null +++ b/_badges/libadalang2xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang2xml" +version: "1.0.2" +--- diff --git a/_badges/libadalang_tools.json b/_badges/libadalang_tools.json new file mode 100644 index 00000000..240b5ed8 --- /dev/null +++ b/_badges/libadalang_tools.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libadalang_tools" +version: "25.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/libchipmunk.json b/_badges/libchipmunk.json new file mode 100644 index 00000000..f5328e6f --- /dev/null +++ b/_badges/libchipmunk.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libchipmunk" +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/libcmark.json b/_badges/libcmark.json new file mode 100644 index 00000000..ac03c1e6 --- /dev/null +++ b/_badges/libcmark.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libcmark" +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/libglib.json b/_badges/libglib.json new file mode 100644 index 00000000..2dc6fe0b --- /dev/null +++ b/_badges/libglib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libglib" +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..7f49082d --- /dev/null +++ b/_badges/libgnatdoc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgnatdoc" +version: "25.0.0" +--- diff --git a/_badges/libgnatformat.json b/_badges/libgnatformat.json new file mode 100644 index 00000000..b0dc9616 --- /dev/null +++ b/_badges/libgnatformat.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgnatformat" +version: "25.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..9d8ae84f --- /dev/null +++ b/_badges/libgpr.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgpr" +version: "25.0.0" +--- diff --git a/_badges/libgpr2.json b/_badges/libgpr2.json new file mode 100644 index 00000000..1e840571 --- /dev/null +++ b/_badges/libgpr2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libgpr2" +version: "25.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/liblal_refactor.json b/_badges/liblal_refactor.json new file mode 100644 index 00000000..300c0ceb --- /dev/null +++ b/_badges/liblal_refactor.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "liblal_refactor" +version: "25.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/libmagic.json b/_badges/libmagic.json new file mode 100644 index 00000000..51a9d6e3 --- /dev/null +++ b/_badges/libmagic.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libmagic" +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/libpcap.json b/_badges/libpcap.json new file mode 100644 index 00000000..5c0a3a4a --- /dev/null +++ b/_badges/libpcap.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libpcap" +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/libraylib.json b/_badges/libraylib.json new file mode 100644 index 00000000..e1f96e3f --- /dev/null +++ b/_badges/libraylib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libraylib" +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_mixer.json b/_badges/libsdl2_mixer.json new file mode 100644 index 00000000..7f6bec97 --- /dev/null +++ b/_badges/libsdl2_mixer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsdl2_mixer" +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/libsecret.json b/_badges/libsecret.json new file mode 100644 index 00000000..19501e69 --- /dev/null +++ b/_badges/libsecret.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsecret" +version: +--- diff --git a/_badges/libsimpleio.json b/_badges/libsimpleio.json new file mode 100644 index 00000000..8a5c74c9 --- /dev/null +++ b/_badges/libsimpleio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "libsimpleio" +version: "2.22364.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/light_arduino_due.json b/_badges/light_arduino_due.json new file mode 100644 index 00000000..489a95ff --- /dev/null +++ b/_badges/light_arduino_due.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "light_arduino_due" +version: "0.2.0" +--- diff --git a/_badges/light_blackpill_stm32f401.json b/_badges/light_blackpill_stm32f401.json new file mode 100644 index 00000000..58f29928 --- /dev/null +++ b/_badges/light_blackpill_stm32f401.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "light_blackpill_stm32f401" +version: "0.2.0" +--- diff --git a/_badges/light_fk723m1_zgt6.json b/_badges/light_fk723m1_zgt6.json new file mode 100644 index 00000000..bec7ab03 --- /dev/null +++ b/_badges/light_fk723m1_zgt6.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "light_fk723m1_zgt6" +version: "0.1.0" +--- diff --git a/_badges/lined.json b/_badges/lined.json new file mode 100644 index 00000000..d13e1b64 --- /dev/null +++ b/_badges/lined.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lined" +version: "20240419.0.0" +--- 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/lispcli.json b/_badges/lispcli.json new file mode 100644 index 00000000..8aed10fa --- /dev/null +++ b/_badges/lispcli.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lispcli" +version: "0.1.1" +--- diff --git a/_badges/list_image.json b/_badges/list_image.json new file mode 100644 index 00000000..39dd7da7 --- /dev/null +++ b/_badges/list_image.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "list_image" +version: "1.0.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/loadcpm.json b/_badges/loadcpm.json new file mode 100644 index 00000000..c161dfc5 --- /dev/null +++ b/_badges/loadcpm.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "loadcpm" +version: "0.1.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..ba2f2e6a --- /dev/null +++ b/_badges/lzmada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "lzmada" +version: "1.1.4" +--- 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/magicada.json b/_badges/magicada.json new file mode 100644 index 00000000..09028b87 --- /dev/null +++ b/_badges/magicada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "magicada" +version: "1.0.1" +--- 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..3fbf3aec --- /dev/null +++ b/_badges/markdown.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "markdown" +version: "25.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..3157d467 --- /dev/null +++ b/_badges/mcp2221.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mcp2221" +version: "2.22364.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/mine_detector.json b/_badges/mine_detector.json new file mode 100644 index 00000000..a7b5861a --- /dev/null +++ b/_badges/mine_detector.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mine_detector" +version: "20220720.0.0" +--- diff --git a/_badges/minimal_containers.json b/_badges/minimal_containers.json new file mode 100644 index 00000000..23f50f54 --- /dev/null +++ b/_badges/minimal_containers.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "minimal_containers" +version: "1.2.1" +--- 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.json b/_badges/mold.json new file mode 100644 index 00000000..5428822d --- /dev/null +++ b/_badges/mold.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mold" +version: "1.0.3" +--- diff --git a/_badges/mold_lib.json b/_badges/mold_lib.json new file mode 100644 index 00000000..a190d929 --- /dev/null +++ b/_badges/mold_lib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "mold_lib" +version: "2.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_aarch64.json b/_badges/muntsos_aarch64.json new file mode 100644 index 00000000..7b8b62ab --- /dev/null +++ b/_badges/muntsos_aarch64.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_aarch64" +version: "9.1.0" +--- diff --git a/_badges/muntsos_beaglebone.json b/_badges/muntsos_beaglebone.json new file mode 100644 index 00000000..240b44ec --- /dev/null +++ b/_badges/muntsos_beaglebone.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_beaglebone" +version: "9.1.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..b83dbaf1 --- /dev/null +++ b/_badges/muntsos_raspberrypi1.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi1" +version: "9.1.0" +--- diff --git a/_badges/muntsos_raspberrypi2.json b/_badges/muntsos_raspberrypi2.json new file mode 100644 index 00000000..fd8dd86e --- /dev/null +++ b/_badges/muntsos_raspberrypi2.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi2" +version: "9.1.0" +--- diff --git a/_badges/muntsos_raspberrypi3.json b/_badges/muntsos_raspberrypi3.json new file mode 100644 index 00000000..c4d4331d --- /dev/null +++ b/_badges/muntsos_raspberrypi3.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi3" +version: "9.1.0" +--- diff --git a/_badges/muntsos_raspberrypi4.json b/_badges/muntsos_raspberrypi4.json new file mode 100644 index 00000000..5389be4a --- /dev/null +++ b/_badges/muntsos_raspberrypi4.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi4" +version: "9.1.0" +--- diff --git a/_badges/muntsos_raspberrypi5.json b/_badges/muntsos_raspberrypi5.json new file mode 100644 index 00000000..853aa4f9 --- /dev/null +++ b/_badges/muntsos_raspberrypi5.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "muntsos_raspberrypi5" +version: "9.1.0" +--- diff --git a/_badges/musicplayer.json b/_badges/musicplayer.json new file mode 100644 index 00000000..8de59c80 --- /dev/null +++ b/_badges/musicplayer.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "musicplayer" +version: "20210719.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/ocarina_lib.json b/_badges/ocarina_lib.json new file mode 100644 index 00000000..2114dbc0 --- /dev/null +++ b/_badges/ocarina_lib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ocarina_lib" +version: "1.1.0-20070603" +--- 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..5101aaa7 --- /dev/null +++ b/_badges/openapi.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openapi" +version: "0.8.0" +--- diff --git a/_badges/openapi_server.json b/_badges/openapi_server.json new file mode 100644 index 00000000..03c2dca6 --- /dev/null +++ b/_badges/openapi_server.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "openapi_server" +version: "0.8.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/opentoken.json b/_badges/opentoken.json new file mode 100644 index 00000000..a9545e3a --- /dev/null +++ b/_badges/opentoken.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "opentoken" +version: "6.0.3" +--- diff --git a/_badges/optional.json b/_badges/optional.json new file mode 100644 index 00000000..0b723740 --- /dev/null +++ b/_badges/optional.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "optional" +version: "0.2.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/parallelize.json b/_badges/parallelize.json new file mode 100644 index 00000000..40b77e89 --- /dev/null +++ b/_badges/parallelize.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "parallelize" +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/password_gen.json b/_badges/password_gen.json new file mode 100644 index 00000000..248f301c --- /dev/null +++ b/_badges/password_gen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "password_gen" +version: "20220720.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/phcpack.json b/_badges/phcpack.json new file mode 100644 index 00000000..4f03d1c9 --- /dev/null +++ b/_badges/phcpack.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "phcpack" +version: "2.4.88" +--- diff --git a/_badges/pico_bsp.json b/_badges/pico_bsp.json new file mode 100644 index 00000000..d42edf1c --- /dev/null +++ b/_badges/pico_bsp.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pico_bsp" +version: "2.2.0" +--- diff --git a/_badges/pico_examples.json b/_badges/pico_examples.json new file mode 100644 index 00000000..c3fc341f --- /dev/null +++ b/_badges/pico_examples.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pico_examples" +version: "2.2.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/pla_util.json b/_badges/pla_util.json new file mode 100644 index 00000000..9941eac5 --- /dev/null +++ b/_badges/pla_util.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pla_util" +version: "2.1.2" +--- 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/portable_minimal_ada_rts.json b/_badges/portable_minimal_ada_rts.json new file mode 100644 index 00000000..6911a654 --- /dev/null +++ b/_badges/portable_minimal_ada_rts.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "portable_minimal_ada_rts" +version: "1.0.0" +--- 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..7dcaae45 --- /dev/null +++ b/_badges/powerjoular.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "powerjoular" +version: "1.0.4" +--- 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/pragmarc.json b/_badges/pragmarc.json new file mode 100644 index 00000000..90fd61c7 --- /dev/null +++ b/_badges/pragmarc.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "pragmarc" +version: "20240810.0.0" +--- diff --git a/_badges/prettier_ada.json b/_badges/prettier_ada.json new file mode 100644 index 00000000..f61004b2 --- /dev/null +++ b/_badges/prettier_ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "prettier_ada" +version: "25.0.0" +--- diff --git a/_badges/printer_toolkit.json b/_badges/printer_toolkit.json new file mode 100644 index 00000000..f2efc071 --- /dev/null +++ b/_badges/printer_toolkit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "printer_toolkit" +version: "0.2.0" +--- 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/qmc5883.json b/_badges/qmc5883.json new file mode 100644 index 00000000..e39c3139 --- /dev/null +++ b/_badges/qmc5883.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "qmc5883" +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/qplt.json b/_badges/qplt.json new file mode 100644 index 00000000..e41098e0 --- /dev/null +++ b/_badges/qplt.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "qplt" +version: "20230720.0.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/raylib.json b/_badges/raylib.json new file mode 100644 index 00000000..6f7a4092 --- /dev/null +++ b/_badges/raylib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "raylib" +version: "1.0.1" +--- 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..1926aa85 --- /dev/null +++ b/_badges/remoteio.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "remoteio" +version: "2.22357.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..83a6f213 --- /dev/null +++ b/_badges/rp2040_hal.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "rp2040_hal" +version: "2.4.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/sciada.json b/_badges/sciada.json new file mode 100644 index 00000000..ab80861b --- /dev/null +++ b/_badges/sciada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sciada" +version: "0.4.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..ea6303c8 --- /dev/null +++ b/_badges/sdlada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "sdlada" +version: "2.5.20" +--- diff --git a/_badges/secretada.json b/_badges/secretada.json new file mode 100644 index 00000000..343e6ccf --- /dev/null +++ b/_badges/secretada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "secretada" +version: "1.0.0" +--- diff --git a/_badges/security.json b/_badges/security.json new file mode 100644 index 00000000..4fb10c44 --- /dev/null +++ b/_badges/security.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "security" +version: "1.5.1" +--- 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..a5195beb --- /dev/null +++ b/_badges/septum.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "septum" +version: "0.0.8" +--- diff --git a/_badges/serverfaces.json b/_badges/serverfaces.json new file mode 100644 index 00000000..81f608c9 --- /dev/null +++ b/_badges/serverfaces.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "serverfaces" +version: "1.6.1" +--- diff --git a/_badges/serverfaces_unit.json b/_badges/serverfaces_unit.json new file mode 100644 index 00000000..2096f05e --- /dev/null +++ b/_badges/serverfaces_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "serverfaces_unit" +version: "1.6.1" +--- diff --git a/_badges/servletada.json b/_badges/servletada.json new file mode 100644 index 00000000..12aced01 --- /dev/null +++ b/_badges/servletada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada" +version: "1.7.1" +--- diff --git a/_badges/servletada_aws.json b/_badges/servletada_aws.json new file mode 100644 index 00000000..da150a9e --- /dev/null +++ b/_badges/servletada_aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_aws" +version: "1.7.1" +--- diff --git a/_badges/servletada_ews.json b/_badges/servletada_ews.json new file mode 100644 index 00000000..cec01ac8 --- /dev/null +++ b/_badges/servletada_ews.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_ews" +version: "1.7.1" +--- diff --git a/_badges/servletada_unit.json b/_badges/servletada_unit.json new file mode 100644 index 00000000..907036eb --- /dev/null +++ b/_badges/servletada_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "servletada_unit" +version: "1.7.1" +--- 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/simcpucli.json b/_badges/simcpucli.json new file mode 100644 index 00000000..9c745269 --- /dev/null +++ b/_badges/simcpucli.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simcpucli" +version: "0.1.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..94482c82 --- /dev/null +++ b/_badges/simple_components.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "simple_components" +version: "4.68.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..9fc3a0c7 --- /dev/null +++ b/_badges/spawn.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spawn" +version: "25.0.0" +--- diff --git a/_badges/spawn_glib.json b/_badges/spawn_glib.json new file mode 100644 index 00000000..b83cfbc7 --- /dev/null +++ b/_badges/spawn_glib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "spawn_glib" +version: "25.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/splitter.json b/_badges/splitter.json new file mode 100644 index 00000000..0e21cd59 --- /dev/null +++ b/_badges/splitter.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "splitter" +version: "1.0.2" +--- 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/ssl.json b/_badges/ssl.json new file mode 100644 index 00000000..704acc10 --- /dev/null +++ b/_badges/ssl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ssl" +version: +--- diff --git a/_badges/st7789.json b/_badges/st7789.json new file mode 100644 index 00000000..f2ff576a --- /dev/null +++ b/_badges/st7789.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "st7789" +version: "0.1.0" +--- diff --git a/_badges/startup_gen.json b/_badges/startup_gen.json new file mode 100644 index 00000000..4a41b3d2 --- /dev/null +++ b/_badges/startup_gen.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "startup_gen" +version: "25.0.0" +--- diff --git a/_badges/stephes_ada_library.json b/_badges/stephes_ada_library.json new file mode 100644 index 00000000..0a87a68c --- /dev/null +++ b/_badges/stephes_ada_library.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "stephes_ada_library" +version: "3.7.3" +--- 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/suika_programing.json b/_badges/suika_programing.json new file mode 100644 index 00000000..5d611d44 --- /dev/null +++ b/_badges/suika_programing.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "suika_programing" +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..40bbd1c1 --- /dev/null +++ b/_badges/templates_parser.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "templates_parser" +version: "25.0.0" +--- diff --git a/_badges/texcad.json b/_badges/texcad.json new file mode 100644 index 00000000..9739e0ae --- /dev/null +++ b/_badges/texcad.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "texcad" +version: "4.5.3" +--- 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..a5fe9a21 --- /dev/null +++ b/_badges/tiny_text.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "tiny_text" +version: "1.3.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/ulid.json b/_badges/ulid.json new file mode 100644 index 00000000..3397feef --- /dev/null +++ b/_badges/ulid.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "ulid" +version: "20240921.0.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/universal_text_file.json b/_badges/universal_text_file.json new file mode 100644 index 00000000..48c29005 --- /dev/null +++ b/_badges/universal_text_file.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "universal_text_file" +version: "20220720.0.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..fecdb47c --- /dev/null +++ b/_badges/usb_embedded.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "usb_embedded" +version: "1.0.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..11d9a84f --- /dev/null +++ b/_badges/utilada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada" +version: "2.8.0" +--- diff --git a/_badges/utilada_aws.json b/_badges/utilada_aws.json new file mode 100644 index 00000000..592013c4 --- /dev/null +++ b/_badges/utilada_aws.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_aws" +version: "2.8.0" +--- diff --git a/_badges/utilada_curl.json b/_badges/utilada_curl.json new file mode 100644 index 00000000..ec39b798 --- /dev/null +++ b/_badges/utilada_curl.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_curl" +version: "2.8.0" +--- diff --git a/_badges/utilada_lzma.json b/_badges/utilada_lzma.json new file mode 100644 index 00000000..bfcf8f2a --- /dev/null +++ b/_badges/utilada_lzma.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_lzma" +version: "2.8.0" +--- diff --git a/_badges/utilada_unit.json b/_badges/utilada_unit.json new file mode 100644 index 00000000..e439ea00 --- /dev/null +++ b/_badges/utilada_unit.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_unit" +version: "2.8.0" +--- diff --git a/_badges/utilada_xml.json b/_badges/utilada_xml.json new file mode 100644 index 00000000..fec993c0 --- /dev/null +++ b/_badges/utilada_xml.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "utilada_xml" +version: "2.8.0" +--- diff --git a/_badges/uxstrings.json b/_badges/uxstrings.json new file mode 100644 index 00000000..1266068b --- /dev/null +++ b/_badges/uxstrings.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "uxstrings" +version: "0.8.1+alpha-20241006" +--- 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..c84d82de --- /dev/null +++ b/_badges/vss.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "vss" +version: "25.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/webif_example.json b/_badges/webif_example.json new file mode 100644 index 00000000..83d94451 --- /dev/null +++ b/_badges/webif_example.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "webif_example" +version: "0.1.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/whitakers_words.json b/_badges/whitakers_words.json new file mode 100644 index 00000000..64ee63ab --- /dev/null +++ b/_badges/whitakers_words.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "whitakers_words" +version: "0.20240801.0" +--- diff --git a/_badges/wikiada.json b/_badges/wikiada.json new file mode 100644 index 00000000..87a84cf0 --- /dev/null +++ b/_badges/wikiada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wikiada" +version: "1.4.2" +--- diff --git a/_badges/wikibook.json b/_badges/wikibook.json new file mode 100644 index 00000000..5b21f5d9 --- /dev/null +++ b/_badges/wikibook.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wikibook" +version: "1.0.1" +--- diff --git a/_badges/win32ada.json b/_badges/win32ada.json new file mode 100644 index 00000000..19534c1b --- /dev/null +++ b/_badges/win32ada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "win32ada" +version: "23.0.0" +--- 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..3d8fa176 --- /dev/null +++ b/_badges/wisitoken.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wisitoken" +version: "4.2.1" +--- diff --git a/_badges/wl_lib.json b/_badges/wl_lib.json new file mode 100644 index 00000000..747d0d98 --- /dev/null +++ b/_badges/wl_lib.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "wl_lib" +version: "0.1.4" +--- 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..938f9ae8 --- /dev/null +++ b/_badges/xia.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xia" +version: "1.4.1" +--- 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..e990203c --- /dev/null +++ b/_badges/xmlada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "xmlada" +version: "25.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/yass.json b/_badges/yass.json new file mode 100644 index 00000000..9a423e80 --- /dev/null +++ b/_badges/yass.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "yass" +version: "3.1.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/z_compression.json b/_badges/z_compression.json new file mode 100644 index 00000000..f7bd53cd --- /dev/null +++ b/_badges/z_compression.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "z_compression" +version: "20240724.0.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..39bb21cf --- /dev/null +++ b/_badges/zipada.json @@ -0,0 +1,5 @@ +--- +layout: badge +crate: "zipada" +version: "60.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/a0b_armv7m.md b/_crates/a0b_armv7m.md new file mode 100644 index 00000000..c2649838 --- /dev/null +++ b/_crates/a0b_armv7m.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "a0b_armv7m" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/godunko/a0b-base"] +tags: ["a0b", +"embedded", +"armv7m", +"cortex-m", +"cortex-m3", +"cortex-m4", +"cortex-m7"] +version: "0.2.0" +short_description: "A0B: ARMv7-M support (Cortex-M3, Cortex-M4, Cortex-M7)" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "gnat_arm_elf", version: "*"}] +configuration_variables: [{name: 'FPU_Extension', type: 'Enum (none, VFPv4, VFPv5)'}] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_armv7m_systick_clock.md b/_crates/a0b_armv7m_systick_clock.md new file mode 100644 index 00000000..2c9756c6 --- /dev/null +++ b/_crates/a0b_armv7m_systick_clock.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "a0b_armv7m_systick_clock" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"time", +"armv7m"] +version: "0.1.0" +short_description: "A0B Monotonic Clock by ARMv7M SysTick" +dependencies: [{crate: "a0b_armv7m", version: "*"}, +{crate: "a0b_base", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_armv7m_systick_clock_timer.md b/_crates/a0b_armv7m_systick_clock_timer.md new file mode 100644 index 00000000..e187314c --- /dev/null +++ b/_crates/a0b_armv7m_systick_clock_timer.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "a0b_armv7m_systick_clock_timer" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"time", +"timer", +"systick"] +version: "0.1.0" +short_description: "A0B Monotonic Clock and Timer by ARMv7M SysTick" +dependencies: [{crate: "a0b_armv7m", version: "*"}, +{crate: "a0b_base", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_atsam3x8e.md b/_crates/a0b_atsam3x8e.md new file mode 100644 index 00000000..fd563629 --- /dev/null +++ b/_crates/a0b_atsam3x8e.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "a0b_atsam3x8e" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"atsam3x8e", +"sam3x8e", +"arduino", +"due", +"svd"] +version: "0.2.0" +short_description: "A0B ATSAM3X8E MCU Support" +dependencies: [{crate: "a0b_armv7m", version: "*"}, +{crate: "gnat_arm_elf", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_atsam3x8e_gpio.md b/_crates/a0b_atsam3x8e_gpio.md new file mode 100644 index 00000000..7877c9c3 --- /dev/null +++ b/_crates/a0b_atsam3x8e_gpio.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "a0b_atsam3x8e_gpio" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"gpio", +"atsam3x8e", +"sam3x8e", +"arduino", +"due"] +version: "0.1.0" +short_description: "A0B ATSAM3X8E GPIO/EXTI" +dependencies: [{crate: "a0b_atsam3x8e", version: "*"}, +{crate: "a0b_exti", version: "*"}, +{crate: "a0b_gpio", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_atsam3x8e_tc5_timer.md b/_crates/a0b_atsam3x8e_tc5_timer.md new file mode 100644 index 00000000..88b47b9c --- /dev/null +++ b/_crates/a0b_atsam3x8e_tc5_timer.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "a0b_atsam3x8e_tc5_timer" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"timer", +"atsam3x8e", +"sam3x8e", +"arduino", +"due"] +version: "0.1.0" +short_description: "A0B ATSAM3X8E High Resulotion Timer on top of TC5" +dependencies: [{crate: "a0b_atsam3x8e", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_atsam3x8e_twi_i2c.md b/_crates/a0b_atsam3x8e_twi_i2c.md new file mode 100644 index 00000000..f5aa2e12 --- /dev/null +++ b/_crates/a0b_atsam3x8e_twi_i2c.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "a0b_atsam3x8e_twi_i2c" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["embedded", +"i2c", +"atsam3x8e", +"twi", +"arduino", +"due"] +version: "0.1.0" +short_description: "A0B ATSAM3X8E TWI I2C Driver" +dependencies: [{crate: "a0b_atsam3x8e_gpio", version: "*"}, +{crate: "a0b_i2c", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_base.md b/_crates/a0b_base.md new file mode 100644 index 00000000..da92db8e --- /dev/null +++ b/_crates/a0b_base.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "a0b_base" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/godunko/a0b-base"] +tags: ["a0b", +"types", +"builtins"] +version: "0.3.0" +short_description: "A0B: Base components" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_callbacks.md b/_crates/a0b_callbacks.md new file mode 100644 index 00000000..15bd8510 --- /dev/null +++ b/_crates/a0b_callbacks.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "a0b_callbacks" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/godunko/a0b-callbacks"] +tags: ["a0b", +"callbacks"] +version: "0.2.0" +short_description: "A0B Callbacks" +dependencies: [{crate: "a0b_base", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_exti.md b/_crates/a0b_exti.md new file mode 100644 index 00000000..1e1b0bee --- /dev/null +++ b/_crates/a0b_exti.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "a0b_exti" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"exti"] +version: "0.1.0" +short_description: "A0B: EXTI API" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_callbacks", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_gpio.md b/_crates/a0b_gpio.md new file mode 100644 index 00000000..1b8e1fd2 --- /dev/null +++ b/_crates/a0b_gpio.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "a0b_gpio" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["embedded", +"gpio"] +version: "0.1.0" +short_description: "A0B GIOP API" +dependencies: [{crate: "a0b_base", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_i2c.md b/_crates/a0b_i2c.md new file mode 100644 index 00000000..2877129e --- /dev/null +++ b/_crates/a0b_i2c.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "a0b_i2c" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"i2c"] +version: "0.1.0" +short_description: "A0B I2C API" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_callbacks", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_stm32f401.md b/_crates/a0b_stm32f401.md new file mode 100644 index 00000000..8b6ae43c --- /dev/null +++ b/_crates/a0b_stm32f401.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "a0b_stm32f401" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/godunko/a0b-stm32f401"] +tags: ["a0b", +"embedded", +"svd", +"stm32", +"stm32f4", +"stm32f401"] +version: "0.2.0" +short_description: "A0B: STM32F401 base and SVD package" +dependencies: [{crate: "a0b_armv7m", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_stm32f401_dma.md b/_crates/a0b_stm32f401_dma.md new file mode 100644 index 00000000..f3f33765 --- /dev/null +++ b/_crates/a0b_stm32f401_dma.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "a0b_stm32f401_dma" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"dma", +"stm32", +"stm32f4", +"stm32f401"] +version: "0.1.0" +short_description: "A0B: STM32F401 DMA" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_callbacks", version: "*"}, +{crate: "a0b_stm32f401", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_stm32f401_gpio.md b/_crates/a0b_stm32f401_gpio.md new file mode 100644 index 00000000..aea43959 --- /dev/null +++ b/_crates/a0b_stm32f401_gpio.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "a0b_stm32f401_gpio" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"stm32", +"stm32f401", +"gpio", +"exti"] +version: "0.1.0" +short_description: "A0B: STM32F401 GPIO/EXTI" +dependencies: [{crate: "a0b_exti", version: "*"}, +{crate: "a0b_gpio", version: "*"}, +{crate: "a0b_stm32f401", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_stm32f401_i2c.md b/_crates/a0b_stm32f401_i2c.md new file mode 100644 index 00000000..7bcf0d8a --- /dev/null +++ b/_crates/a0b_stm32f401_i2c.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "a0b_stm32f401_i2c" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"i2c", +"stm32", +"stm32f4", +"stm32f401"] +version: "0.1.0" +short_description: "A0B: STM32F401 I2C" +dependencies: [{crate: "a0b_i2c", version: "*"}, +{crate: "a0b_stm32f401_dma", version: "*"}, +{crate: "a0b_stm32f401_gpio", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_stm32f401_tim11_timer.md b/_crates/a0b_stm32f401_tim11_timer.md new file mode 100644 index 00000000..b2c63309 --- /dev/null +++ b/_crates/a0b_stm32f401_tim11_timer.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "a0b_stm32f401_tim11_timer" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"timer", +"stm32", +"stm32f4", +"stm32f401"] +version: "0.1.0" +short_description: "A0B: Timer based on STM32F401 TIM11" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_stm32f401", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_time.md b/_crates/a0b_time.md new file mode 100644 index 00000000..ac6824bb --- /dev/null +++ b/_crates/a0b_time.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "a0b_time" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"time"] +version: "0.2.0" +short_description: "A0B Monotonic Time" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_time_platform", version: "0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/a0b_timer.md b/_crates/a0b_timer.md new file mode 100644 index 00000000..d04c3176 --- /dev/null +++ b/_crates/a0b_timer.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "a0b_timer" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"timer"] +version: "0.1.0" +short_description: "A0B Timer" +dependencies: [{crate: "a0b_base", version: "*"}, +{crate: "a0b_callbacks", version: "*"}, +{crate: "a0b_time", version: "*"}, +{crate: "a0b_timer_platform", version: "0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + 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_gui.md b/_crates/ada_gui.md new file mode 100644 index 00000000..4fb2f01b --- /dev/null +++ b/_crates/ada_gui.md @@ -0,0 +1,52 @@ +--- +layout: crate +crate: "ada_gui" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Ada_GUI"] +tags: ["gui", +"widgets", +"html"] +version: "20240224.0.1" +short_description: "An Ada-oriented GUI" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "simple_components", version: "^4.68.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Ada_GUI +An Ada-oriented GUI + +Traditionally, GUIs have been implemented by the client registering callback operations, then giving up its thread of control to the GUI. This is a hack to address the inherent parallelism of a GUI in sequential languages. It results in code that is unnecessarily difficult to understand. + +In a concurrent language like Ada, a better design for a GUI is for the GUI to have its own task, so it doesn't require that its client give up a thread of control. GUI events are communicated to the client through a protected queue of events. The client software can be written in the clearest way possible, unconstrained by the GUI. + +Ada_GUI is such a GUI. + +The purpose of Ada_GUI is to provide the specification, in hopes that multiple implementations will be created. Note that some of the comments in the specification are specific to the sample implementation, and should be removed or modified for other implementations. Especially interesting would be an implementation that is not GNAT specific. + +## Sample Implementation + +A sample implementation of Ada_GUI is supplied, derived from Gnoga, but simplified, reorganized, and converted to put events on a protected queue rather than call callbacks. The name Gnoga has been retained for the name of the implementation hierarchy, located at Ada_GUI.Gnoga, in recognition. Those parts of Kazakov's Simple Components used by the implementation are provided as well, with some minor modifications. If you have your own version of the Simple Components, you may use it instead: Delete all Ada source files that do not begin with ada_gui. + +The sample implementation is reasonably full-featured and useful. The implementation is more responsive than the former proof-of-concept directly on full Gnoga. + +The Test directory contains boot.html, boot.js, and jquery.min.js. These files must be available to every Ada-GUI program. It also contains favicon.ico, an icon of Ada. + +Show_All creates at least one of each widget. Visibility, playing audio, and responding to key-press events is demonstrated. Changing this program is the easiest way to experiment with the sample implementation. The audio file glass.ogg and image file rgb.jpg are used by Show_All. + +Luhn_Gen calculates Luhn checksum digits. Enter the first 15 digits of your credit-card number and it will generate the 16th. + +Random_Int is a Gnoga program that has been revised to use Ada GUI instead. It will generate random integers in a desired range. + +## Installation of the Sample Implementation + +Gnoga and the Simple Components require a recent GNAT compiler, so Ada_GUI cannot be compiled with another compiler. The file gnat.adc is needed to compile the Simple Components extensions to GNAT.Sockets. The use of gnatmake is recommended, as gprbuild is for mixed-language or complicated builds, which this is not. After compiling, it is recommended that you write-protect the .ali files. Typically, you can use a command such as + +gnatmake -m -j0 -gnat12 -gnatan -gnato2 -O2 -fstack-check Test/show_all.adb + +If you keep the Ada-GUI source files in a single directory, including the Simple Components source files, and have the compiler put the object and .ali files in that directory, then you need only add -I/path/to/Ada_GUI/ to your program's gnatmake command to use Ada_GUI. + + diff --git a/_crates/ada_language_server.md b/_crates/ada_language_server.md new file mode 100644 index 00000000..e9772fe9 --- /dev/null +++ b/_crates/ada_language_server.md @@ -0,0 +1,26 @@ +--- +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: "25.0.0" +short_description: "An implementation of the Microsoft's Language Server Protocol for Ada" +dependencies: [{crate: "gnatcoll", version: "25.0.0"}, +{crate: "libadalang", version: "25.0.0"}, +{crate: "libadalang_tools", version: "25.0.0"}, +{crate: "libgnatdoc", version: "25.0.0"}, +{crate: "libgnatformat", version: "25.0.0"}, +{crate: "liblal_refactor", version: "25.0.0"}, +{crate: "prettier_ada", version: "25.0.0"}, +{crate: "spawn", version: "25.0.0"}, +{crate: "vss", version: "25.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..72fbb4b6 --- /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.5.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..6f3efdeb --- /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.9.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..ab66e2d4 --- /dev/null +++ b/_crates/adacl.md @@ -0,0 +1,53 @@ +--- +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.16.1" +short_description: "Ada Class Library (String, Trace, AUnit, Smart Pointer. GetOpt)" +dependencies: [{crate: "gnat_native", version: "^14.2"}] +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 access types + * generic for arrays types + * generic for discrete types + * generic for float types + * generic for vector 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/adare_dilithium5.md b/_crates/adare_dilithium5.md new file mode 100644 index 00000000..a7921a37 --- /dev/null +++ b/_crates/adare_dilithium5.md @@ -0,0 +1,33 @@ +--- +layout: crate +crate: "adare_dilithium5" +authors: ["Daniel Norte de Moraes"] +maintainers: ["Daniel Norte de Moraes "] +licenses: ["Unlicense"] +websites: [""] +tags: ["signature", +"pqc"] +version: "0.2.3" +short_description: "Post Quantum Computer Resistant Cryptograph Sign, Dilithium5 Ada bind." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Dilithium is a digital signature scheme that is strongly secure under + chosen message attacks based on the hardness of lattice problems + over module lattices. The security notion means that an adversary + having access to a signing oracle cannot produce a signature of a + message whose signature he hasn't yet seen, nor produce a different + signature of a message that he already saw signed. Dilithium is one + of the candidate algorithms submitted to the + NIST post-quantum cryptography project. + + Adare_Dilithium5 is a Ada 2012 bind to Dilithium5 C. + + (C version at https://github.com/PQClean/PQClean) + + How a Bonus all Ada packages in this lib is "Ada Pure"! :-) + + + diff --git a/_crates/adare_hqc256.md b/_crates/adare_hqc256.md new file mode 100644 index 00000000..436ffa0e --- /dev/null +++ b/_crates/adare_hqc256.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "adare_hqc256" +authors: ["Daniel Norte de Moraes"] +maintainers: ["Daniel Norte de Moraes "] +licenses: ["Unlicense"] +websites: [""] +tags: ["kem", +"pqc", +"ss512bits"] +version: "0.2.3" +short_description: "Post Quantum Computer Resistant Cryptograph KEM, HQC 256 Ada bind." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +HQC (Hamming Quasi-Cyclic) is a code-based public key encryption scheme + designed to provide security against attacks by + both classical and quantum computers. HQC has been submitted + to the NIST's Post-Quantum Cryptography Standardization Project. + + Adare_HQC256 is a Ada 2012 bind to HQC-256 C. + + Adare_HQC256 has a 512 bits Shared Secret size. + + (C version at https://github.com/PQClean/PQClean) + + How a Bonus all Ada packages in this lib is "Ada Pure"! :-) + + + diff --git a/_crates/adasat.md b/_crates/adasat.md new file mode 100644 index 00000000..3bb1cd86 --- /dev/null +++ b/_crates/adasat.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "adasat" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/adasat"] +tags: ["sat", +"solver", +"theories"] +version: "25.0.0" +short_description: "Implementation of a DPLL-based SAT solver in Ada." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Main features: + + - [X] Conflict analysis and backjumping + - [X] Two-watched literals scheme + - [X] Built-in support for At-Most-One constraints + - [X] Custom theories + + 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..87b161cc --- /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.1" +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..f5b0b648 --- /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.1" +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..5ad5abb8 --- /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.1" +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..a06b4a64 --- /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.1" +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..f3a52116 --- /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.7.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..05f5349d --- /dev/null +++ b/_crates/akt.md @@ -0,0 +1,66 @@ +--- +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.1" +short_description: "Ada Keystore Tool" +dependencies: [{crate: "intl", version: "^1.0.1"}, +{crate: "keystoreada", version: "^1.4.0"}, +{crate: "utilada", version: "^2.6.0"}, +{crate: "ada_fuse", version: "*"}] +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/alr2appimage.md b/_crates/alr2appimage.md new file mode 100644 index 00000000..ea6dbe82 --- /dev/null +++ b/_crates/alr2appimage.md @@ -0,0 +1,42 @@ +--- +layout: crate +crate: "alr2appimage" +authors: ["Manuel Gomez"] +maintainers: ["Manuel Gomez "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/mgrojo/alr2appimage"] +tags: ["utility", +"appimage", +"alire", +"linux", +"packaging"] +version: "0.9.3" +short_description: "Tool to create an AppImage executable from an Alire crate" +dependencies: [{crate: "ada_toml", version: "^0.3.0"}, +{crate: "spoon", version: "^1.0.1"}, +{crate: "parse_args", version: "~0.9.0"}, +{crate: "resources", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +There are two prerequisites for your project to work with this tool: +- It has to be a crate with an `executables` field. Its first value + has to be the main application program. +- It must be installable using Alire, including all the needed resources. + +`alr2appimage` will use the following command for installing it (this requires Alire 2.0): +```shell +alr install +``` +Or it will run `gprinstall` inside `alr exec`, if the former fails (Alire 1.x). + +If you simply run the tool inside an Alire crate, it will read the +metadata from your `alire.toml` file and create a default AppImage +from it. + +NOTE: `alr2appimage` is an independent project; it is not +affiliated to, nor supported by, the Alire or AppImage projects. + + + 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/aoa_22.md b/_crates/aoa_22.md new file mode 100644 index 00000000..b4982b0e --- /dev/null +++ b/_crates/aoa_22.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "aoa_22" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/AoA_22"] +tags: ["adventofada", +"2022"] +version: "20220720.0.0" +short_description: "Advent of Ada 22 Solutions" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/aoa_23.md b/_crates/aoa_23.md new file mode 100644 index 00000000..f26e2b66 --- /dev/null +++ b/_crates/aoa_23.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "aoa_23" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/AoA_23"] +tags: ["2023"] +version: "20230119.0.0" +short_description: "Some Advent of Ada 2023 solutions" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}] +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..0f6e228c --- /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.5.1" +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..8cef293e --- /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.6.1" +short_description: "Ada binding to SFML, the Simple and Fast Multimedia Library" +dependencies: [{crate: "libcsfml", version: "^2.6.1"}] +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..2f6afd99 --- /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: "1.0.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..487ba73e --- /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: "25.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..1be75015 --- /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: "3.0.0" +short_description: "Ada finite-state machine generator" +dependencies: [{crate: "uxstrings", version: ">=0.6"}] +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..fe5967ac --- /dev/null +++ b/_crates/awa.md @@ -0,0 +1,61 @@ +--- +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.5.0" +short_description: "Ada Web Application" +dependencies: [{crate: "ado", version: "^2.4.0"}, +{crate: "aws", version: "~24.0"}, +{crate: "elada", version: "^1.8.6"}, +{crate: "keystoreada", version: "^1.4.0"}, +{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: "wikiada", version: "^1.4.1"}] +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) + +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..abeb448e --- /dev/null +++ b/_crates/awa_unit.md @@ -0,0 +1,48 @@ +--- +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.5.0" +short_description: "Ada Web Application (Testing framework)" +dependencies: [{crate: "awa", version: "^2.5.0"}, +{crate: "serverfaces_unit", version: "^1.6.0"}, +{crate: "servletada_unit", 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-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) + +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. + +# 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/aws.md b/_crates/aws.md new file mode 100644 index 00000000..29d86fc0 --- /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: "24.0.0" +short_description: "Ada Web Server" +dependencies: [{crate: "gnat", version: ">=12"}, +{crate: "gnatcoll", version: "~24.0.0"}, +{crate: "make", version: "*"}, +{crate: "openssl", version: "*"}, +{crate: "xmlada", version: "~24.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..8d5c6a56 --- /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.1" +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/azip.md b/_crates/azip.md new file mode 100644 index 00000000..a055fe4f --- /dev/null +++ b/_crates/azip.md @@ -0,0 +1,44 @@ +--- +layout: crate +crate: "azip" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://azip.sourceforge.io/"] +tags: ["application", +"azip", +"zip", +"archive", +"file-manager"] +version: "2.7.0" +short_description: "AZip - A portable Zip Archive Manager" +dependencies: [{crate: "ini_files", version: ">=11.0.0"}, +{crate: "gwindows", version: ">=1.4.3"}, +{crate: "zipada", version: ">=59.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +  azip screenshot 1azip screenshot 2azip screenshot 3 + +**AZip** is a free Zip Archive Manager with unique features such as: built-in content Search, smart archive Update, archive Recompression. + +Features: + +* In addition to usual archive management (Add / Remove / Extract files), AZip provides the following unique functions: +* Super-fast in-archive Search function: content and/or entry name search through a Zip archive. No temp files written! +* Smart archive Updater: changes only new, modified files +* Archive Recompression: makes Zip archives smaller +* Easy toggle from Flat view to Tree view, and back +* Multi-document +* Compression methods supported: Reduce, Shrink, Implode, Deflate, Deflate64, BZip2, LZMA +* Encryption +* Portable (no installation needed, no DLL) +* Can operate with a config file instead of the registry (stealth mode) +* Installable if desired (application is its own installer) +* Compatible with other Zip archivers, regardless of the Operating System +* **Free**, Open-Source + + 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_code_drawing.md b/_crates/bar_code_drawing.md new file mode 100644 index 00000000..4a3cb420 --- /dev/null +++ b/_crates/bar_code_drawing.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "bar_code_drawing" +authors: ["Jeffrey Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Bar_Code_Drawing"] +tags: ["barcode", +"code128", +"msi", +"qr", +"upca", +"ean13", +"bmp", +"pbm", +"svg"] +version: "20240701.0.0" +short_description: "Creation of bar codes and qr codes" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "ada_gui", version: "^20240224.0.0"}, +{crate: "image_io", version: "^20240601.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bar_codes.md b/_crates/bar_codes.md new file mode 100644 index 00000000..0f75d3be --- /dev/null +++ b/_crates/bar_codes.md @@ -0,0 +1,67 @@ +--- +layout: crate +crate: "bar_codes" +authors: ["Gautier de Montmollin"] +maintainers: ["fabien.chouteau@gmail.com"] +licenses: ["MIT"] +websites: ["https://ada-bar-codes.sourceforge.io/"] +tags: ["bar", +"code", +"barcode", +"bar-code", +"datamatrix", +"data-matrix", +"qr", +"qrcode", +"qr-code", +"code128", +"msi", +"ean13", +"upca", +"pbm", +"pdf", +"png", +"svg"] +version: "5.0.0" +short_description: "Generate various types of bar codes (1D or 2D) on various media" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + QRCode 128Data Matrix + +Some features: + +* 1D bar codes supported: Code 128, EAN-13, MSI, UPC-A +* 2D bar codes supported: Data Matrix, QR Codes +* 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 2012: this package can be used in projects in Ada 2012 and later versions of the Ada language +* Tests and demos included +* *Free*, open-source + +The creation of a bar code is as simple as this small procedure: + +```ada +with Ada.Text_IO, Bar_Codes, Bar_Codes_Media; + +procedure Small_Demo is + use Ada.Text_IO; + svg : File_Type; +begin + Create (svg, Out_File, "qr_code.svg"); + Put_Line + (svg, + Bar_Codes_Media.SVG_Bar_Code + (Bar_Codes.Code_QR_Low, 100.0, 100.0, "mm", "Hello")); + Close (svg); +end Small_Demo; +``` + + diff --git a/_crates/bare_runtime.md b/_crates/bare_runtime.md new file mode 100644 index 00000000..a8d4f60e --- /dev/null +++ b/_crates/bare_runtime.md @@ -0,0 +1,47 @@ +--- +layout: crate +crate: "bare_runtime" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/Fabien-Chouteau/bare_runtime"] +tags: ["embedded", +"runtime"] +version: "14.0.0" +short_description: "Minimal Ada/SPARK run-time for embedded or other restricted targets" +dependencies: [{crate: "gnat", version: "^14"}] +configuration_variables: [{name: 'LCH_Print_Info', type: 'Boolean', default: "false"}, +{name: 'LCH_Reset', type: 'Boolean', default: "false"}] +configuration_values: [] + +--- +## Usage + +First edit you `alire.toml` file and add the following elements: + - Add `bare_runtime` in the dependency list: + ```toml + [[depends-on]] + bare_runtime = "*" + ``` + - Add cross GNAT in the dependency list (e.g. gnat_arm_elf): + ```toml + [[depends-on]] + gnat_arm_elf = "*" + ``` + - Set the architecture build switches, we use ARM Cortex-M4F as an example here: + ```toml + [gpr-set-externals] + BARE_RUNTIME_SWITCHES = "-mlittle-endian -mthumb -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16" + ``` + +Then edit your project file to add the following elements: + - "with" the run-time project file. With this, gprbuild will compile the run-time before your application + ```ada + with "bare_runtime.gpr"; + ``` + - Specify the `Target` and `Runtime` attributes: + ```ada + for Target use "arm-eabi"; + for Runtime ("Ada") use Bare_Runtime'Runtime ("Ada"); + + 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..bcaae053 --- /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: "1.0.0" +short_description: "DMA friendly lock-free BipBuffer" +dependencies: [{crate: "atomic", version: "^1.0.0"}, +{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/bbs.md b/_crates/bbs.md new file mode 100644 index 00000000..8ec8c087 --- /dev/null +++ b/_crates/bbs.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "bbs" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["0BSD"] +websites: ["https://github.com/BrentSeidel/BBS-Ada"] +tags: ["units"] +version: "0.1.0" +short_description: "Root package for other crates and contains some physical units" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bbs_embed_common.md b/_crates/bbs_embed_common.md new file mode 100644 index 00000000..346eedd0 --- /dev/null +++ b/_crates/bbs_embed_common.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "bbs_embed_common" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/BBS-BBB-Ada"] +tags: ["embedded"] +version: "0.1.0" +short_description: "Abstract hardware drivers and drivers for some i2c bus devices." +dependencies: [{crate: "bbs", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This crate contains base classes for some hardware devices such as Analog +Inputs, GPIO pins, I2C bus, and SPI bus. It also contains drivers for +devices that use, for example, an I2C bus. + +By itself, this crate isn't much use. It will need to be used with the +bbs_embed_linux crate which contains hardware drivers for the Raspberry Pi +and BeagleBone Black. + + diff --git a/_crates/bbs_embed_linux.md b/_crates/bbs_embed_linux.md new file mode 100644 index 00000000..e65c1996 --- /dev/null +++ b/_crates/bbs_embed_linux.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "bbs_embed_linux" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/BBS-BBB-Ada"] +tags: ["embedded", +"devices", +"hardware"] +version: "0.1.0" +short_description: "Physical device drivers for Raspberry Pi and BeagleBone Black" +dependencies: [{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_embed_common", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This contains device drivers for unix-type systems. The physical devices +are defined for the Raspberry Pi and BeagleBone Black, but it should +compile on any unix-type environment. + + diff --git a/_crates/bbs_lisp.md b/_crates/bbs_lisp.md new file mode 100644 index 00000000..c38b62de --- /dev/null +++ b/_crates/bbs_lisp.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "bbs_lisp" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Ada-Lisp"] +tags: ["lisp", +"embedded"] +version: "0.1.1" +short_description: "Embedable tiny lisp interpreter" +dependencies: [{crate: "bbs", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This is the core of a simple tiny lisp that is intended to be embedded in +other applications. It can be extended with new commands specific to +the application. + + diff --git a/_crates/bbs_simcpu.md b/_crates/bbs_simcpu.md new file mode 100644 index 00000000..365b61cc --- /dev/null +++ b/_crates/bbs_simcpu.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "bbs_simcpu" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Sim-CPU"] +tags: ["cpu-simulator"] +version: "0.1.0" +short_description: "CPU Simulator for multiple CPUs" +dependencies: [{crate: "bbs", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bbs_webif.md b/_crates/bbs_webif.md new file mode 100644 index 00000000..e9ebbe41 --- /dev/null +++ b/_crates/bbs_webif.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "bbs_webif" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Ada-Web-Server"] +tags: ["http", +"html", +"embedded", +"web"] +version: "0.1.0" +short_description: "Simple web server to provide an interface to embedded instruments" +dependencies: [{crate: "bbs", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/bbt.md b/_crates/bbt.md new file mode 100644 index 00000000..6f25d9bf --- /dev/null +++ b/_crates/bbt.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "bbt" +authors: ["Lionel Draghi"] +maintainers: ["Lionel Draghi "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["gherkin", +"test", +"markdown", +"tdd", +"black-box"] +version: "0.0.5" +short_description: "Black box test runner" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/binary_trees.md b/_crates/binary_trees.md new file mode 100644 index 00000000..6ca174f7 --- /dev/null +++ b/_crates/binary_trees.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "binary_trees" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Binary_Trees"] +tags: ["binarytrees", +"trees", +"noaccess"] +version: "20240519.0.0" +short_description: " Ordered binary trees implemented without access types" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# Binary_Trees +Ordered binary trees implemented without access types + +Demonstration of a technique to be presented at the Ada Developers Workshop of the 2024 Ada-Europe conference + + 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/bit_sets.md b/_crates/bit_sets.md new file mode 100644 index 00000000..476546a8 --- /dev/null +++ b/_crates/bit_sets.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "bit_sets" +authors: ["Michael Hardeman"] +maintainers: ["Michael Hardeman "] +licenses: ["GPL-2.0-or-later"] +websites: ["https://github.com/michael-hardeman/bit_sets"] +tags: ["bit", +"set", +"boolean", +"array", +"packed", +"performance"] +version: "1.0.0" +short_description: "A packed boolean array that saves space and is performant" +dependencies: [] +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/blinkenlights.md b/_crates/blinkenlights.md new file mode 100644 index 00000000..96eb708c --- /dev/null +++ b/_crates/blinkenlights.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "blinkenlights" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Pi-Mainframe"] +tags: ["embedded", +"simulation", +"i8080", +"m68000", +"hardware"] +version: "0.1.0" +short_description: "Project to blink LEDs in interesting patterns" +dependencies: [{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_embed_common", version: "~0.1.0"}, +{crate: "bbs_embed_linux", version: "~0.1.0"}, +{crate: "bbs_webif", version: "~0.1.0"}, +{crate: "bbs_simcpu", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a complex project involving 3D printing and soldering as well as +software. Alr will take care of the software dependencies for you, but +you will have to read the README and documentation to find the other parts. + +This project is intended to replicate the look and feel of older computers +with the switches and lights. It uses the simulators from bbs_simcpu to +drive the LEDs and act on the switches. Using the Intel 8080 simulator, +I was actually able to toggle a bootstrap program in using the panel and +get it to boot CP/M. If you use the Motorola 68000 simulator, it will +load and run a simple multitasking OS. The example simulator can be used +to flash the lights in a variaty of ways. + +There is a lamp test program in the lamp-test directory that may be useful +for debugging the hardware. + +Note that since each cycle of the simulator involves multiple I2C bus +transactions to read switches and set LEDs, any CPU simulation will run +rather slowly. The intention of this project is more for display than +simulator usage. + +There is also a web server that can be used to select the CPU variant. +This is most useful with the example simulator to select the light pattern. + +This project run on a Raspberry Pi. It will build on most Unix or Unix-like +systems, but unless the hardware interface matches the Raspberry Pi, it +won't run. You are welcome to try porting it to other systems, if you like. + + diff --git a/_crates/bme280.md b/_crates/bme280.md new file mode 100644 index 00000000..3500d85a --- /dev/null +++ b/_crates/bme280.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "bme280" +authors: ["Max Reznik"] +maintainers: ["Max Reznik "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/reznikmm/bme280"] +tags: ["sensor", +"humidity", +"temperature", +"pressure", +"driver"] +version: "1.0.0" +short_description: "Driver for BME280 Humidity sensor" +dependencies: [{crate: "gnat", version: ">=11 & <2000"}, +{crate: "hal", version: "~0.3.0"}] +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/checksum.md b/_crates/checksum.md new file mode 100644 index 00000000..04b39557 --- /dev/null +++ b/_crates/checksum.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "checksum" +authors: ["Miko Elbrecht"] +maintainers: ["Miko Elbrecht "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/ATPStorages/checksum.git"] +tags: ["crc", +"crc32", +"adler32", +"redundancy", +"error", +"checking", +"error-checking"] +version: "0.1.0" +short_description: "Algorithms for error-checking" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/cheddar.md b/_crates/cheddar.md new file mode 100644 index 00000000..b5d49d9f --- /dev/null +++ b/_crates/cheddar.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "cheddar" +authors: ["Lab-STICC"] +maintainers: ["Maxim Reznik "] +licenses: ["GPL-3.0-only"] +websites: ["http://beru.univ-brest.fr/cheddar"] +tags: ["realtime", +"model", +"simulator", +"analyzer"] +version: "3.3.0" +short_description: "Cheddar is a real time scheduling analysis tool." +dependencies: [{crate: "gtkada", version: "*"}, +{crate: "ocarina_lib", version: "=1.1.0-20070603"}, +{crate: "xmlada", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +To run cheddar you should set CHEDDAR_INSTALL_PATH or change +current working directory to the crate root. + + 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/chipmunk2d.md b/_crates/chipmunk2d.md new file mode 100644 index 00000000..1f2b22bc --- /dev/null +++ b/_crates/chipmunk2d.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "chipmunk2d" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: [""] +tags: ["gamedev", +"binding"] +version: "0.1.0" +short_description: "Ada bindings for Chipmunk2D" +dependencies: [{crate: "libchipmunk", version: "^7.0.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/clic.md b/_crates/clic.md new file mode 100644 index 00000000..d11c0fcd --- /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.3.0" +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/controlled_io.md b/_crates/controlled_io.md new file mode 100644 index 00000000..1ec6e309 --- /dev/null +++ b/_crates/controlled_io.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "controlled_io" +authors: ["Jeffrey Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Controlled_IO"] +tags: ["io", +"files", +"controlled", +"scope", +"binary", +"text"] +version: "20240401.0.1" +short_description: "Files that are open while they exist and closed when they don't " +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# Controlled_IO +Files that are open while they exist and closed when they don't + +This is a draft response to a request for a library for [Scope-based files](https://forum.ada-lang.io/t/ada-library-wishlist/14/5). Both binary and text I/O is supported. Please comment on whether or not you find this useful. + +The library is completely portable. It has been compiled and tested with GNAT and ObjectAda, on Linux and Windows. + +Controlled_Test and Controlled_Text are test programs. Both are user-unfriendly file-copy programs. Controlled_Test performs a binary copy; the output should always be identical to the input. Controlled_Text performs a line-by-line copy of text files; the output may have different line terminators than the input. + +Controlled_UTF is a user-unfriendly program to convert a native text file to a [Universal Text File](https://github.com/jrcarter/Universal-Text-File). + + diff --git a/_crates/cortex_m.md b/_crates/cortex_m.md new file mode 100644 index 00000000..2bc5b099 --- /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: "1.0.0" +short_description: "Drivers for Cortex-M micro-controllers (NVIC, SysTick, etc.)" +dependencies: [{crate: "gnat_arm_elf", version: ">=12"}, +{crate: "hal", version: "^1.0.0"}] +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/crc_32.md b/_crates/crc_32.md new file mode 100644 index 00000000..33c4d0a6 --- /dev/null +++ b/_crates/crc_32.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "crc_32" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/CRC-32"] +tags: ["crc", +"iso3309", +"data", +"redundancy", +"verification"] +version: "20240725.0.0" +short_description: "Cyclic Redundancy Check to verify data integrity (ISO 3309)" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# CRC-32 +Cyclic Redundancy Check to verify data integrity (ISO 3309) + +Derived, with extensive modifications, from Zip.CRC_Crypto by Gautier de Montmollin. + + 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..e8ea4220 --- /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.15.1" +short_description: "DASHER Terminal Emulator" +dependencies: [{crate: "gtkada", version: "^23.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/db_maker.md b/_crates/db_maker.md new file mode 100644 index 00000000..09075423 --- /dev/null +++ b/_crates/db_maker.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "db_maker" +authors: ["Jeff Carter "] +maintainers: ["Bent Bracke "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/bracke/DB_Maker"] +tags: ["database", +"table"] +version: "20240119.0.0" +short_description: "A generic for creating simple DBs (one table in an RDBMS)" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "ada_gui", version: "^20240224.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# DB_Maker +A generic for creating simple DBs (one table in an RDBMS) with PragmARC.Persistent_Skip_List_Unbounded and Ada GUI. + +Searching does not use the O(log N) search of the underlying skip list, but instead does a linear search for fields that have the corresponding search text as a substring (case insensitive). This is much slower, but is still quite fast. If you have less than 100,000 records it should be fast enough. "Search" starts from the 1st record; "Search More" from the record after the last search. "Clear" clears the edit fields to make entering a new search easier. + +Because searching is case insensitive and matches substrings, searching for "son" would match "Orson Welles", "Fowler De Johnsone", and "Son House". + +Only about 7 fields will fit vertically in the typical browser window. This could perhaps be increased by making the font smaller. A vertical scroll bar will appear if needed. + +Movies is a small demo program that could be used to catalogue a collection of films. DB_Strings is a non-limited replacement for PragmARC.B_Strings, since type B_String is limited in the Ada-12 version of the PragmARCs. + + 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..1765eaf8 --- /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.5" +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/dirty_booleans.md b/_crates/dirty_booleans.md new file mode 100644 index 00000000..bf57cbe7 --- /dev/null +++ b/_crates/dirty_booleans.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "dirty_booleans" +authors: ["Alejandro R. Mosteo"] +maintainers: ["Alejandro R. Mosteo "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["boolean", +"dirty", +"comparison"] +version: "0.1.0" +short_description: "Comparisons with 0/1, T/F, Y/N, Yes/No, etc." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + 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/easy_graphics.md b/_crates/easy_graphics.md new file mode 100644 index 00000000..fcefdc5e --- /dev/null +++ b/_crates/easy_graphics.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "easy_graphics" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/SMerrony/easy_graphic"] +tags: ["graphics", +"image", +"ppm", +"pam", +"gif", +"turtle"] +version: "0.1.0" +short_description: "Very Simple Graphics Package" +dependencies: [{crate: "gnat", version: ">=13.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Overview + +Easy_Graphics is a simple library for generating graphical output from your Ada program. + +Typical use cases might be educational projects, prototyping, programming challenges, +or simply when you want to visualise something quickly in a larger system. + + 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..b48d4bf5 --- /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.7" +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/elogs.md b/_crates/elogs.md new file mode 100644 index 00000000..dfa4180d --- /dev/null +++ b/_crates/elogs.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "elogs" +authors: ["Kevin Chadwick"] +maintainers: ["Kevin Chadwick "] +licenses: ["ISC OR BSD-2-Clause"] +websites: ["https://github.com/kevlar700/elogs"] +tags: ["spark", +"embedded", +"zfp", +"logging", +"log"] +version: "1.2.0" +short_description: "Embedded logging, proven absent of runtime errors" +dependencies: [{crate: "gnat", version: "(>=13 & <2000) | ^11 | >=2020"}] +configuration_variables: [{name: 'Device_ID_Length', type: 'Integer range -9223372036854775808 .. 9223372036854775807', default: "12"}, +{name: 'Max_Log_Count', type: 'Integer range -9223372036854775808 .. 9223372036854775807', default: "50"}, +{name: 'Max_Message_Length', type: 'Integer range -9223372036854775808 .. 9223372036854775807', default: "200"}, +{name: 'Version_Length', type: 'Integer range -9223372036854775808 .. 9223372036854775807', default: "8"}] +configuration_values: [] + +--- + + diff --git a/_crates/emacs_ada_mode.md b/_crates/emacs_ada_mode.md new file mode 100644 index 00000000..29a6f1da --- /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.1.0" +short_description: "Parser for Emacs ada-mode" +dependencies: [{crate: "emacs_wisi", version: "~4.3.0"}, +{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "re2c", version: ">=2.0.3"}, +{crate: "stephes_ada_library", version: "~3.7.3"}, +{crate: "wisitoken", version: "~4.2.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..dad23b5d --- /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.5" +short_description: "parser for Emacs gpr mode" +dependencies: [{crate: "emacs_wisi", version: "~4.3.2"}, +{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{crate: "re2c", version: ">=2.0.3"}, +{crate: "stephes_ada_library", version: "~3.7.3"}, +{crate: "wisitoken", version: "~4.2.1"}] +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..03c309b8 --- /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.2" +short_description: "Emacs xref backend using information output by GNAT compiler." +dependencies: [{crate: "gnat", version: "(>=11 & <2000) | >=2021"}, +{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..bb9fb9b7 --- /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.3.2" +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.2.1"}] +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..4cd31beb --- /dev/null +++ b/_crates/embedded_components.md @@ -0,0 +1,30 @@ +--- +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.3.0" +short_description: "Platform agnostic drivers to interface external components" +dependencies: [{crate: "adl_middleware", version: "~0.2.0"}, +{crate: "gnat", version: ">=11.2 & <2000"}, +{crate: "hal", version: "~0.3.1"}] +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/emdee.md b/_crates/emdee.md new file mode 100644 index 00000000..38d493fb --- /dev/null +++ b/_crates/emdee.md @@ -0,0 +1,38 @@ +--- +layout: crate +crate: "emdee" +authors: ["Stephen Merrony"] +maintainers: ["Stephen Merrony "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/SMerrony/emdee"] +tags: ["performance", +"theatre", +"midi", +"mp3", +"soundtrack", +"player", +"wav", +"flac", +"ogg", +"music", +"ffplay", +"aplaymidi", +"playsmf"] +version: "0.2.1" +short_description: "Performance assistant for Musical Directors" +dependencies: [{crate: "gnat", version: "^13.0"}, +{crate: "gtkada", version: "^24.0.0"}, +{crate: "ada_toml", version: "~0.4.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Overview + +`eMDee` is a live performance and rehearsal assistant for musical directors which removes the need to have folders of tracks and command-line windows open in order to play backing tracks for performance groups such as singers, choirs, and theatre-groups. + +The MD can plan in advance the order of performance; later, `eMDee` will facilitate the playing of each track in the specfied order during the performance. + +Additional controls may be added to specific tracks such as changing the volume level. + + 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/encryption_utilities.md b/_crates/encryption_utilities.md new file mode 100644 index 00000000..1cf65118 --- /dev/null +++ b/_crates/encryption_utilities.md @@ -0,0 +1,36 @@ +--- +layout: crate +crate: "encryption_utilities" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/bracke/Encryption-utilities"] +tags: ["threefish256", +"threefish512", +"threefish1024", +"xor"] +version: "20220701.0.0" +short_description: "Utility programs for the encryption algorithms included in the PragmARC" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Encryption utilities + +The PragmAda Reusable Components (https://github.com/jrcarter/PragmARC) contain implementations of the Threefish-256 (implemented directly from the specification in Section 3.3 of the Skein paper V1.3 [https://www.schneier.com/skein.pdf]), Threefish-512, Threefish-1024, and XOR encryption algorithms. Threefish-512 and Threefish-1024 are provided by Daniel Norte de Moraes (https://github.com/danieagle). + +Test cases specifically for Threefish are at https://sites.google.com/site/bartoszmalkowski/threefish and https://github.com/bmalkow/java-bc-threefish. + +Tf_Test runs the test cases for Threefish-256 successfully (on a little-endian machine). It also encrypts certain blocks and presents the encrypted blocks, and shows that they decrypt correctly. Tf_Test uses PragmARC.Images from https://github.com/jrcarter/PragmARC. Tf_Test_512 and Tf_Test_1024, provided by Daniel Norte de Moraes (https://github.com/danieagle), do the same for Threefish-512 and Threefish-1024. + +TF_Crypt is a command-line program for encrypting and decrypting files with Threefish-256. TF_Crypt uses Password_Line. Files encrypted with TF_Crypt built with GNAT and running on Linux are correctly decrypted by TF_Crypt build with ObjectAda and running on Windows, and vice versa. + +Xcrypt is a command-line program for encrypting and decrypting files with XOR. It uses Password_Line. Since XOR is symmetrical, the same algorithm is used for encrypting and decrypting. One can encrypt twice with multiple keys, and decrypt with the keys in any order. This gives results equivalent to encrypting with a key length of the least common multiple of the lengths of the keys. + +Password_Line is a function for obtaining secret input from a user without echoing it to the screen. It has been tested and works with GNAT on Linux and Windows and ObjectAda 10.3 on Windows. + +Tf_Test*, TF_Crypt, and Xcrypt are GPL-3; Password_Line is GMGPL. + + 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/enet.md b/_crates/enet.md new file mode 100644 index 00000000..edb4ff34 --- /dev/null +++ b/_crates/enet.md @@ -0,0 +1,26 @@ +--- +layout: crate +crate: "enet" +authors: ["Stephane Carrez"] +maintainers: ["Stephane Carrez ", +"Max Reznik "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/stcarrez/ada-enet"] +tags: ["network", +"ip", +"ipv4", +"icmp", +"udp", +"arp", +"dns", +"dhcp", +"ntp"] +version: "1.0.0" +short_description: "Ada Embedded Network Stack" +dependencies: [] +configuration_variables: [{name: 'Default_Random', type: 'Enum (discrete, null)', default: "discrete"}] +configuration_values: [] + +--- + + diff --git a/_crates/enet_stm32.md b/_crates/enet_stm32.md new file mode 100644 index 00000000..0d92f201 --- /dev/null +++ b/_crates/enet_stm32.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "enet_stm32" +authors: ["Stephane Carrez"] +maintainers: ["Stephane Carrez ", +"Max Reznik "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/stcarrez/ada-enet"] +tags: ["stm32", +"enet", +"driver", +"network"] +version: "1.0.0" +short_description: "ENet driver for STM32" +dependencies: [{crate: "cortex_m", version: "~0.5"}, +{crate: "enet", version: "^1.0.0"}, +{crate: "ethernet", version: "^1.0.0"}] +configuration_variables: [{name: 'Extra_Buffers', type: 'Integer range 0 .. 1024', default: "8"}, +{name: 'RX_Ring_Size', type: 'Integer range 0 .. 1024', default: "8"}, +{name: 'TX_Ring_Size', type: 'Integer range 0 .. 1024', default: "8"}] +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/ethernet.md b/_crates/ethernet.md new file mode 100644 index 00000000..edea1666 --- /dev/null +++ b/_crates/ethernet.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "ethernet" +authors: ["Max Reznik"] +maintainers: ["Max Reznik "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/reznikmm/ethernet"] +tags: ["network", +"mdio", +"smi", +"miim", +"phy", +"driver"] +version: "1.0.0" +short_description: "Root crate for ethernet namespace and MDIO/SMI/MIIM interface" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/euler_tools.md b/_crates/euler_tools.md new file mode 100644 index 00000000..20633dd9 --- /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.3.0" +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..9670e018 --- /dev/null +++ b/_crates/excel_writer.md @@ -0,0 +1,59 @@ +--- +layout: crate +crate: "excel_writer" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://excel-writer.sourceforge.io/"] +tags: ["excel", +"spreadsheet", +"xls", +"csv"] +version: "19.0.0" +short_description: "Produce Excel spreadsheets" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +![Excel Writer logo](https://excel-writer.sourceforge.io/ew_logo_no_shadow.png) + +Excel_Out is a standalone, portable Ada package for writing Excel spreadsheets with basic formattings and formulas, easily and programmatically. + +* Enables the automatic production of reports +* Fast: 50 sheets per second, with 10,000 data cells each on a slow 1.66 GHz computer +* No interaction needed with Excel or MS Office +* Unconditionally portable (*) +* Endian-neutral +* Object oriented +* Task safe +* Pure Ada 95 (nothing compiler/system specific), can be used in projects in Ada 95, Ada 2005, Ada 2012 and later versions of the language +* Floating-point hardware neutral: no IEEE hardware required +* Tests and demos included +* Includes a CSV parser with related tools. +* Free, open-source + +The creation of an Excel file is as simple as this small procedure: + +```ada +with Excel_Out; + +procedure Small_Demo is + xl : Excel_Out.Excel_Out_File; +begin + xl.Create ("small.xls"); + xl.Put_Line ("This is a small demo for Excel_Out"); + for row in 3 .. 8 loop + for column in 1 .. 8 loop + xl.Write (row, column, row * 1000 + column); + end loop; + end loop; + xl.Close; +end Small_Demo; +``` + +___ + +(*) within limits of compiler's provided integer types and target architecture capacity. + + 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..c8595a95 --- /dev/null +++ b/_crates/florist.md @@ -0,0 +1 @@ +Not found: florist* diff --git a/_crates/florist_blady.md b/_crates/florist_blady.md new file mode 100644 index 00000000..25192ad0 --- /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.1.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/getada.md b/_crates/getada.md new file mode 100644 index 00000000..2993f272 --- /dev/null +++ b/_crates/getada.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "getada" +authors: ["A.J. Ianozi"] +maintainers: ["A.J. Ianozi "] +licenses: ["GPL-3.0-only"] +websites: ["https://www.getada.dev/"] +tags: ["ada", +"alire", +"tool", +"utility"] +version: "1.0.1" +short_description: "The unofficial mac and linux installer for Alire." +dependencies: [{crate: "gnat", version: ">=12 & <2000"}, +{crate: "gnatcoll", version: "^24.0.0"}, +{crate: "zipada", version: "^58.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + 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/gfx_core.md b/_crates/gfx_core.md new file mode 100644 index 00000000..a7225158 --- /dev/null +++ b/_crates/gfx_core.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gfx_core" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["graphics"] +version: "0.1.0" +short_description: "Modular Portable Graphics Library, Core Components" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gfx_rasteriser.md b/_crates/gfx_rasteriser.md new file mode 100644 index 00000000..c9122029 --- /dev/null +++ b/_crates/gfx_rasteriser.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gfx_rasteriser" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["graphics"] +version: "0.1.0" +short_description: "Modular Portable Graphics Library, Primitive's Rasteriser" +dependencies: [{crate: "gfx_core", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gid.md b/_crates/gid.md new file mode 100644 index 00000000..17a18f13 --- /dev/null +++ b/_crates/gid.md @@ -0,0 +1,68 @@ +--- +layout: crate +crate: "gid" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://gen-img-dec.sourceforge.io/"] +tags: ["image", +"animated", +"animation", +"bitmap", +"color", +"decoder", +"decoding", +"decompress", +"digitization", +"lossless", +"lossy", +"rbg", +"steganography", +"transparency", +"transparent", +"bmp", +"gif", +"jpeg", +"jpg", +"pbm", +"pgm", +"png", +"pnm", +"ppm", +"qoi", +"tga", +"targa"] +version: "13.0.1" +short_description: "Generic Image Decoder - decode a broad variety of image formats" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + image + +The Generic Image Decoder (GID) is a low-level Ada package for decoding a broad variety of image formats, +from any data stream, to any kind of medium, be it an in-memory bitmap, a GUI object, some other stream, +floating-point data for scientific calculations, a browser element, a device, ... + +Currently supported formats are: BMP, GIF, JPEG, PNG, PNM (PBM, PGM, PPM), QOI, TGA + +Animations (GIF, PNG) are supported. + +Some features: + +* *Fast*! Up to 2.8 times faster than ImageMagick. +* 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 2012: this package can be used in projects in Ada 2012 and later versions of the Ada language +* Tests, demos and tools included. +* *Free*, open-source + +______ + +(*) within limits of compiler's provided integer types and target architecture capacity. + + diff --git a/_crates/globe_3d.md b/_crates/globe_3d.md new file mode 100644 index 00000000..fcc026ed --- /dev/null +++ b/_crates/globe_3d.md @@ -0,0 +1,42 @@ +--- +layout: crate +crate: "globe_3d" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://globe3d.sourceforge.io/"] +tags: ["gl", +"opengl", +"rendering", +"graphics", +"3d-rendering", +"3d-graphics", +"space-partition", +"collision", +"portal"] +version: "2023.11.12" +short_description: "GLOBE_3D: GL Object Based Engine for 3D" +dependencies: [{crate: "gid", version: ">=9.0.0"}, +{crate: "zipada", version: "^58.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +GLOBE_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL. + +![GLOBE_3D Screenshot](https://a.fsdn.com/con/app/proj/globe3d/screenshots/pure_evil_mini.jpg "Screenshot GLOBE_3D") + +* Real-time rendering +* Full eye movements and rotations ("6D") +* Displays combinations of colours, materials, textures +* Multitexturing +* Transparency +* Portal rendering +* Binary space partition (BSP) +* Collision detection +* Screenshots (.bmp) and video captures (.avi) +* Input-output of 3D objects +* Import from 3D Studio Max, id Software Radiant, VRML, Wavefront formats +* Tests, tools and demos included + + 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..e0f5001c --- /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: "14.2.1" +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..a7c3b7ac --- /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: "14.2.1" +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..7340134b --- /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: "14.2.1" +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..663f9e16 --- /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: "14.2.1" +short_description: "The GNAT Ada compiler - RISC-V cross-compiler" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnat_xtensa_esp32_elf.md b/_crates/gnat_xtensa_esp32_elf.md new file mode 100644 index 00000000..fe6c11b6 --- /dev/null +++ b/_crates/gnat_xtensa_esp32_elf.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gnat_xtensa_esp32_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: "14.2.1" +short_description: "The GNAT Ada compiler - ESP32 cross-compiler" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll.md b/_crates/gnatcoll.md new file mode 100644 index 00000000..8697f405 --- /dev/null +++ b/_crates/gnatcoll.md @@ -0,0 +1,24 @@ +--- +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: "25.0.0" +short_description: "GNAT Components Collection - Core packages" +dependencies: [{crate: "gnat", version: ">=13"}, +{crate: "libgpr", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_gmp.md b/_crates/gnatcoll_gmp.md new file mode 100644 index 00000000..a5cc1ab6 --- /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: "25.0.0" +short_description: "GNAT Components Collection - GNU Multiple Precision Arithmetic binding" +dependencies: [{crate: "gnatcoll", version: "~25.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..5be0329c --- /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: "25.0.0" +short_description: "GNAT Components Collection - iconv binding" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_lzma.md b/_crates/gnatcoll_lzma.md new file mode 100644 index 00000000..620d4100 --- /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: "25.0.0" +short_description: "GNAT Components Collection - lzma binding" +dependencies: [{crate: "gnatcoll", version: "~25.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..dbe4a431 --- /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: "25.0.0" +short_description: "GNAT Components Collection - OpenMP binding" +dependencies: [{crate: "gnatcoll", version: "~25.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..89b72d8d --- /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: "25.0.0" +short_description: "GNAT Components Collection - postgres" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}, +{crate: "gnatcoll_sql", version: "~25.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..d972e4c5 --- /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: "25.0.0" +short_description: "GNAT Components Collection - readline binding" +dependencies: [{crate: "gnatcoll", version: "~25.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..8c5c2ae4 --- /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: "25.0.0" +short_description: "GNAT Components Collection - sql" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_sqlite.md b/_crates/gnatcoll_sqlite.md new file mode 100644 index 00000000..8ec6d1a9 --- /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: "25.0.0" +short_description: "GNAT Components Collection - sqlite" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}, +{crate: "gnatcoll_sql", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_syslog.md b/_crates/gnatcoll_syslog.md new file mode 100644 index 00000000..86eca9f5 --- /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: "25.0.0" +short_description: "GNAT Components Collection - syslog binding" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_xref.md b/_crates/gnatcoll_xref.md new file mode 100644 index 00000000..45227190 --- /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: "25.0.0" +short_description: "GNAT Components Collection - xref" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}, +{crate: "gnatcoll_iconv", version: "~25.0.0"}, +{crate: "gnatcoll_sql", version: "~25.0.0"}, +{crate: "gnatcoll_sqlite", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatcoll_zlib.md b/_crates/gnatcoll_zlib.md new file mode 100644 index 00000000..65c0ed47 --- /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: "25.0.0" +short_description: "GNAT Components Collection - zlib binding" +dependencies: [{crate: "gnatcoll", version: "~25.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..bdfcc1d5 --- /dev/null +++ b/_crates/gnatdoc.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "gnatdoc" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/gnatdoc"] +tags: ["documentation", +"tools"] +version: "25.0.0" +short_description: "GNAT Documentation Generation Tool" +dependencies: [{crate: "libadalang", version: "^25"}, +{crate: "libgpr2", version: "^25"}, +{crate: "markdown", version: "^25"}, +{crate: "vss", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatformat.md b/_crates/gnatformat.md new file mode 100644 index 00000000..4caf1bd2 --- /dev/null +++ b/_crates/gnatformat.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "gnatformat" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["formatting", +"ada", +"tool"] +version: "25.0.0" +short_description: "Opinionated code formatter for the Ada language" +dependencies: [{crate: "adasat", version: "^25"}, +{crate: "gnatcoll", version: "^25"}, +{crate: "libadalang", version: "^25"}, +{crate: "prettier_ada", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gnatprove.md b/_crates/gnatprove.md new file mode 100644 index 00000000..8d0cf769 --- /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: "14.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..a47cdefd --- /dev/null +++ b/_crates/gprbuild.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "gprbuild" +authors: [] +maintainers: ["chouteau@adacore.com"] +licenses: [] +websites: [] +tags: [] +version: "24.0.1" +short_description: "The GPRBuild Ada/multilanguage build tool" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gsl.md b/_crates/gsl.md new file mode 100644 index 00000000..5f03fa4d --- /dev/null +++ b/_crates/gsl.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "gsl" +authors: ["R Srinivasan"] +maintainers: ["R Srinivasan "] +licenses: [] +websites: [] +tags: [] +version: "0.1.0" +short_description: "Ada binding to Gnu Scientific Library 2.7" +dependencies: [{crate: "gnat", version: ">=12"}, +{crate: "libgsl", version: "^2.7"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/gtkada.md b/_crates/gtkada.md new file mode 100644 index 00000000..cafc90ad --- /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: "25.0.1" +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..f43aa799 --- /dev/null +++ b/_crates/gwindows.md @@ -0,0 +1,40 @@ +--- +layout: crate +crate: "gwindows" +authors: ["David Botton", +"Gautier de Montmollin"] +maintainers: ["Felix Patschkowski ", +"gdemont@hotmail.com"] +licenses: ["LGPL-2.0-or-later"] +websites: ["https://sourceforge.net/projects/gnavi/"] +tags: ["gui", +"rad", +"windows"] +version: "1.4.3" +short_description: "GWindows - Ada Framework for Windows Development" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +  GWindows screenshot 1 +   GWindows screenshot 2 +   GWindows screenshot 3 + +**GWindows** is a full Microsoft Windows Rapid Application Development +framework for programming GUIs (Graphical User Interfaces) with Ada. + +Key features of GWindows: + + * Complete Windows framework + * Pure Ada code, standalone + * Object-Oriented + * Code generator (GWenerator) + * License: GMGPL + * Builds to 32 bit and to 64 bit native Windows applications + * Works on both ANSI and Unicode character modes + * Includes GNATCOM, an ActiveX/COM framework + * Tests, demos, samples and tutorials included + * **Free**, Open-Source + + diff --git a/_crates/hac.md b/_crates/hac.md new file mode 100644 index 00000000..3e8e5d53 --- /dev/null +++ b/_crates/hac.md @@ -0,0 +1,37 @@ +--- +layout: crate +crate: "hac" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://hacadacompiler.sourceforge.io/"] +tags: ["hac", +"compiler", +"virtual-machine", +"native", +"semantic", +"parser", +"advent-of-code"] +version: "0.40.0" +short_description: "HAC Ada Compiler: a small, quick Ada compiler covering a subset of Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + hac logo + +HAC (HAC Ada Compiler) is a small, quickly compiling, open-source Ada compiler, covering a subset of the Ada language. +HAC is perhaps the first open-source (albeit partial) Ada compiler fully programmed in Ada itself. + +Features: + +* **Quick**: short programming-compilation-run-test cycles. +* Perfect for scripting jobs. +* Compiles Ada sources from any stream - file, internet, editor data, Zip archive, ... +* Compilation leaves zero compilation temp file - all is done in memory! +* Portable, fully programmed in Ada. +* Can be embedded into another software - see the [**LEA**](https://l-e-a.sourceforge.io/) editor - and even exchange data with it - see the `demo/data_exchange/exchange_native_side.adb` demo. +* **Free**, open-source. + + diff --git a/_crates/hal.md b/_crates/hal.md new file mode 100644 index 00000000..2ade0062 --- /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: "1.0.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/hex_format.md b/_crates/hex_format.md new file mode 100644 index 00000000..d0a721bb --- /dev/null +++ b/_crates/hex_format.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "hex_format" +authors: ["Jeremy Grosser"] +maintainers: ["Jeremy Grosser "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/JeremyGrosser/hex_format"] +tags: ["hex", +"pure", +"embedded", +"string", +"text", +"format"] +version: "0.1.0" +short_description: "Hexadecimal string formatting for modular types" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/hirtos.md b/_crates/hirtos.md new file mode 100644 index 00000000..bec70495 --- /dev/null +++ b/_crates/hirtos.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "hirtos" +authors: ["J. German Rivera"] +maintainers: ["J. German Rivera "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/jgrivera67/HiRTOS"] +tags: ["rtos"] +version: "2.0.0" +short_description: "High-Integrity RTOS" +dependencies: [] +configuration_variables: [{name: 'Platform', type: 'Enum (arm_fvp, esp32_c3)', default: "arm_fvp"}] +configuration_values: [] + +--- + + diff --git a/_crates/hirtos_separation_kernel.md b/_crates/hirtos_separation_kernel.md new file mode 100644 index 00000000..d33ff1a7 --- /dev/null +++ b/_crates/hirtos_separation_kernel.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "hirtos_separation_kernel" +authors: ["J. German Rivera"] +maintainers: ["J. German Rivera "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/jgrivera67/HiRTOS"] +tags: ["hypervisor"] +version: "2.0.0" +short_description: "High-Integrity RTOS Separation Kernel" +dependencies: [] +configuration_variables: [{name: 'Platform', type: 'Enum (arm_fvp)', default: "arm_fvp"}, +{name: 'Separation_Kernel_Debug_Tracing_On', type: 'Boolean', default: "false"}] +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/hmc5883.md b/_crates/hmc5883.md new file mode 100644 index 00000000..bb83ae14 --- /dev/null +++ b/_crates/hmc5883.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "hmc5883" +authors: ["Max Reznik"] +maintainers: ["Max Reznik "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/reznikmm/hmc5883"] +tags: ["sensor", +"magnetometer", +"driver"] +version: "1.0.0" +short_description: "Driver for HMC5883L magnetic sensor" +dependencies: [{crate: "gnat", version: ">=11 & <2000"}, +{crate: "hal", version: "~0.3.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..d7beadd6 --- /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.5305" +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.4, 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.4, 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/hp41cx_tools.md b/_crates/hp41cx_tools.md new file mode 100644 index 00000000..62f59f3e --- /dev/null +++ b/_crates/hp41cx_tools.md @@ -0,0 +1,32 @@ +--- +layout: crate +crate: "hp41cx_tools" +authors: ["Martin Krischik "] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://calculator-scripts.sourceforge.io/px-41cx"] +tags: ["calculator", +"tools", +"retrocomputing", +"ada-2022", +"hp-41cx", +"dm41x", +"px41cx"] +version: "1.6.2" +short_description: "HP-41CX emulator Tools" +dependencies: [{crate: "adacl", version: "5.16.1"}, +{crate: "gnat_native", version: "^14.2"}] +configuration_variables: [] +configuration_values: [] + +--- +Tools for manipulating memory dumps from HP-41CX emulators. + +The following HP-41CX emulators are supported: + +* [PX-41CX](https://paxer.net/PX-41CX/) from Paxer. +* [DM41X](https://www.swissmicros.com/product/dm41x) from SwissMicros. + +Currently hex dump files can be decoded to user readable UTF-8 encoded files. + + 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/image_io.md b/_crates/image_io.md new file mode 100644 index 00000000..e64c1875 --- /dev/null +++ b/_crates/image_io.md @@ -0,0 +1,50 @@ +--- +layout: crate +crate: "image_io" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Image_IO"] +tags: ["image", +"io", +"bmp", +"ppm", +"qoi", +"gif", +"jpg", +"png", +"pnm", +"tga"] +version: "20240725.0.0" +short_description: "Output in BMP,PPM,QOI;input in BMP,GIF,JPG,PNG,PNM,QOI,TGA" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "gid", version: "^13.0.0"}, +{crate: "crc_32", version: "^20240725.0.0"}, +{crate: "z_compression", version: "^20240724.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Image_IO +Output in BMP, PNG, PPM, and QOI formats; input in BMP, GIF, JPG, PNG, PNM, QOI, and TGA formats + +Package Image_IO.Operations provides the ability to input and output images. + +PNG is a lossless compressed format that is widely supported. Uncompressed BMP is a universal format that is very large. PPM is intended to be a set of portable formats, but lacks support by default on some platforms. QOI is a lossless compressed format, but not widely supported. + +Write_P3 uses [PragmARC.Text_IO](https://github.com/jrcarter/PragmARC/blob/Ada-12/pragmarc-text_io.ads) to obtain uniform line terminators across platforms. This can be easily changed to Ada.Text_IO if the line terminators are not a concern. + +Write_PNG uses [Z_Compression](https://github.com/jrcarter/Z_Compression) and [CRC-32](https://github.com/jrcarter/CRC-32). + +Read is a wrapper around [Generic Image Decoder (GID)](https://github.com/zertovitch/gid) for the most common use: reading an image from a file. GID may be used to decode images from other sources, but that generality makes it complex to use. Read ignores transparency (Alpha channel) and only reads the first frame of an animation. + +Pure_RGB is a demo program that reads an image using Read, modifies it to change all color components to the closest of 0 or 255, and outputs the result using Write_PNG. It is invoked with + + pure_rgb + +The output name is the input name with ".png" appended. Pure_RGB does no error handling; if the input file name is omitted, doesn't exist, or is not a supported image format, the program will terminate with an unhandled exception. + +Image_IO and Pure_RGB have been compiled and tested with GNAT 12.3.0 on Linux and ObjectAda 10.5U7 on Windows. + + diff --git a/_crates/image_random.md b/_crates/image_random.md new file mode 100644 index 00000000..90bc246f --- /dev/null +++ b/_crates/image_random.md @@ -0,0 +1,30 @@ +--- +layout: crate +crate: "image_random" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Image_Random"] +tags: ["random", +"numbers", +"camera"] +version: "20200720.0.0" +short_description: "True random numbers from a digital camera " +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# Image_Random +True random numbers from a digital camera + +This works under Linux with the GNAT compiler; modification for other platforms or compilers is left as an exercise for the desperate + +Ideally, the camera should have its lens cap on, or have a similar dark covering, so the image is of the camera sensor noise + +However, another randomly changing scene, such as a lava lamp or aquarium, may also work + +This is slow and only produces 64 random bytes; if you need more, it is probably best to use these bytes to seed a high-quality +pseudo-random number generator, such as the Threefry generator + + diff --git a/_crates/ini_files.md b/_crates/ini_files.md new file mode 100644 index 00000000..0ae192b7 --- /dev/null +++ b/_crates/ini_files.md @@ -0,0 +1,31 @@ +--- +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", +"ini-file", +"cfg", +"cfg-file", +"config", +"configuration"] +version: "11.0.0" +short_description: "A standalone, portable Ada package for configuration files" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Config is an Ada package for parsing configuration files (.ini, .inf, .cfg, ...) and retrieving keys of various types. New values for single keys, or entire sections, can be set. + +* Standalone and unconditionally portable code. +* Pure Ada 2005: nothing compiler- / system- specific. +* Can be used in projects in Ada 2005, Ada 2012 and later versions of the Ada language. +* Object oriented. +* Tests and demos included. + + 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/intl.md b/_crates/intl.md new file mode 100644 index 00000000..0cc7bc1d --- /dev/null +++ b/_crates/intl.md @@ -0,0 +1,62 @@ +--- +layout: crate +crate: "intl" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-intl"] +tags: ["i18n", +"nls", +"bindings"] +version: "1.0.1" +short_description: "NLS thin Ada binding" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is a small Ada library that provides NLS support by using +[gettext (3)](https://linux.die.net/man/3/gettext), +[textdomain (3)](https://linux.die.net/man/3/textdomain) and +[bindtextdomain (3)](https://linux.die.net/man/3/bindtextdomain). + +When NLS is not supported or disabled, the Ada library implements the +NLS operations by using empty suitable stubs that skip the NLS transformation +and emit the English default message. + +## Using the library + +The first step in using the NLS library is to call the `Initialize` procedure +that handles the setup of `textdomain` and `bindtextdomain` to configure the +language according to the user's locale. The program localized messages are +stored in a catalog file that is created by `msginit (1)` and `msgfmt (1)` tools. +In most cases catalog file are identified by a unique name that must be given +to the `Initialize` procedure (below, it will be `mytool`). + +``` +with Intl; +... + PROG_NAME : constant String := "mytool"; + ... + Intl.Initialize (PROG_NAME, "/usr/share/locale"); +``` + +To localize a message, the `"-"` function is provided to encapsulate the call +to the [gettext (3)](https://linux.die.net/man/3/gettext) method. If the message +is translated and the catalog contains it in the user's language, it will be +converted by `gettext` and the `"-"` function returns the localized message. + +``` +with GNAT.IO; + ... + function "-" (Message : in String) return String is (Intl."-" (Message)); + ... + GNAT.IO.Put_Line (-("Hello world!")); +``` + +To build the message translation file (`PO files`), a tool can be used to extract +from the source code the default messages. This process is +explained in the [GNU gettext](https://www.gnu.org/software/gettext/manual/) documentation. + + + 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/jintp.md b/_crates/jintp.md new file mode 100644 index 00000000..d8027f83 --- /dev/null +++ b/_crates/jintp.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "jintp" +authors: ["Rene Hartmann"] +maintainers: ["Rene Hartmann "] +licenses: ["BSD-2-Clause"] +websites: ["https://github.com/rehartmann/JinTP"] +tags: ["templates", +"jinja", +"jinja2"] +version: "0.1.0" +short_description: "Template parser in Ada based on Jinja2" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/journada.md b/_crates/journada.md new file mode 100644 index 00000000..92a9d8ec --- /dev/null +++ b/_crates/journada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "journada" +authors: ["Léo Germond"] +maintainers: ["Léo Germond "] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/leogermond/journada"] +tags: ["log", +"logging", +"vt100"] +version: "1.0.0" +short_description: "Simple and nice configurable logging" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/json.md b/_crates/json.md new file mode 100644 index 00000000..0a857989 --- /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: "6.0.0" +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..af5b83fb --- /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.1" +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..8c8bca8a --- /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: "1.0.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..53ecfb66 --- /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.1.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/lal_refactor.md b/_crates/lal_refactor.md new file mode 100644 index 00000000..9644c069 --- /dev/null +++ b/_crates/lal_refactor.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "lal_refactor" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["refactoring", +"ada", +"tool"] +version: "25.0.0" +short_description: "Source code refactoring utilities for the Ada language" +dependencies: [{crate: "adasat", version: "^25"}, +{crate: "gnatcoll", version: "^25"}, +{crate: "libadalang", version: "^25"}, +{crate: "libadalang_tools", version: "^25"}, +{crate: "prettier_ada", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/langkit_support.md b/_crates/langkit_support.md new file mode 100644 index 00000000..e01a57c5 --- /dev/null +++ b/_crates/langkit_support.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "langkit_support" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat ", +"chouteau@adacore.com"] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/langkit"] +tags: [] +version: "25.0.0" +short_description: "Runtime support library for Langkit-generated libraries" +dependencies: [{crate: "adasat", version: "^25"}, +{crate: "gnatcoll", version: "^25"}, +{crate: "gnatcoll_gmp", version: "^25"}, +{crate: "gnatcoll_iconv", version: "^25"}, +{crate: "prettier_ada", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lea.md b/_crates/lea.md new file mode 100644 index 00000000..bb3fecc7 --- /dev/null +++ b/_crates/lea.md @@ -0,0 +1,48 @@ +--- +layout: crate +crate: "lea" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://l-e-a.sourceforge.io/"] +tags: ["application", +"lea", +"editor", +"hac"] +version: "0.90.0" +short_description: "LEA is a Lightweight Editor for Ada " +dependencies: [{crate: "ini_files", version: "^10.0.0"}, +{crate: "gwindows", version: "^1.4.3"}, +{crate: "zipada", version: "^58.0.0"}, +{crate: "gnat", version: "/=10.3.2"}, +{crate: "hac", version: "~0.30.0"}] +configuration_variables: [] +configuration_values: [] + +--- +  lea screenshot 1lea screenshot 2lea screenshot 3lea screenshot 4 + +**LEA**, a **Lightweight Editor for Ada**, aims to provide an easy, script-world-like, "look & feel" for developing Ada projects of any size and level, while enabling access to full-scale development tools like GNAT. + +Features: + +* Quick start and reactivity +* Uses the Scintilla editor widget (like Notepad++) +* Multi-document +* Multiple undo's & redo's +* Multi-line, multi-point editing; rectangular selections +* Duplication of lines and selections +* Color themes +* Syntax highlighting, parenthesis matching +* Bookmarks +* Smart editor features (auto-completion, navigation, mouse-hover infos) +* Includes HAC, the HAC Ada Compiler +* Includes numerous examples of Ada programs, ready to be run +* Single executable, runs without installation +* Programmed in Ada +* **Free**, Open-Source + + diff --git a/_crates/learnadainy.md b/_crates/learnadainy.md new file mode 100644 index 00000000..a91ff4d0 --- /dev/null +++ b/_crates/learnadainy.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "learnadainy" +authors: ["Luke A. Guest"] +maintainers: ["Luke A. Guest "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: ["https://learnxinyminutes.com/docs/ada"] +tags: ["education"] +version: "0.2.0" +short_description: "Learn Ada in Y Minutes" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libadalang.md b/_crates/libadalang.md new file mode 100644 index 00000000..68fcaea2 --- /dev/null +++ b/_crates/libadalang.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "libadalang" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat ", +"chouteau@adacore.com"] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/libadalang"] +tags: ["libadalang", +"static-analysis"] +version: "25.0.0" +short_description: "Ada semantic analysis library" +dependencies: [{crate: "gnatcoll", version: "^25"}, +{crate: "gnatcoll_gmp", version: "^25"}, +{crate: "gnatcoll_iconv", version: "^25"}, +{crate: "langkit_support", version: "^25"}, +{crate: "libgpr2", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libadalang2xml.md b/_crates/libadalang2xml.md new file mode 100644 index 00000000..25d4f660 --- /dev/null +++ b/_crates/libadalang2xml.md @@ -0,0 +1,86 @@ +--- +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.2" +short_description: "Generates XML for Ada source, using libadalang." +dependencies: [{crate: "libadalang", version: "*"}] +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. + +## Building on macOS ## + +Using the standard `langkit_support`, `libadalang` crates, you **must** build with `LIBRARY_TYPE` set to `relocatable`. + +You can obtain versions of those crates adjusted to not require those features, which can therefore build the (default) static libraries, by visiting https://github.com/simonjwright/alire-index.mac. + +## 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..0782af0e --- /dev/null +++ b/_crates/libadalang_tools.md @@ -0,0 +1,28 @@ +--- +layout: crate +crate: "libadalang_tools" +authors: ["AdaCore"] +maintainers: ["Pierre-Marie de Rodat ", +"Max Reznik "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/libadalang-tools"] +tags: ["libadalang", +"static-analysis", +"metric", +"formatting", +"generator", +"gnatmetric", +"gnatpp", +"gnatstub", +"gnattest"] +version: "25.0.0" +short_description: "Ada semantic analysis library extension and tools" +dependencies: [{crate: "libadalang", version: "^25.0.0"}, +{crate: "templates_parser", version: "^25.0.0"}, +{crate: "vss", version: "^25.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/libchipmunk.md b/_crates/libchipmunk.md new file mode 100644 index 00000000..a72bd89f --- /dev/null +++ b/_crates/libchipmunk.md @@ -0,0 +1 @@ +Not found: libchipmunk* 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/libcmark.md b/_crates/libcmark.md new file mode 100644 index 00000000..04d64055 --- /dev/null +++ b/_crates/libcmark.md @@ -0,0 +1 @@ +Not found: libcmark* 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/libglib.md b/_crates/libglib.md new file mode 100644 index 00000000..6ab1ad2d --- /dev/null +++ b/_crates/libglib.md @@ -0,0 +1 @@ +Not found: libglib* 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..bc4ebc2e --- /dev/null +++ b/_crates/libgnatdoc.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "libgnatdoc" +authors: ["AdaCore"] +maintainers: ["Vadim Godunko ", +"Maxim Reznik "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/AdaCore/gnatdoc"] +tags: ["documentation", +"tools"] +version: "25.0.0" +short_description: "GNAT Documentation Generation Tool (as a library)" +dependencies: [{crate: "libadalang", version: "^25"}, +{crate: "libgpr2", version: "^25"}, +{crate: "markdown", version: "^25"}, +{crate: "vss", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libgnatformat.md b/_crates/libgnatformat.md new file mode 100644 index 00000000..f2472a13 --- /dev/null +++ b/_crates/libgnatformat.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "libgnatformat" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["formatting", +"ada", +"lib"] +version: "25.0.0" +short_description: "opinionated code format library for the Ada language" +dependencies: [{crate: "adasat", version: "^25"}, +{crate: "gnatcoll", version: "^25"}, +{crate: "libadalang", version: "^25"}, +{crate: "prettier_ada", version: "^25"}] +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..eb91e462 --- /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: "25.0.0" +short_description: "GNAT Project File Library" +dependencies: [{crate: "gnat", version: "/=2020"}, +{crate: "xmlada", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/libgpr2.md b/_crates/libgpr2.md new file mode 100644 index 00000000..7171c99f --- /dev/null +++ b/_crates/libgpr2.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "libgpr2" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: [] +version: "25.0.0" +short_description: "Parser for GPR Project File" +dependencies: [{crate: "gnat", version: ">=14"}, +{crate: "gnatcoll", version: "~25.0.0"}, +{crate: "gnatcoll_gmp", version: "~25.0.0"}, +{crate: "gnatcoll_iconv", version: "~25.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/liblal_refactor.md b/_crates/liblal_refactor.md new file mode 100644 index 00000000..a09908be --- /dev/null +++ b/_crates/liblal_refactor.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "liblal_refactor" +authors: ["AdaCore"] +maintainers: ["Fabien Chouteau "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/lal-refactor"] +tags: ["refactoring"] +version: "25.0.0" +short_description: "Source code refactoring library for the Ada language" +dependencies: [{crate: "libadalang_tools", version: "^25"}, +{crate: "vss", version: "^25"}] +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/libmagic.md b/_crates/libmagic.md new file mode 100644 index 00000000..14a93dd1 --- /dev/null +++ b/_crates/libmagic.md @@ -0,0 +1 @@ +Not found: libmagic* 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/libpcap.md b/_crates/libpcap.md new file mode 100644 index 00000000..ffed5e3f --- /dev/null +++ b/_crates/libpcap.md @@ -0,0 +1 @@ +Not found: libpcap* 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/libraylib.md b/_crates/libraylib.md new file mode 100644 index 00000000..cc7ea5b8 --- /dev/null +++ b/_crates/libraylib.md @@ -0,0 +1 @@ +Not found: libraylib* 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_mixer.md b/_crates/libsdl2_mixer.md new file mode 100644 index 00000000..18f0043d --- /dev/null +++ b/_crates/libsdl2_mixer.md @@ -0,0 +1 @@ +Not found: libsdl2_mixer* 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/libsecret.md b/_crates/libsecret.md new file mode 100644 index 00000000..1843c926 --- /dev/null +++ b/_crates/libsecret.md @@ -0,0 +1 @@ +Not found: libsecret* diff --git a/_crates/libsimpleio.md b/_crates/libsimpleio.md new file mode 100644 index 00000000..71f06cd7 --- /dev/null +++ b/_crates/libsimpleio.md @@ -0,0 +1,150 @@ +--- +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: "2.22364.1" +short_description: "Linux Simple I/O Library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +Introduction +============ + +This crate provides an Ada binding to the [Linux Simple I/O +Library](https://github.com/pmunts/libsimpleio), *aka* **libsimpleio**. + +*Note: This crate includes all of the functionality of the **`mcp2221`** +and **`remoteio`** crates. Unlike those two crates, which can be built +for and used on Linux, MacOS, or Windows targets, this crate can only be +built for and used on Linux targets.* + +Linux Simple I/O Library +======================== + +**libsimpleio** is an attempt to encapsulate (as much as possible) the +ugliness of Linux I/O device access. It provides services for the +following types of I/O devices: + +- [Industrial I/O + Subsystem](https://wiki.analog.com/software/linux/docs/iio/iio) A/D + (Analog to Digital) Converter Devices +- [Industrial I/O + Subsystem](https://wiki.analog.com/software/linux/docs/iio/iio) D/A + (Digital to Analog) Converter Devices +- GPIO (General Purpose Input/Output) Pins +- Raw HID (Human Interface Device) Devices +- I2C (Inter-Integrated Circuit) Bus Devices +- PWM (Pulse Width Modulated) Output Devices +- [Remote I/O + Protocol](http://git.munts.com/libsimpleio/doc/RemoteIOProtocol.pdf) + Devices +- Serial Ports +- SPI (Serial Peripheral Interface) Bus Devices +- [Stream Framing + Protocol](http://git.munts.com/libsimpleio/doc/StreamFramingProtocol.pdf) + Devices +- TCP and UDP over IPv4 Network Devices +- Watchdog Timer Devices + +**libsimpleio** exports a small number of C wrapper or shim functions. +These shim functions present a more coherent API (Application +Programming Interface) than Linux kernel **`ioctl()`** services and the +myriad other different Linux device I/O API's. The **libsimpleio** shim +functions are designed to be easily called from Ada, C++, C#, Java, +Free Pascal and other programming languages. + +The **`man`** pages specifying the **libsimpleio** API (Application +Programming Interface) are available for viewing at +. + +Ada Binding for the Linux Simple I/O Library +============================================ + +The Ada binding consists of several software component layers. + +The bottom software component layer consists of the **C shim functions** +discussed in the previous section. + +The next software component layer consists of **binding packages** that +declare the C shim functions as Ada procedures. Each of the binding +packages corresponds to a single C source file (*e.g.* package +**`libadc`** corresponds to **`libadc.c`**). Each of the C shim +functions are declared as external Ada procedures using +**`pragma Import`**. The Ada procedure names do not necessarily match +the C function names (*e.g.* the C function **`ADC_Open()`** is declared +as Ada procedure **`libadc.Open`**). Many of the binding packages also +declare constants as well (*e.g.* **`DIRECTION_INPUT`** in +**`libgpio.ads`**). + +With very few exceptions, you will never need to directly call any of +the procedures nor reference any of the constants declared in the +**`libxxx`** binding packages. + +The next software component layer consists of **object packages** that +declare OOP (Object Oriented Programming) object types and methods for +each of the I/O subsystems. This layer uses Ada interface types, +access-to-interface types, and private tagged records extensively. + +For example, the package **`GPIO`** defines an interface type +**`PinInterface`**, an access to **`PinInterface`** type named +**`Pin`**, and primitive operation subprograms **`Get`** and **`Put`**. + +The child package **`GPIO.libsimpleio`** declares a private tagged +record type **`PinSubclass`** that *implements* **`GPIO.PinInterface`**, +subprograms **`Get`** and **`Put`** that are required to implement +**`GPIO.PinInterface`**, and a constructor function **`Create`** that +returns an **`GPIO.Pin`** access value. + +Every package that implements **`GPIO.PinInterface`** will also declare +a constructor function **`Create`** that returns **`GPIO.Pin`**. + +This architecture allows code similar to the following fragment: + + MyPins : array (1 .. 3) of GPIO.pin; + + GPIO(1) := GPIO.libsimpleio.Create(...); + GPIO(2) := GPIO.UserLED.Create(...); + GPIO(3) := GPIO.PWM.Create(...); + +The three GPIO pins can be stored in the same array and manipulated in +exactly the same manner even though the hardware implementation for each +pin is radically different. + +The topmost software component layer consists of **device packages** +that implement support for particular I/O devices and are built upon the +lower layers. Most of the device packages correspond to integrated +circuits, such as the [PCA9534 I2C GPIO +Expander](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/8-bit-ic-bus-and-smbus-low-power-i-o-port-with-interrupt:PCA9534). +A few implement support for boards or modules, such the [Grove +Temperature +Sensor](https://www.seeedstudio.com/Grove-Temperature-Sensor.html) +module. + + 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/light_arduino_due.md b/_crates/light_arduino_due.md new file mode 100644 index 00000000..0f4e3dc0 --- /dev/null +++ b/_crates/light_arduino_due.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "light_arduino_due" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["a0b", +"embedded", +"bsp", +"light", +"atsam3x8e", +"sam3x8e", +"arduino", +"due"] +version: "0.2.0" +short_description: "Arduino Due Board Support Package for `light` GNAT Runtime" +dependencies: [{crate: "a0b_atsam3x8e", version: "*"}, +{crate: "gnat_arm_elf", version: "*"}] +configuration_variables: [] +configuration_values: [{crate: 'a0b_armv7m', settings: [{name: 'fpu_extension', value: "none"}]}] + +--- + + diff --git a/_crates/light_blackpill_stm32f401.md b/_crates/light_blackpill_stm32f401.md new file mode 100644 index 00000000..768b5398 --- /dev/null +++ b/_crates/light_blackpill_stm32f401.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "light_blackpill_stm32f401" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["embedded", +"bsp", +"light", +"blackpill", +"stm32", +"stm32f4", +"stm32f401"] +version: "0.2.0" +short_description: "BlackPill STM32F401 BSP for `light` GNAT Runtime" +dependencies: [{crate: "a0b_stm32f401", version: "*"}] +configuration_variables: [{name: 'STM32F401', type: 'Enum (CB, CC, CD, CE)', default: "CB"}] +configuration_values: [{crate: 'a0b_armv7m', settings: [{name: 'fpu_extension', value: "VFPv4"}]}] + +--- + + diff --git a/_crates/light_fk723m1_zgt6.md b/_crates/light_fk723m1_zgt6.md new file mode 100644 index 00000000..34977459 --- /dev/null +++ b/_crates/light_fk723m1_zgt6.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "light_fk723m1_zgt6" +authors: ["Vadim Godunko"] +maintainers: ["Vadim Godunko "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["embedded", +"bsp", +"light", +"stm32h723", +"fk723m1"] +version: "0.1.0" +short_description: "FK723M1-ZGT6 Board Support Package for `light` GNAT Runtime" +dependencies: [{crate: "gnat_arm_elf", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/lined.md b/_crates/lined.md new file mode 100644 index 00000000..95743d9b --- /dev/null +++ b/_crates/lined.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "lined" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Lined"] +tags: ["line", +"editor"] +version: "20240419.0.0" +short_description: "Ada Implementation of the Line Editor from Software Tools" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +# Lined +Ada Implementation of the Line Editor from Software Tools + +I did this to see how it would compare with the Ratfor original, and provide it here for anyone with a similar interest. I can't imagine anyone actually using this, unless they wanted a scriptable tool with the alternative regular-expression syntax it uses, since it's a simplified version of ed. + + 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/lispcli.md b/_crates/lispcli.md new file mode 100644 index 00000000..e3f6d635 --- /dev/null +++ b/_crates/lispcli.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "lispcli" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Ada-Lisp"] +tags: ["lisp"] +version: "0.1.1" +short_description: "Simple program for exploring tiny lisp" +dependencies: [{crate: "gnat", version: ">7.5"}, +{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_lisp", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This is a simple example of embedding Lisp to provide a REPL where you +can try various Lisp functions. It can also be modified to test out +Lisp extensions. + + diff --git a/_crates/list_image.md b/_crates/list_image.md new file mode 100644 index 00000000..8890a123 --- /dev/null +++ b/_crates/list_image.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "list_image" +authors: ["Lionel Draghi"] +maintainers: ["Lionel Draghi "] +licenses: ["Apache-2.0"] +websites: ["https://github.com/LionelDraghi/List_Image"] +tags: ["list", +"iterator", +"container", +"markdown", +"html"] +version: "1.0.0" +short_description: "helper to dump iterable containers with customizable style" +dependencies: [] +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/loadcpm.md b/_crates/loadcpm.md new file mode 100644 index 00000000..39506c3f --- /dev/null +++ b/_crates/loadcpm.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "loadcpm" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Sim-CPU"] +tags: ["cpm"] +version: "0.1.0" +short_description: "Write CP/M (or other similar binary) to floppy disk image" +dependencies: [{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_simcpu", version: "~0.1.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..bee1565e --- /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.4" +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/magicada.md b/_crates/magicada.md new file mode 100644 index 00000000..2fa0068f --- /dev/null +++ b/_crates/magicada.md @@ -0,0 +1,57 @@ +--- +layout: crate +crate: "magicada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-libmagic"] +tags: ["magic", +"file", +"bindings"] +version: "1.0.1" +short_description: "Magic Number Recognition Library Ada binding" +dependencies: [{crate: "libmagic", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +Small Ada binding library to the [libmagic (3)](https://linux.die.net/man/3/libmagic) +library which is used by the implementation of the +[file (1)](https://linux.die.net/man/1/file) command. + +To simplify and help in the use of the magic Ada library, the +`Magic.Manager` package encapsulates the management of the libmagic library +and provides high level simple operations to hide the details of interacting +with the C library. The package defines the `Magic_Manager` tagged record +that takes care of the C library interaction and cleaning of the libmagic +library once the manager is no longer required. To use it, declare the +instance and initialize it with the `Initialize` procedure: + +```Ada + with Magic.Manager; + ... + Mgr : Magic.Manager.Magic_Manager; + ... + Mgr.Initialize (Magic.MAGIC_MIME, Magic.DEFAULT_PATH); +``` + +The first parameter defines a set of flags represented by the `Magic.Flags` +type to control various options of the libmagic library. The second +parameter indicates the default path to the magic file +(see [magic (5)](https://linux.die.net/man/5/magic)). +Once configured, the `Identify` functions can be used to identify a content. +For the first form, a path of the file is given: + +```Ada + Mime : constant String := Mgr.Identify ("file.ads"); +``` + +With the second form, a `Stream_Element_Array` with the content to identify +is given to the function. + +## Example + +- [examples.adb](https://gitlab.com/stcarrez/ada-libmagic/-/blob/main/examples/src/examples.adb?ref_type=heads) + + + 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..e903b111 --- /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: "25.0.0" +short_description: "Markdown parser (draft)" +dependencies: [{crate: "vss", version: "~25.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..d10a035a --- /dev/null +++ b/_crates/mathpaqs.md @@ -0,0 +1,50 @@ +--- +layout: crate +crate: "mathpaqs" +authors: ["Gautier de Montmollin"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["MIT"] +websites: ["https://mathpaqs.sourceforge.io/"] +tags: ["algebra", +"contour", +"contour-plot", +"formula-parser", +"fractal", +"kutta", +"linear-algebra", +"mathematics", +"matrix", +"numerics", +"pareto", +"poisson", +"polynomial", +"probability", +"random", +"rational", +"runge", +"runge-kutta", +"statistics"] +version: "20230121.0.0" +short_description: "A collection of mathematical, 100% portable, packages" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +![Mathpaqs illustration](https://mathpaqs.sourceforge.io/mathpaqs_files/image001.jpg) + +Various mathematical packages including algebra, finite elements, random variables, probability dependency models, unlimited integers. + +Key features of Mathpaqs: + +* Standalone +* Pure Ada +* Unconditionally portable (*) +* Tests and demos included +* **Free**, Open-Source + +___ + +(*) within limits of compiler's provided integer types and target architecture capacity. + + 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..1ad3480c --- /dev/null +++ b/_crates/mcp2221.md @@ -0,0 +1,57 @@ +--- +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: "2.22364.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: [] + +--- +This crate contains a subset of the [**Linux Simple I/O +Library**](https://github.com/pmunts/libsimpleio) Ada packages that are +relevant for building programs for the MCP2221 USB Raw HID I/O expander. + +This crate can be built for Linux, MacOS, or Windows targets. + +The [MCP2221A](https://www.microchip.com/en-us/product/MCP2221A) is a +[PIC16F1455](https://www.microchip.com/en-us/product/PIC16F1455) +microcontroller that has been preprogrammed with firmware to implement +*two* USB devices: a USB serial port and a raw HID device that acts as +an I/O expander providing one [I2C](https://i2c.info/) bus controller +(master only) and four +[GPIO](https://en.wikipedia.org/wiki/General-purpose_input/output) pins +(**`GP0`**, **`GP1`**, **`GP2`**, and **`GP3`**). + +The GPIO pins **`GP1`**, **`GP2`**, and **`GP3`** can be configured for +some alternate functions, including 10-bit A/D inputs or 5-bit D/A +outputs: + +**`GP1`**: **`GPIO ADC1`****`GP2`**: **`GPIO ADC2 DAC1`****`GP3`**: **`GPIO ADC3 DAC2`** + +The MCP2221A replaces an earlier part, the MCP2221. The only difference +between the older MCP2221 and the newer MCP2221A is that the latter +supports some higher baud rates on the USB serial port device. Since +this crate only deals with the raw HID I/O expander functions, it will +work fine with either the older MCP2221 or the newer MCP2221A. + + 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/mine_detector.md b/_crates/mine_detector.md new file mode 100644 index 00000000..01ae8aab --- /dev/null +++ b/_crates/mine_detector.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "mine_detector" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/bracke/Mine_Detector"] +tags: ["minedetector", +"game"] +version: "20220720.0.0" +short_description: "The Gnoga/Ada-GUI version of Mine Detector" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "ada_gui", version: "^20240224.0.0"}, +{crate: "ssl", version: "^3.0.2"}] +configuration_variables: [] +configuration_values: [] + +--- +# Mine_Detector +The Ada-GUI (https://github.com/jrcarter/Ada_GUI) version of Mine Detector, an intellectually-challenging game + + diff --git a/_crates/minimal_containers.md b/_crates/minimal_containers.md new file mode 100644 index 00000000..0a758d17 --- /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.2.1" +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.md b/_crates/mold.md new file mode 100644 index 00000000..3caef4b7 --- /dev/null +++ b/_crates/mold.md @@ -0,0 +1,76 @@ +--- +layout: crate +crate: "mold" +authors: ["Francesc Rocher"] +maintainers: ["Francesc Rocher "] +licenses: ["MIT"] +websites: ["https://rocher.github.io/mold"] +tags: ["template", +"template-engine", +"template-repo"] +version: "1.0.3" +short_description: "Meta-variable Operations for Lean Development (cli)" +dependencies: [{crate: "clic", version: "~0.3.0"}, +{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "mold_lib", version: "^2.2.0"}, +{crate: "simple_logging", version: "^1.2.0"}] +configuration_variables: [] +configuration_values: [] + +--- +[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/mold.json)](https://alire.ada.dev/crates/mold.html) +[![Alire CI/CD](https://img.shields.io/endpoint?url=https://alire-crate-ci.ada.dev/badges/mold.json)](https://alire-crate-ci.ada.dev/crates/mold.html) +![unit-test](https://github.com/rocher/mold/actions/workflows/unit-test.yml/badge.svg) +[![codecov](https://codecov.io/gh/rocher/mold/graph/badge.svg?token=LB83SI4I0Y)](https://codecov.io/gh/rocher/mold) +[![GitHub release](https://img.shields.io/github/release/rocher/mold.svg)](https://github.com/rocher/mold/releases/latest) +[![License](https://img.shields.io/github/license/rocher/mold.svg?color=blue)](https://github.com/rocher/mold/blob/master/LICENSE) + +## Welcome to **Mold (cli)** + +> **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 filenames + + * inclusion of other templates + + * definition of variables with a simple TOML file + + * predefined and custom text filters to easy text transformations + + * variable values can be defined with other variables + +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, 2024 Francesc Rocher + + diff --git a/_crates/mold_lib.md b/_crates/mold_lib.md new file mode 100644 index 00000000..7c786feb --- /dev/null +++ b/_crates/mold_lib.md @@ -0,0 +1,73 @@ +--- +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: "2.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) +[![codecov](https://codecov.io/gh/rocher/mold_lib/graph/badge.svg?token=LB83SI4I0Y)](https://codecov.io/gh/rocher/mold_lib) +[![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 (lib)** + +> **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 + + * predefined and custom text filters to easy text transformations + +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_aarch64.md b/_crates/muntsos_aarch64.md new file mode 100644 index 00000000..63eeaca6 --- /dev/null +++ b/_crates/muntsos_aarch64.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_aarch64" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm64", +"aarch64"] +version: "9.1.0" +short_description: "MuntsOS Embedded Linux support for AArch64 targets" +dependencies: [{crate: "muntsos_dev_aarch64", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_beaglebone.md b/_crates/muntsos_beaglebone.md new file mode 100644 index 00000000..fabab3a0 --- /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: "9.1.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..eba98d20 --- /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: "9.1.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..732974d2 --- /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: "9.1.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..eae16d53 --- /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: "9.1.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..f36d5800 --- /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: "9.1.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi4 targets" +dependencies: [{crate: "muntsos_dev_aarch64", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/muntsos_raspberrypi5.md b/_crates/muntsos_raspberrypi5.md new file mode 100644 index 00000000..562a93e8 --- /dev/null +++ b/_crates/muntsos_raspberrypi5.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "muntsos_raspberrypi5" +authors: ["Philip Munts"] +maintainers: ["Philip Munts "] +licenses: [] +websites: ["https://github.com/pmunts/muntsos"] +tags: ["muntsos", +"embedded", +"linux", +"arm64", +"raspberrypi5"] +version: "9.1.0" +short_description: "MuntsOS Embedded Linux support for RaspberryPi5 targets" +dependencies: [{crate: "muntsos_dev_aarch64", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/musicplayer.md b/_crates/musicplayer.md new file mode 100644 index 00000000..e34d94ef --- /dev/null +++ b/_crates/musicplayer.md @@ -0,0 +1,34 @@ +--- +layout: crate +crate: "musicplayer" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/MP"] +tags: ["music", +"audio", +"player"] +version: "20210719.0.0" +short_description: "A Music Player" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "ada_gui", version: "^20240224.0.0"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "ssl", version: "^3.0.2"}] +configuration_variables: [] +configuration_values: [] + +--- +# MP +A Music Player + +Uses the Gnoga audio widget to create a music player. + +This does what I want from a music player. Considering all the features that most music players have that this doesn't, I presume that most people will find MP lacking. However, it may serve someone as the basis for a more complex player. + +The audio widget seems to require relative paths to the audio files. The file browser in this program will only choose audio files that are in the program's working directory, or in a directory under that. + +MP uses [the Gnoga File Selection widget](https://github.com/jrcarter/Gnoga_File_Selection), which has only been tested on Linux. + +MP uses [the PragmAda Reusable Components](https://github.com/jrcarter/PragmARC). + + 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/ocarina_lib.md b/_crates/ocarina_lib.md new file mode 100644 index 00000000..7002b6d9 --- /dev/null +++ b/_crates/ocarina_lib.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "ocarina_lib" +authors: ["Telecom ParisTech", +"Jérôme Hugues"] +maintainers: ["Max Reznik "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["http://www.openaadl.org/ocarina.html"] +tags: ["aadl", +"model"] +version: "1.1.0-20070603" +short_description: "Ocarina is a stand-alone AADL model processor, written in Ada." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is an old snapshot used in Cheddar! + 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..100a77f6 --- /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.8.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..5be99877 --- /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.8.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/opentoken.md b/_crates/opentoken.md new file mode 100644 index 00000000..0cf4d68e --- /dev/null +++ b/_crates/opentoken.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "opentoken" +authors: ["Stephen Leake"] +maintainers: ["Lionel Draghi "] +licenses: ["GPL-3.0-or-later"] +websites: [""] +tags: ["lexer", +"parser"] +version: "6.0.3" +short_description: "facility for performing token analysis and parsing within Ada" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/optional.md b/_crates/optional.md new file mode 100644 index 00000000..50853a35 --- /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.2.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/parallelize.md b/_crates/parallelize.md new file mode 100644 index 00000000..2e194140 --- /dev/null +++ b/_crates/parallelize.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "parallelize" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["Apache-2.0"] +websites: [""] +tags: ["parallel", +"execution"] +version: "1.0.0" +short_description: "Execute multiple commands in parallel" +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/password_gen.md b/_crates/password_gen.md new file mode 100644 index 00000000..8f9fc808 --- /dev/null +++ b/_crates/password_gen.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "password_gen" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/bracke/Password_Gen"] +tags: ["passwordmaker"] +version: "20220720.0.0" +short_description: "A password generator using Ada-GUI/Gnoga" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "ada_gui", version: "^20240224.0.0"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "ssl", version: "^3.0.2"}] +configuration_variables: [] +configuration_values: [] + +--- +# Password_Gen +A password generator using Ada_GUI (https://github.com/jrcarter/Ada_GUI) + + 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/phcpack.md b/_crates/phcpack.md new file mode 100644 index 00000000..a0351775 --- /dev/null +++ b/_crates/phcpack.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "phcpack" +authors: ["Jan Verschelde"] +maintainers: ["Jan "] +licenses: ["GPL-3.0-only"] +websites: ["https://github.com/janverschelde/PHCpack"] +tags: [] +version: "2.4.88" +short_description: "Polynomial Homotopy Continuation" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +PHCpack is research software to solve systems of polynomial equations with homotopy continuation. + diff --git a/_crates/pico_bsp.md b/_crates/pico_bsp.md new file mode 100644 index 00000000..922d6954 --- /dev/null +++ b/_crates/pico_bsp.md @@ -0,0 +1,22 @@ +--- +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.2.0" +short_description: "Board support package for Raspberry Pi Pico" +dependencies: [{crate: "rp2040_hal", version: "^2"}] +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..9aa76079 --- /dev/null +++ b/_crates/pico_examples.md @@ -0,0 +1,21 @@ +--- +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.2.0" +short_description: "Examples for Ada on the Raspberry Pi Pico" +dependencies: [{crate: "chests", version: "~0.1.1"}, +{crate: "pico_bsp", version: "^2"}] +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/pla_util.md b/_crates/pla_util.md new file mode 100644 index 00000000..f7d59d08 --- /dev/null +++ b/_crates/pla_util.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "pla_util" +authors: ["John Serock"] +maintainers: ["john.serock@gmail.com"] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/serock/pla-util"] +tags: ["powerline"] +version: "2.1.2" +short_description: "A power line adapter utility" +dependencies: [{crate: "libpcap", version: "^1.8.1"}] +configuration_variables: [] +configuration_values: [] + +--- + + 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/portable_minimal_ada_rts.md b/_crates/portable_minimal_ada_rts.md new file mode 100644 index 00000000..0c9c36a6 --- /dev/null +++ b/_crates/portable_minimal_ada_rts.md @@ -0,0 +1,17 @@ +--- +layout: crate +crate: "portable_minimal_ada_rts" +authors: ["J. German Rivera"] +maintainers: ["J. German Rivera "] +licenses: ["GPL-3.0-or-later WITH GCC-exception-3.1"] +websites: ["https://github.com/jgrivera67/portable_minimal_ada_rts"] +tags: ["rts"] +version: "1.0.0" +short_description: "Portable Minimal Ada Runtime Library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + 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..75fb91f2 --- /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: "1.0.4" +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/pragmarc.md b/_crates/pragmarc.md new file mode 100644 index 00000000..59690216 --- /dev/null +++ b/_crates/pragmarc.md @@ -0,0 +1,27 @@ +--- +layout: crate +crate: "pragmarc" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/PragmARC"] +tags: ["cards", +"conversions", +"datastructures", +"encryption", +"matching", +"randomness", +"safety", +"sorting", +"taskcom", +"tty", +"containers"] +version: "20240810.0.0" +short_description: "The PragmAda Reusable Components" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/prettier_ada.md b/_crates/prettier_ada.md new file mode 100644 index 00000000..aef1e481 --- /dev/null +++ b/_crates/prettier_ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "prettier_ada" +authors: ["AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: [] +tags: ["format", +"formatter"] +version: "25.0.0" +short_description: "Port of the Prettier formatter to Ada" +dependencies: [{crate: "gnatcoll", version: "^25"}, +{crate: "vss", version: "^25"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/printer_toolkit.md b/_crates/printer_toolkit.md new file mode 100644 index 00000000..dda5b7b7 --- /dev/null +++ b/_crates/printer_toolkit.md @@ -0,0 +1,29 @@ +--- +layout: crate +crate: "printer_toolkit" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/printer-toolkit"] +tags: ["reports", +"console", +"charts"] +version: "0.2.0" +short_description: "Printer toolkit to write reports" +dependencies: [{crate: "ansiada", version: "^1.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +Printer toolkit provides support to write reports on console or to produce SVG files with almost +the same Ada code. + +The core library is provided by `printer_toolkit` and the SVG support implemented by the `printer_toolkit_svg`. +Run one of the following Alire commands or both: + +``` +alr with printer_toolkit +alr with printer_toolkit_svg +``` + + 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/qmc5883.md b/_crates/qmc5883.md new file mode 100644 index 00000000..9f46787c --- /dev/null +++ b/_crates/qmc5883.md @@ -0,0 +1,20 @@ +--- +layout: crate +crate: "qmc5883" +authors: ["Max Reznik"] +maintainers: ["Max Reznik "] +licenses: ["Apache-2.0 WITH LLVM-exception"] +websites: ["https://github.com/reznikmm/qmc5883"] +tags: ["sensor", +"magnetometer", +"driver"] +version: "1.0.0" +short_description: "Driver for QMC5883L magnetic sensor" +dependencies: [{crate: "gnat", version: ">=11 & <2000"}, +{crate: "hal", version: "~0.3.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/qplt.md b/_crates/qplt.md new file mode 100644 index 00000000..6e018c03 --- /dev/null +++ b/_crates/qplt.md @@ -0,0 +1,50 @@ +--- +layout: crate +crate: "qplt" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Qplt"] +tags: ["plot", +"data"] +version: "20230720.0.0" +short_description: "An Ada-GUI program to quickly produce a plot of a data set" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}, +{crate: "pragmarc", version: "^20240323.0.0"}, +{crate: "ada_gui", version: "^20240224.0.0"}, +{crate: "ssl", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +# Qplt +Quick Plot: an Ada-GUI program to quickly produce a plot of a data set + +## Usage +type + +qplt -? + +for usage instructions, or read the code that outputs them. + +## Dependencies +Qplt requires Ada GUI (https://github.com/jrcarter/Ada_GUI) and the PragmAda Reusable Components (https://github.com/jrcarter/PragmARC). Those unfamiliar with Ada GUI should install it, run the test programs, and be familiar with its Readme before running Qplt. + +## Sample Input +The files qplt_sine.txt, qplt_sombrero.txt, and qplt_wpop.txt contain sample data for Qplt. + +qplt_sine.txt contains a sine curve. Suggested use: + +qplt np -t Sine qplt_sine.txt + +qplt_sombrero.txt contains the "Sombrero" curve, sin x / x (with the limit of 1 plotted for x = 0). Suggested use: + +qplt np -t Sombrero qplt_sombrero.txt + +qplt_wpop.txt contains values of world population since 1600. Suggested use: + +qplt -t "World Population" -x Year -y "Population in billions" qplt_wpop.txt + +The sample input files are proveded under the CC BY-SA license (https://creativecommons.org/licenses/by-sa/4.0/). + + 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/raylib.md b/_crates/raylib.md new file mode 100644 index 00000000..77c905b9 --- /dev/null +++ b/_crates/raylib.md @@ -0,0 +1,67 @@ +--- +layout: crate +crate: "raylib" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["raylib", +"gamedev", +"binding"] +version: "1.0.1" +short_description: "Ada bindings for Raylib" +dependencies: [{crate: "gnat", version: ">=12 & <2000"}, +{crate: "libraylib", version: "^5"}] +configuration_variables: [] +configuration_values: [] + +--- +# Using raylib-ada + +This project is available in the [Alire package manager](https://alire.ada.dev). +To use it, just add `raylib` in your dependencies: +```console +$ alr with raylib +``` + +And add the following linker switches for executable projects to link against +Raylib and libmath: +``` + package Linker is + for Switches ("Ada") use ("-lraylib", "-lm"); + end Linker; +``` + +# Raylib dependencies on Ubuntu/Debian + +When Raylib is available in the system distributions (Arch, Fedora, Msys2, +Macports, Brew, etc.), Alire will install it for you so there's nothing to do +here. + +For Ubuntu/Debian on the other hand, you have to download a Raylib release from +GitHub (or build from source if you want). + +Alire will let you know with a message like this: +``` +warn: The following external dependencies are unavailable within Alire: +warn: libraylib^5 +warn: They should be made available in the environment by the user. +``` + +Download the 5.0 release from this address: +``` +$ wget https://github.com/raysan5/raylib/releases/download/5.0/raylib-5.0_linux_amd64.tar.gz +``` + +Extract it: +``` +$ tar xf raylib-5.0_linux_amd64.tar.gz +``` + +Set the environment variables like so: +``` +$ export C_INCLUDE_PATH=${PWD}/raylib-5.0_linux_amd64/include/:${C_INCLUDE_PATH} +$ export LIBRARY_PATH=${PWD}/raylib-5.0_linux_amd64/lib/:${LIBRARY_PATH} +``` + + 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..c50325a1 --- /dev/null +++ b/_crates/remoteio.md @@ -0,0 +1,54 @@ +--- +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: "2.22357.1" +short_description: "Remote I/O Protocol Client Library for GNAT Ada" +dependencies: [{crate: "libhidapi", version: "*"}, +{crate: "libusb", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +This crate contains a subset of the [**Linux Simple I/O +Library**](https://github.com/pmunts/libsimpleio) Ada packages that are +relevant for building [**Remote I/O +Protocol**](http://git.munts.com/libsimpleio/doc/RemoteIOProtocol.pdf) +client programs. + +This crate can be built for Linux, MacOS, or Windows targets. + +The **Remote I/O Protocol** is a lightweight message protocol for +performing remote I/O operations. The protocol is implemented using a +request/reply pattern, where the master device (*e.g.* a Linux computer) +transmits an I/O request in a 64-byte message to the slave device +(*e.g.* a single chip microcontroller). The slave device performs the +requested I/O operation and returns an I/O response in a 64-byte message +back to the master device. + +The protocol is kept as simple as possible (exactly one 64-byte request +message and one 64- byte response message) to allow using low end single +chip microcontrollers such as the +[PIC16F1455](https://www.microchip.com/en-us/product/PIC16F1455) for the +slave device. Although particularly suited for USB raw HID devices, this +protocol can use any transport mechanism that can reliably transmit and +receive 64-byte messages. + + 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..ee58dd72 --- /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.4.1" +short_description: "Drivers and HAL for the RP2040 micro-controller family" +dependencies: [{crate: "atomic", version: "^1"}, +{crate: "cortex_m", version: "^1"}, +{crate: "gnat_arm_elf", version: "^14"}, +{crate: "hal", version: "^1"}, +{crate: "usb_embedded", version: "^1"}] +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..f7d272c7 --- /dev/null +++ b/_crates/saatana.md @@ -0,0 +1,23 @@ +--- +layout: crate +crate: "saatana" +authors: ["Vinzent Saranen"] +maintainers: ["amosteo@unizar.es", +"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 | (>=11 & <2000)"}] +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/sciada.md b/_crates/sciada.md new file mode 100644 index 00000000..3a605995 --- /dev/null +++ b/_crates/sciada.md @@ -0,0 +1,34 @@ +--- +layout: crate +crate: "sciada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-sci"] +tags: ["sci", +"scientific", +"correlations", +"occurrences", +"similarities", +"statistics"] +version: "0.4.0" +short_description: "Collection of Scientific Operations" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +SCI Ada provides a collections of algorithms commonly used for data analysis: + +- [SCI.Correlations.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-correlations.ads?ref_type=heads) computes correlations between values, +- [SCI.Occurrences.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-occurrences.ads?ref_type=heads) helps in identifying occurrences of items, +- [SCI.Similarities.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-similarities.ads?ref_type=heads) provides metrics to compute similarities between sets. +- [SCI.Sparse.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-sparse.ads?ref_type=heads) defines sparse arrays. +- [SCI.Statistics.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-statistics.ads?ref_type=heads) defines some classical statistics operations. +- [SCI.Vectorizers.*](https://gitlab.com/stcarrez/ada-sci/-/blob/main/src/sci-vectorizers.ads?ref_type=heads) transforms a list of tokens to a vector. + +## Documentation + +- [Programmer's Guide](https://ada-sci.readthedocs.io/en/latest/) + + 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..a17b1b22 --- /dev/null +++ b/_crates/sdlada.md @@ -0,0 +1,24 @@ +--- +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.20" +short_description: "Ada 2012 SDL 2.x bindings." +dependencies: [{crate: "libsdl2", version: "^2.0.0"}, +{crate: "libsdl2_image", version: "^2.0.0"}, +{crate: "libsdl2_mixer", version: "^2.0.0"}, +{crate: "libsdl2_ttf", version: "^2.0.0"}, +{crate: "make", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/secretada.md b/_crates/secretada.md new file mode 100644 index 00000000..bdc4a9a5 --- /dev/null +++ b/_crates/secretada.md @@ -0,0 +1,51 @@ +--- +layout: crate +crate: "secretada" +authors: ["Stephane.Carrez@gmail.com"] +maintainers: ["Stephane.Carrez@gmail.com"] +licenses: ["Apache-2.0"] +websites: ["https://gitlab.com/stcarrez/ada-libsecret"] +tags: ["secret", +"bindings"] +version: "1.0.0" +short_description: "Secret service Ada binding" +dependencies: [{crate: "libglib", version: "*"}, +{crate: "libsecret", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- +The [libsecret](https://wiki.gnome.org/Projects/Libsecret) is a library for storing +and retrieving passwords and others secrets. The library uses the +[Secret Service API](https://standards.freedesktop.org/secret-service/) provided +by Gnome Keyring or KDE Wallet. This library provides an Ada binding +to the [Secret Service API](https://standards.freedesktop.org/secret-service/). + +You can store a secret by using the following code extract: + +``` +with Secret.Services; +with Secret.Attributes; +with Secret.Values; +... + Service : Secret.Services.Service_Type; + List : Secret.Attributes.Map; + Value : Secret.Values.Secret_Type; +... + Service.Initialize; + List.Insert ("secret identification key", "secret identification value"); + Value := Secret.Values.Create ("the-secret-to-store"); + Service.Store (List, "The secret label (for the keyring manager)", Value); +``` + +And you will retrieve it with: + +``` + Value := Service.Lookup (List); + if not Value.Is_Null then + Ada.Text_IO.Put_Line (Value.Get_Value); + end if; +``` + + + diff --git a/_crates/security.md b/_crates/security.md new file mode 100644 index 00000000..b6ff9a0c --- /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.1" +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..c3713da1 --- /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.8" +short_description: "An interactive context-based text search tool for large codebases." +dependencies: [{crate: "dir_iterators", version: "~0.0.4"}, +{crate: "progress_indicators", version: "~0.0.1"}, +{crate: "trendy_terminal", version: "~0.0.5"}, +{crate: "atomic", version: "~0.5.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/serverfaces.md b/_crates/serverfaces.md new file mode 100644 index 00000000..ca9dc19e --- /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.1" +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..4e07d7b9 --- /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.1" +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..a791899e --- /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.1" +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..e2e7bca3 --- /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.7.1" +short_description: "Web Servlet Library following JSR 154, JSR 315 (AWS)" +dependencies: [{crate: "servletada", version: "^1.7.0"}, +{crate: "utilada_aws", 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). + +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..cecda8c2 --- /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.1" +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..ef468cf7 --- /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.1" +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/simcpucli.md b/_crates/simcpucli.md new file mode 100644 index 00000000..54725c60 --- /dev/null +++ b/_crates/simcpucli.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "simcpucli" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Sim-CPU"] +tags: ["cpu-simulator"] +version: "0.1.0" +short_description: "CLI for CPU simulator" +dependencies: [{crate: "gnat", version: ">7.5"}, +{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_lisp", version: "~0.1.0"}, +{crate: "bbs_simcpu", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +This provides a simple command line interface to the CPU simulator library. +It has commands for setting and reading memory, reading registers, and +executing instructions. It also uses the Tiny-Lisp library so that many +of these actions can be scripted. + + 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..2902c714 --- /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.68.0" +short_description: "Simple Components - A collection of support packages" +dependencies: [{crate: "gnat", version: ">=2021 | (>=12 & <2000)"}, +{crate: "libgnutls", version: "^3.7"}, +{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..4d29a90c --- /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 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/spawn"] +tags: ["process", +"launch", +"pipe"] +version: "25.0.0" +short_description: "A simple library to spawn processes and communicate with them." +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +This is Glib independent implementation of a spawn processes interface. + diff --git a/_crates/spawn_glib.md b/_crates/spawn_glib.md new file mode 100644 index 00000000..5dc4ead0 --- /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 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/spawn"] +tags: ["process", +"launch", +"pipe", +"glib"] +version: "25.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/splitter.md b/_crates/splitter.md new file mode 100644 index 00000000..f9bce427 --- /dev/null +++ b/_crates/splitter.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "splitter" +authors: ["Riccardo Bernardini"] +maintainers: ["Riccardo Bernardini "] +licenses: ["MIT OR Apache-2.0 WITH LLVM-exception"] +websites: [""] +tags: ["strings", +"split", +"token", +"tokenizer", +"parsing"] +version: "1.0.2" +short_description: "A function to emulate \"split\" as implemented in Ruby" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + 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/ssl.md b/_crates/ssl.md new file mode 100644 index 00000000..0f4e741a --- /dev/null +++ b/_crates/ssl.md @@ -0,0 +1 @@ +Not found: ssl* diff --git a/_crates/st7789.md b/_crates/st7789.md new file mode 100644 index 00000000..bd2f7a78 --- /dev/null +++ b/_crates/st7789.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "st7789" +authors: [] +maintainers: ["jk@jkliemann.de"] +licenses: ["MIT"] +websites: [] +tags: ["embedded", +"nostd", +"framebuffer", +"bitmap", +"display", +"driver", +"drivers", +"spi"] +version: "0.1.0" +short_description: "SPI based driver for the ST7789 TFT display" +dependencies: [{crate: "adl_middleware", version: "~0.2.0"}, +{crate: "hal", version: "~0.3.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/startup_gen.md b/_crates/startup_gen.md new file mode 100644 index 00000000..e06de19e --- /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: "25.0.0" +short_description: "Generates startup files (crt0 and linker script)" +dependencies: [{crate: "gnatcoll", version: "~25.0.0"}, +{crate: "libgpr", version: "~25.0.0"}, +{crate: "templates_parser", version: "~25.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..a7549a02 --- /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.3" +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/suika_programing.md b/_crates/suika_programing.md new file mode 100644 index 00000000..58c8d589 --- /dev/null +++ b/_crates/suika_programing.md @@ -0,0 +1,24 @@ +--- +layout: crate +crate: "suika_programing" +authors: ["Fabien Chouteau"] +maintainers: ["Fabien Chouteau "] +licenses: ["MIT"] +websites: ["https://github.com/Fabien-Chouteau/suika-programing"] +tags: ["game", +"suika", +"raylib", +"chipmunk", +"physics", +"2d"] +version: "0.1.0" +short_description: "Suika game clone with programing languages" +dependencies: [{crate: "chipmunk2d", version: "~0.1.0"}, +{crate: "raylib", version: "^1.0.0"}, +{crate: "resources", version: "~0.1.0"}] +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..80cd0a93 --- /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: "25.0.0" +short_description: "Templates Parser: File generation from templates in Ada" +dependencies: [{crate: "xmlada", version: "~25.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/texcad.md b/_crates/texcad.md new file mode 100644 index 00000000..4642ca20 --- /dev/null +++ b/_crates/texcad.md @@ -0,0 +1,40 @@ +--- +layout: crate +crate: "texcad" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["GPL-2.0-or-later"] +websites: ["https://texcad.sourceforge.io/"] +tags: ["application", +"texcad", +"tex", +"latex", +"cad", +"picture", +"draw", +"drawing", +"graphics", +"vector-graphics"] +version: "4.5.3" +short_description: "TeXCAD is a program for drawing or retouching {picture}s in LaTeX" +dependencies: [{crate: "gwindows", version: ">=1.4.3"}, +{crate: "mathpaqs", version: ">=20230121.0.0"}] +configuration_variables: [] +configuration_values: [] + +--- +  texcad screenshot + +TeXCAD is a program for drawing or retouching {picture}s in LaTeX. +It extends the original {picture} capabilities, even without any obligatory LaTeX package, class or style sheet. +The core of TeXCAD is totally portable. + +Features: + +* Supports plain LaTeX +* Extends LaTeX picture objects through emulation or use of special styles +* Special styles are only optional +* Parametric curves +* **Free**, Open-Source + + 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..0b5c566d --- /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.3.0" +short_description: "Low resolution bitmap font with a small memory footprint" +dependencies: [{crate: "hal", version: "~0.3.0"}] +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/ulid.md b/_crates/ulid.md new file mode 100644 index 00000000..c3072553 --- /dev/null +++ b/_crates/ulid.md @@ -0,0 +1,35 @@ +--- +layout: crate +crate: "ulid" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://github.com/zertovitch/ulid"] +tags: ["ulid", +"uuid", +"guid", +"identifier", +"timestamp"] +version: "20240921.0.0" +short_description: "Universally Unique Lexicographically Sortable Identifier" +dependencies: [{crate: "gnat", version: "(>=11 & <2000) | >=2021"}] +configuration_variables: [] +configuration_values: [] + +--- +image + +In a nutshell, a ULID code (Universally Unique Lexicographically Sortable Identifier) is +a combination of a 48-bit time stamp (most significant part, with a millisecond accuracy), +and a 80-bit random number (least significant part), totalling 128 bits, that is 16 bytes (octets). + +The ULID code generation is sort of UUID (Universally Unique Identifier) system, also know as GUID (Globally Unique Identifier). +The characteristic of ULID numbers is that they can be compared and sorted by their timestamps. + +The package ULID provides a `Generate` function using the method described above, plus a `Generate_Monotonic` function that enables the production of a monotonically increasing sequence of ULID numbers within the same millisecond. + +The preferred (canonical) representation of a ULID is a certain version of the Base32 encoding (example of output: 01J80P3NJDN0Y5YX7D05421X0G). +The ULID package also provides a function `Encode_as_8_4_4_4_12` that outputs a text representation in the usual UUID 8-4-4-4-12 format (like: 01920161-d64d-5a3e-589e-c45df155547b). +Both formats are also recognized by the `Decode` function. + + 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/universal_text_file.md b/_crates/universal_text_file.md new file mode 100644 index 00000000..3e163413 --- /dev/null +++ b/_crates/universal_text_file.md @@ -0,0 +1,45 @@ +--- +layout: crate +crate: "universal_text_file" +authors: ["Jeff Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Universal-Text-File"] +tags: ["format", +"unicode", +"text"] +version: "20220720.0.0" +short_description: "Proposed universal format for Unicode text files" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# Universal Text File Format +Proposed universal format for Unicode text files + +Here I propose a universal format for Unicode text files, specified by its Ada implementation. Some features of the format are + +* ASCII code points are encoded as themselves +* At most three bytes are used to encode a code point +* All code points may occur in a line +* Lines may be any length (though the implementation is limited to Integer'Last) + +I have called this format Universal Text File format, with the acronym UTF. Like GNAT Programming Studio (GPS), this result is an acronym collision. Suggestions for alternative names are welcome. + +## Combined Specification and Ada Implementation +The format is specified here by its Ada implementation in package UTF, which is short and straightforward. + +## Tools +Three simple tools are provided: +* To_UTF, to convert an Ada.Text_IO file to UTF +* From_UTF, to convert a UTF file into an Ada.Text_IO file +* Umore, a simple `more` program for UTF files + +## Suitability +Most tools for processing text files on the major platforms work with native text files from other platforms, and UTF-8 has been widely adopted for encoding Unicode text files, so it seems unlikely that an alternative will gain much traction. However, having done this, I thought I would share it should anyone be interested. + +## Standard Software-Engineering Practice +Encodings should normally only be used externally to a program. Encoded input data should be decoded immediately upon input, and output data encoded immediatly before output. + + 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..29f148dc --- /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: "1.0.0" +short_description: "An Ada USB stack for embedded devices" +dependencies: [{crate: "bbqueue", version: "^1.0.0"}, +{crate: "hal", version: "^1.0.0"}] +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..63cace74 --- /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.8.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..1e13c447 --- /dev/null +++ b/_crates/utilada_aws.md @@ -0,0 +1,33 @@ +--- +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.8.0" +short_description: "Utility Library REST support on top of AWS" +dependencies: [{crate: "aws", version: "^24.0"}, +{crate: "utilada", version: "^2.7.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 AWS. +It can be used by the `Util.Http` package. + +An alternate HTTP backend is provided by CURL with `utilada_curl`. + +# 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_curl.md b/_crates/utilada_curl.md new file mode 100644 index 00000000..dd5b382c --- /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.8.0" +short_description: "Utility Library REST support on top of CURL" +dependencies: [{crate: "libcurl", version: "*"}, +{crate: "utilada", version: "^2.7.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..a363ea38 --- /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.8.0" +short_description: "Utility Library streams with LZMA support" +dependencies: [{crate: "lzmada", version: "^1.1.2"}, +{crate: "utilada", version: "^2.7.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..175a5f13 --- /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.8.0" +short_description: "Utility Library testing framework with Ahven" +dependencies: [{crate: "utilada", version: "^2.7.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..470c0a3a --- /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.8.0" +short_description: "Utility Library serialization with XML/Ada" +dependencies: [{crate: "utilada", version: "^2.7.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..847bcbab --- /dev/null +++ b/_crates/uxstrings.md @@ -0,0 +1,19 @@ +--- +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.8.1+alpha-20241006" +short_description: "Unicode Extended Strings utilities" +dependencies: [{crate: "gnat", version: "^13.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..967b71f4 --- /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 WITH LLVM-exception"] +websites: ["https://github.com/AdaCore/VSS"] +tags: ["unicode", +"json", +"text", +"xml", +"template"] +version: "25.0.0" +short_description: "Advanced string and text manipulation with Unicode support" +dependencies: [{crate: "gnat", version: ">=11 & <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/webif_example.md b/_crates/webif_example.md new file mode 100644 index 00000000..f4b940f9 --- /dev/null +++ b/_crates/webif_example.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "webif_example" +authors: ["Brent Seidel"] +maintainers: ["Brent Seidel "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/BrentSeidel/Ada-Web-Server"] +tags: ["web", +"http", +"embedded"] +version: "0.1.0" +short_description: "Example usage of simple web interface library." +dependencies: [{crate: "bbs", version: "~0.1.0"}, +{crate: "bbs_webif", version: "~0.1.0"}] +configuration_variables: [] +configuration_values: [] + +--- +An example simple web server built using the bbs_webif library. Once +you build it, you can run it and connect to it using port 31415. + + 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/whitakers_words.md b/_crates/whitakers_words.md new file mode 100644 index 00000000..708bd4c1 --- /dev/null +++ b/_crates/whitakers_words.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "whitakers_words" +authors: ["William A. Whitaker", +"Martin Keegan"] +maintainers: ["alejandro@mosteo.com"] +licenses: ["Custom-Public-Domain"] +websites: ["https://bitbucket.org/ben-crowell/whitakers-words/"] +tags: [] +version: "0.20240801.0" +short_description: "William Whitaker's WORDS, a Latin dictionary" +dependencies: [{crate: "gnat", version: "/=7.3"}, +{crate: "make", version: "*"}] +configuration_variables: [] +configuration_values: [] + +--- + + diff --git a/_crates/wikiada.md b/_crates/wikiada.md new file mode 100644 index 00000000..ff5cd949 --- /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.2" +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/wikibook.md b/_crates/wikibook.md new file mode 100644 index 00000000..cfb51aa3 --- /dev/null +++ b/_crates/wikibook.md @@ -0,0 +1,25 @@ +--- +layout: crate +crate: "wikibook" +authors: ["Martin Krischik"] +maintainers: ["Martin Krischik "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://wikibook-ada.sourceforge.net/"] +tags: ["tutorial", +"wikibook"] +version: "1.0.1" +short_description: "WikiBook Ada Programing" +dependencies: [{crate: "gnat", version: ">=13"}] +configuration_variables: [] +configuration_values: [] + +--- +WikiBook Ada Programing + +Follwing crates are incuded: + +basic: Chapter Basic Ada +pragmas_restrictions: Chapter Pragmas Restrictions + + + diff --git a/_crates/win32ada.md b/_crates/win32ada.md new file mode 100644 index 00000000..8a4d7410 --- /dev/null +++ b/_crates/win32ada.md @@ -0,0 +1,19 @@ +--- +layout: crate +crate: "win32ada" +authors: ["Intermetrics", +"AdaCore"] +maintainers: ["chouteau@adacore.com"] +licenses: [] +websites: ["https://github.com/adacore/win32ada"] +tags: ["windows", +"api"] +version: "23.0.0" +short_description: "Ada API to the Windows library" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- + + 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..d0978277 --- /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.2.1" +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/wl_lib.md b/_crates/wl_lib.md new file mode 100644 index 00000000..3c074f16 --- /dev/null +++ b/_crates/wl_lib.md @@ -0,0 +1,18 @@ +--- +layout: crate +crate: "wl_lib" +authors: ["Fraser Wilson"] +maintainers: ["Fraser Wilson "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://github.com/blancolioni/wl_lib"] +tags: ["miscellanea", +"utility"] +version: "0.1.4" +short_description: "Handy library packages" +dependencies: [] +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..10831b84 --- /dev/null +++ b/_crates/xia.md @@ -0,0 +1,21 @@ +--- +layout: crate +crate: "xia" +authors: ["Simon Wright"] +maintainers: ["Simon Wright "] +licenses: ["GPL-3.0-or-later"] +websites: [] +tags: ["xml"] +version: "1.4.1" +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: [] + +--- +XIA is a native Ada implementation of the XPath 1.0 specification. XIA is built using the DOM component of AdaCore's XML/Ada implementation and code generated by AdaGOOP. + +Submitting XPath queries is done via the XIA.XPath_Query function. The function returns a Dom.Core.Node_List, whose contents can be accessed with the function DOM.Core.Nodes.Item. + + 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..422b61ec --- /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: "25.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/yass.md b/_crates/yass.md new file mode 100644 index 00000000..a4fa81e5 --- /dev/null +++ b/_crates/yass.md @@ -0,0 +1,22 @@ +--- +layout: crate +crate: "yass" +authors: ["AJ Ianozi"] +maintainers: ["AJ Ianozi "] +licenses: ["GPL-3.0-or-later"] +websites: ["https://yass.website"] +tags: ["web", +"markdown", +"generator"] +version: "3.1.0" +short_description: "Static website generator" +dependencies: [{crate: "libcmark", version: ">=0.0.1"}, +{crate: "aws", version: "^24.0.0"}, +{crate: "gnatcoll", version: "^24.0.0"}, +{crate: "xmlada", version: "^24.0.0"}] +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/z_compression.md b/_crates/z_compression.md new file mode 100644 index 00000000..437caaf1 --- /dev/null +++ b/_crates/z_compression.md @@ -0,0 +1,31 @@ +--- +layout: crate +crate: "z_compression" +authors: ["Jeffrey R. Carter"] +maintainers: ["Bent Bracke "] +licenses: ["BSD-3-Clause"] +websites: ["https://github.com/bracke/Z_Compression"] +tags: ["zlib", +"deflate", +"compression"] +version: "20240724.0.0" +short_description: "Standalone version of the Zlib Deflate compression algorithm" +dependencies: [{crate: "gnat", version: "<13.0 | >=13.3"}] +configuration_variables: [] +configuration_values: [] + +--- +# Z_Compression +Standalone version of the Zlib Deflate compression algorithm, derived from de Montmollin's Zip-Ada + +Z_Compression.Compress applies Deflate to an input stream of bytes, defined by its generic formal subprograms Out_Of_Data and Next, producing an output stream of bytes that are passed to the generic formal procedure Put. The output may be in Zlib or raw Deflate formats. + +ZC_Test is a test/demo program for Z_Compression. Building it should also compile Z_Compression. It is invoked as + +``` +zc_test +``` + +No error checking or handling is done. It compresses the given file into a Zlib format file. The output file name is the input file name with ".zc" appended. + + 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..24fb166c --- /dev/null +++ b/_crates/zipada.md @@ -0,0 +1,47 @@ +--- +layout: crate +crate: "zipada" +authors: ["Gautier de Montmollin"] +maintainers: ["gdemont@hotmail.com"] +licenses: ["MIT"] +websites: ["https://unzip-ada.sourceforge.io/"] +tags: ["zip", +"archive", +"compression", +"deflate", +"lzma", +"bzip2", +"lzw", +"shrink"] +version: "60.0.0" +short_description: "Manage Zip Archives and raw BZip2 and LZMA streams" +dependencies: [] +configuration_variables: [] +configuration_values: [] + +--- +![Zip-Ada logo](https://unzip-ada.sourceforge.io/za_logo.png) + +Zip-Ada is a free, open-source programming library for dealing with the Zip compressed archive file format. +The full sources of Zip-Ada are in Ada, compilable on every compiler and for every system (*). + +Key features of Zip-Ada: + +* Files and streams supported, for archives and entries, for compression and decompression +* Task safe +* Endian-neutral +* Standalone +* Zip methods supported for compression: Reduce, Shrink, Deflate, BZip2, LZMA. +* Zip methods supported for decompression: the above methods, plus: Implode, Deflate64 +* Library is in pure Ada 2012 (nothing compiler/system specific), can be used in projects in Ada 2012 and later versions of the language +* Unconditionally portable (*) +* Tests and demos included + +The library includes LZMA & BZip2 independant compressor & decompressor pairs +(can be used outside of the Zip archive context). + +___ + +(*) within limits of compiler's provided integer types and target architecture capacity. + + 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..b530b340 --- /dev/null +++ b/_data/tags.json @@ -0,0 +1,5943 @@ +[ + { + "name": "embedded", + "crates": [ + "mcp2221", + "chests", + "elogs", + "muntsos_raspberrypi2", + "light_arduino_due", + "a0b_stm32f401_gpio", + "light_fk723m1_zgt6", + "hal", + "bbs_webif", + "avrada_rts", + "a0b_stm32f401_tim11_timer", + "cortex_m", + "avrada_examples", + "tiny_rp2040_bsp", + "a0b_armv7m", + "a0b_time", + "hex_format", + "bare_runtime", + "a0b_atsam3x8e_twi_i2c", + "pico_examples", + "rp2040_hal", + "light_blackpill_stm32f401", + "a0b_i2c", + "startup_gen", + "minisamd51_bsp", + "a0b_stm32f401_dma", + "samd51_hal", + "a0b_timer", + "minisamd51_example", + "muntsos_beaglebone", + "atomic", + "a0b_armv7m_systick_clock", + "sh1107", + "bbs_embed_linux", + "littlefs", + "lvgl_ada", + "blinkenlights", + "a0b_stm32f401_i2c", + "avrada_lib", + "adl_middleware", + "stm32f0x2_hal", + "muntsos_raspberrypi1", + "nrf5x_hal", + "avrada_mcu", + "muntsos_raspberrypi4", + "a0b_gpio", + "remoteio", + "a0b_armv7m_systick_clock_timer", + "linux_hal", + "bbs_embed_common", + "a0b_atsam3x8e", + "esp_idf", + "usb_embedded", + "eeprom_i2c", + "a0b_stm32f401", + "pygamer_bsp", + "muntsos_raspberrypi5", + "midi", + "webif_example", + "a0b_atsam3x8e_tc5_timer", + "bb_pico_bsp", + "a0b_atsam3x8e_gpio", + "microbit_examples", + "basalt", + "muntsos_aarch64", + "itsybitsy_rp2040_bsp", + "pico_bsp", + "slip", + "ltp_305", + "bbqueue", + "edc_client", + "libsimpleio", + "muntsos_raspberrypi3", + "microbit_bsp", + "st7789", + "embedded_components", + "itsybitsy_bsp", + "tresses", + "cobs", + "a0b_exti", + "bbs_lisp" + ] + }, + { + "name": "linux", + "crates": [ + "mcp2221", + "muntsos_raspberrypi2", + "evdev", + "muntsos_beaglebone", + "powerjoular", + "canberra_ada", + "muntsos_raspberrypi1", + "muntsos_raspberrypi4", + "remoteio", + "linux_hal", + "alr2appimage", + "muntsos_raspberrypi5", + "inotify", + "muntsos_aarch64", + "libsimpleio", + "muntsos_raspberrypi3", + "epoll", + "keypadder" + ] + }, + { + "name": "mcp2221", + "crates": [ + "mcp2221" + ] + }, + { + "name": "adc", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "dac", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "gpio", + "crates": [ + "mcp2221", + "a0b_stm32f401_gpio", + "a0b_gpio", + "remoteio", + "linux_hal", + "a0b_atsam3x8e_gpio", + "libsimpleio" + ] + }, + { + "name": "i2c", + "crates": [ + "mcp2221", + "a0b_atsam3x8e_twi_i2c", + "a0b_i2c", + "a0b_stm32f401_i2c", + "remoteio", + "linux_hal", + "eeprom_i2c", + "ltp_305", + "libsimpleio" + ] + }, + { + "name": "motor", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "pwm", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "sensor", + "crates": [ + "mcp2221", + "hmc5883", + "bme280", + "remoteio", + "qmc5883", + "libsimpleio" + ] + }, + { + "name": "serial", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "servo", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "spi", + "crates": [ + "mcp2221", + "remoteio", + "linux_hal", + "libsimpleio", + "st7789" + ] + }, + { + "name": "stepper", + "crates": [ + "mcp2221", + "remoteio", + "libsimpleio" + ] + }, + { + "name": "emacs", + "crates": [ + "emacs_ada_mode", + "emacs_wisitoken_grammar_mode", + "emacs_gpr_query", + "emacs_gpr_mode", + "emacs_wisi" + ] + }, + { + "name": "ada-mode", + "crates": [ + "emacs_ada_mode" + ] + }, + { + "name": "dir", + "crates": [ + "dir_iterators" + ] + }, + { + "name": "files", + "crates": [ + "dir_iterators", + "controlled_io" + ] + }, + { + "name": "walk", + "crates": [ + "dir_iterators" + ] + }, + { + "name": "algebra", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "contour", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "contour-plot", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "formula-parser", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "fractal", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "kutta", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "linear-algebra", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "mathematics", + "crates": [ + "mathpaqs", + "euler_tools" + ] + }, + { + "name": "matrix", + "crates": [ + "mathpaqs", + "orka_numerics", + "orka_tensors_cpu", + "orka_transforms", + "orka_tensors_gpu" + ] + }, + { + "name": "numerics", + "crates": [ + "mathpaqs", + "specfun" + ] + }, + { + "name": "pareto", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "poisson", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "polynomial", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "probability", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "random", + "crates": [ + "mathpaqs", + "system_random", + "xoshiro", + "rsfile", + "orka_numerics", + "orka_tensors_cpu", + "image_random", + "orka_tensors_gpu" + ] + }, + { + "name": "rational", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "runge", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "runge-kutta", + "crates": [ + "mathpaqs" + ] + }, + { + "name": "statistics", + "crates": [ + "mathpaqs", + "orka_numerics", + "orka_tensors_cpu", + "sciada", + "orka_tensors_gpu" + ] + }, + { + "name": "gnatcoll", + "crates": [ + "gnatcoll_iconv", + "gnatcoll", + "gnatcoll_python", + "gnatcoll_sql", + "gnatcoll_lzma", + "gnatcoll_readline", + "gnatcoll_zlib", + "gnatcoll_syslog", + "gnatcoll_gmp", + "gnatcoll_postgres", + "gnatcoll_omp", + "gnatcoll_python3", + "gnatcoll_sqlite", + "gnatcoll_xref" + ] + }, + { + "name": "bindings", + "crates": [ + "gnatcoll_iconv", + "secretada", + "florist_blady", + "gnatcoll_python", + "magicada", + "gnatcoll_lzma", + "gnatcoll_readline", + "gnatcoll_zlib", + "gnatcoll_syslog", + "intl", + "gnatcoll_gmp", + "admpfr", + "gnatcoll_omp", + "gnatcoll_python3" + ] + }, + { + "name": "iconv", + "crates": [ + "gnatcoll_iconv" + ] + }, + { + "name": "i18n", + "crates": [ + "gnatcoll_iconv", + "felix", + "intl" + ] + }, + { + "name": "ini", + "crates": [ + "ini_files" + ] + }, + { + "name": "ini-file", + "crates": [ + "ini_files" + ] + }, + { + "name": "cfg", + "crates": [ + "ini_files" + ] + }, + { + "name": "cfg-file", + "crates": [ + "ini_files" + ] + }, + { + "name": "config", + "crates": [ + "ini_files", + "dotenv" + ] + }, + { + "name": "configuration", + "crates": [ + "ini_files" + ] + }, + { + "name": "xml", + "crates": [ + "matreshka_xml", + "vss", + "matreshka_league", + "utilada_xml", + "libadalang2xml", + "xia", + "ajunitgen" + ] + }, + { + "name": "dom", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "catalog", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "templates", + "crates": [ + "matreshka_xml", + "jintp" + ] + }, + { + "name": "html5", + "crates": [ + "matreshka_xml" + ] + }, + { + "name": "magnetometer", + "crates": [ + "hmc5883", + "qmc5883" + ] + }, + { + "name": "driver", + "crates": [ + "hmc5883", + "ethernet", + "bme280", + "enet_stm32", + "qmc5883", + "st7789" + ] + }, + { + "name": "elevator", + "crates": [ + "elevator" + ] + }, + { + "name": "teaching", + "crates": [ + "elevator" + ] + }, + { + "name": "secret", + "crates": [ + "secretada" + ] + }, + { + "name": "web", + "crates": [ + "awa_unit", + "gnoga", + "matreshka_soap_wsse", + "bbs_webif", + "matreshka_spikedog_api", + "webdriver", + "openai", + "jwt", + "matreshka_spikedog_core", + "matreshka_soap", + "utilada_curl", + "serverfaces", + "openapi", + "utilada_aws", + "matreshka_spikedog_awsd", + "serverfaces_unit", + "elada", + "matreshka_servlet", + "ews", + "aws", + "yass", + "matreshka_fastcgi", + "webif_example", + "openapi_server", + "servletada", + "servletada_ews", + "servletada_unit", + "awa", + "servletada_aws" + ] + }, + { + "name": "users", + "crates": [ + "awa_unit", + "awa" + ] + }, + { + "name": "jobs", + "crates": [ + "awa_unit", + "awa" + ] + }, + { + "name": "framework", + "crates": [ + "awa_unit", + "serverfaces_unit", + "awa" + ] + }, + { + "name": "testing", + "crates": [ + "awa_unit", + "matreshka_amf_utp", + "serverfaces_unit", + "utilada_unit", + "scripted_testing", + "servletada_unit" + ] + }, + { + "name": "libadalang", + "crates": [ + "libadalang", + "lal_highlight", + "libadalang_tools" + ] + }, + { + "name": "static-analysis", + "crates": [ + "libadalang", + "lal_highlight", + "libadalang_tools" + ] + }, + { + "name": "gui", + "crates": [ + "gnoga", + "openglada_glfw", + "gwindows", + "lvgl_ada", + "lvgl_ada_examples", + "lvgl_ada_simulator", + "ada_gui", + "gtkada" + ] + }, + { + "name": "server", + "crates": [ + "gnoga", + "dummyserver", + "ews", + "aws" + ] + }, + { + "name": "http", + "crates": [ + "gnoga", + "dummyserver", + "bbs_webif", + "utilada_curl", + "serverfaces", + "utilada_aws", + "serverfaces_unit", + "matreshka_servlet", + "aws", + "matreshka_fastcgi", + "webif_example", + "servletada", + "servletada_ews", + "servletada_unit", + "servletada_aws" + ] + }, + { + "name": "https", + "crates": [ + "gnoga", + "aws" + ] + }, + { + "name": "ssl", + "crates": [ + "gnoga", + "aws", + "tlsada" + ] + }, + { + "name": "opengl", + "crates": [ + "openglada_glfw", + "openglada_images", + "orka_tools", + "orka", + "orka_egl", + "orka_opengl", + "globe_3d", + "openglada", + "asfml", + "openglada_text", + "orka_awt" + ] + }, + { + "name": "glfw", + "crates": [ + "openglada_glfw" + ] + }, + { + "name": "binding", + "crates": [ + "openglada_glfw", + "ada_lua", + "zeromq_ada", + "raylib", + "openglada", + "asfml", + "esp_idf", + "ncursesada", + "chipmunk2d" + ] + }, + { + "name": "pygamer", + "crates": [ + "pygamer_simulator", + "shoot_n_loot", + "pygamer_bsp" + ] + }, + { + "name": "adafruit", + "crates": [ + "pygamer_simulator", + "pygamer_bsp" + ] + }, + { + "name": "game", + "crates": [ + "pygamer_simulator", + "eagle_lander", + "orka", + "suika_programing", + "tiled_code_gen", + "honki_tonks_zivilisationen", + "shoot_n_loot", + "wordle", + "geste", + "bingada", + "wordlelib", + "virtapu", + "play_2048", + "mine_detector", + "pygamer_bsp", + "mage_hat", + "mage" + ] + }, + { + "name": "console", + "crates": [ + "pygamer_simulator", + "dummyserver", + "trendy_terminal", + "progress_indicators", + "wordle", + "wordlelib", + "pygamer_bsp", + "printer_toolkit", + "cbsg" + ] + }, + { + "name": "simulator", + "crates": [ + "pygamer_simulator", + "eagle_lander", + "cheddar", + "shoot_n_loot", + "lvgl_ada_simulator" + ] + }, + { + "name": "test", + "crates": [ + "dummyserver", + "aunit", + "gnatcov", + "trendy_test", + "bbt" + ] + }, + { + "name": "terminal", + "crates": [ + "dummyserver", + "trendy_terminal", + "dashera", + "progress_indicators", + "wordle", + "wordlelib", + "ansiada", + "utf8test" + ] + }, + { + "name": "containers", + "crates": [ + "chests", + "yeison", + "minimal_containers", + "stephes_ada_library", + "pragmarc" + ] + }, + { + "name": "bounded", + "crates": [ + "chests" + ] + }, + { + "name": "nostd", + "crates": [ + "chests", + "hal", + "cortex_m", + "tiny_rp2040_bsp", + "pico_examples", + "rp2040_hal", + "startup_gen", + "minisamd51_bsp", + "samd51_hal", + "minisamd51_example", + "atomic", + "geste", + "littlefs", + "adl_middleware", + "stm32f0x2_hal", + "nrf5x_hal", + "virtapu", + "esp_idf", + "usb_embedded", + "eeprom_i2c", + "pygamer_bsp", + "midi", + "microbit_examples", + "basalt", + "itsybitsy_rp2040_bsp", + "pico_bsp", + "bbqueue", + "microbit_bsp", + "st7789", + "embedded_components", + "itsybitsy_bsp", + "tresses", + "cobs" + ] + }, + { + "name": "rendering", + "crates": [ + "openglada_images", + "orka", + "orka_opengl", + "globe_3d", + "geste", + "openglada", + "openglada_text", + "freetypeada" + ] + }, + { + "name": "graphics", + "crates": [ + "openglada_images", + "orka", + "aicwl", + "orka_opengl", + "globe_3d", + "gfx_core", + "easy_graphics", + "gfx_rasteriser", + "texcad", + "openglada", + "asfml", + "labs_solar_system", + "orka_awt" + ] + }, + { + "name": "spark", + "crates": [ + "elogs", + "xoshiro", + "program_proofs_in_spark", + "atomic", + "sparknacl", + "saatana", + "vaton", + "basalt", + "slip", + "bbqueue", + "blake2s", + "spat", + "spark_unbound", + "libkeccak", + "endianness", + "cobs" + ] + }, + { + "name": "zfp", + "crates": [ + "elogs", + "startup_gen" + ] + }, + { + "name": "logging", + "crates": [ + "elogs", + "adacl", + "utilada", + "journada", + "loga", + "gnatcoll_syslog", + "simple_logging" + ] + }, + { + "name": "log", + "crates": [ + "elogs", + "journada" + ] + }, + { + "name": "library", + "crates": [ + "adacl", + "libhello" + ] + }, + { + "name": "command-line", + "crates": [ + "adacl", + "trendy_terminal", + "parse_args", + "progress_indicators", + "cmd_ada", + "rsfile", + "clic" + ] + }, + { + "name": "trace", + "crates": [ + "adacl" + ] + }, + { + "name": "string", + "crates": [ + "adacl", + "hex_format", + "emojis", + "uxstrings", + "basalt" + ] + }, + { + "name": "aunit", + "crates": [ + "adacl" + ] + }, + { + "name": "assert", + "crates": [ + "adacl" + ] + }, + { + "name": "container", + "crates": [ + "adacl", + "dcf", + "zipdcf", + "list_image" + ] + }, + { + "name": "smart-pointer", + "crates": [ + "adacl" + ] + }, + { + "name": "ada2022", + "crates": [ + "adacl", + "mos6502_create_led", + "mos6502_create_nop", + "mos6502_create_reset" + ] + }, + { + "name": "database", + "crates": [ + "db_maker", + "ado_mysql", + "matreshka_sql", + "lmdb_ada", + "ado", + "gnatcoll_sql", + "matreshka_sql_postgresql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "ado_postgresql", + "ado_all", + "matreshka_sql_firebird", + "gnatcoll_postgres", + "matreshka_sql_mysql", + "dynamo", + "gnatcoll_sqlite", + "gnatcoll_xref", + "ado_sqlite" + ] + }, + { + "name": "table", + "crates": [ + "db_maker" + ] + }, + { + "name": "base64", + "crates": [ + "base64" + ] + }, + { + "name": "coroutine", + "crates": [ + "task_coroutines" + ] + }, + { + "name": "generator", + "crates": [ + "task_coroutines", + "are", + "ayacc", + "aflex", + "ada_pretty", + "wisitoken", + "automate", + "protobuf", + "libadalang_tools", + "anagram", + "yass", + "dynamo" + ] + }, + { + "name": "muntsos", + "crates": [ + "muntsos_raspberrypi2", + "muntsos_beaglebone", + "muntsos_raspberrypi1", + "muntsos_raspberrypi4", + "muntsos_raspberrypi5", + "muntsos_aarch64", + "muntsos_raspberrypi3" + ] + }, + { + "name": "arm", + "crates": [ + "muntsos_raspberrypi2", + "cortex_m", + "muntsos_beaglebone", + "muntsos_raspberrypi1" + ] + }, + { + "name": "raspberrypi2", + "crates": [ + "muntsos_raspberrypi2" + ] + }, + { + "name": "florist", + "crates": [ + "florist_blady" + ] + }, + { + "name": "posix", + "crates": [ + "florist_blady", + "spoon" + ] + }, + { + "name": "mos-6502", + "crates": [ + "mos6502_create_led", + "mos6502_create_nop", + "mos6502_create_reset" + ] + }, + { + "name": "tools", + "crates": [ + "mos6502_create_led", + "atari_atr_tools", + "atari_exe_tools", + "libgnatdoc", + "mos6502_create_nop", + "mos6502_create_reset", + "hp41cx_tools", + "gnatdoc" + ] + }, + { + "name": "retrocomputing", + "crates": [ + "mos6502_create_led", + "atari_atr_tools", + "atari_exe_tools", + "mos6502_create_nop", + "mos6502_create_reset", + "hp41cx_tools" + ] + }, + { + "name": "unicode", + "crates": [ + "vss", + "matreshka_league", + "umwi", + "emojis", + "uxstrings", + "universal_text_file", + "utf8test" + ] + }, + { + "name": "json", + "crates": [ + "vss", + "matreshka_league", + "yeison", + "utilada", + "gnatcoll", + "jwt", + "serverfaces", + "json", + "servletada", + "servletada_ews", + "servletada_unit", + "servletada_aws" + ] + }, + { + "name": "text", + "crates": [ + "vss", + "controlled_io", + "hex_format", + "septum", + "tiny_text", + "emojis", + "simple_regex", + "universal_text_file", + "cbsg" + ] + }, + { + "name": "template", + "crates": [ + "vss", + "mold", + "mold_lib" + ] + }, + { + "name": "wordlist", + "crates": [ + "wordlist" + ] + }, + { + "name": "english", + "crates": [ + "wordlist" + ] + }, + { + "name": "uml", + "crates": [ + "matreshka_amf", + "ado_mysql", + "matreshka_amf_mofext", + "matreshka_amf_uml", + "ado", + "matreshka_amf_dd", + "matreshka_amf_utp", + "ado_postgresql", + "ado_all", + "matreshka_amf_ocl", + "dynamo", + "ado_sqlite" + ] + }, + { + "name": "meta", + "crates": [ + "matreshka_amf", + "matreshka_amf_mofext", + "matreshka_amf_uml", + "matreshka_amf_dd", + "matreshka_amf_utp", + "matreshka_amf_ocl" + ] + }, + { + "name": "mof", + "crates": [ + "matreshka_amf" + ] + }, + { + "name": "gltf", + "crates": [ + "orka_tools", + "orka", + "orka_plugin_gltf" + ] + }, + { + "name": "ktx", + "crates": [ + "orka_tools", + "orka" + ] + }, + { + "name": "orka", + "crates": [ + "orka_tools", + "orka", + "orka_egl", + "orka_opengl", + "orka_plugin_gltf", + "orka_plugin_archives", + "orka_numerics", + "orka_simd", + "orka_tensors_cpu", + "orka_transforms", + "orka_types", + "orka_plugin_terrain", + "orka_plugin_atmosphere", + "orka_tensors_gpu" + ] + }, + { + "name": "lua", + "crates": [ + "ada_lua" + ] + }, + { + "name": "script", + "crates": [ + "ada_lua" + ] + }, + { + "name": "jinja", + "crates": [ + "jintp" + ] + }, + { + "name": "jinja2", + "crates": [ + "jintp" + ] + }, + { + "name": "wayland", + "crates": [ + "wayland_ada_scanner", + "wayland_client_ada", + "wayland_egl_ada", + "wayland_cursor_ada", + "orka_awt", + "wayland_protocols_ada", + "wayland_ada_info" + ] + }, + { + "name": "egl", + "crates": [ + "wayland_ada_scanner", + "orka", + "orka_egl", + "orka_opengl", + "wayland_egl_ada", + "orka_awt" + ] + }, + { + "name": "xmpp", + "crates": [ + "axmpp" + ] + }, + { + "name": "jabber", + "crates": [ + "axmpp" + ] + }, + { + "name": "messaging", + "crates": [ + "axmpp", + "zeromq_ada" + ] + }, + { + "name": "sql", + "crates": [ + "ado_mysql", + "matreshka_sql", + "ado", + "gnatcoll_sql", + "matreshka_sql_postgresql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "ado_postgresql", + "ado_all", + "matreshka_sql_firebird", + "matreshka_sql_mysql", + "gnatcoll_sqlite", + "ado_sqlite" + ] + }, + { + "name": "mysql", + "crates": [ + "ado_mysql", + "ado_all", + "matreshka_sql_mysql" + ] + }, + { + "name": "mariadb", + "crates": [ + "ado_mysql", + "ado_all", + "matreshka_sql_mysql" + ] + }, + { + "name": "process", + "crates": [ + "spawn_glib", + "spoon", + "ashell", + "spawn" + ] + }, + { + "name": "launch", + "crates": [ + "spawn_glib", + "spawn" + ] + }, + { + "name": "pipe", + "crates": [ + "spawn_glib", + "spawn" + ] + }, + { + "name": "glib", + "crates": [ + "spawn_glib" + ] + }, + { + "name": "gtk", + "crates": [ + "eagle_lander", + "aicwl", + "dashera", + "bingada", + "gtkada" + ] + }, + { + "name": "resource", + "crates": [ + "are" + ] + }, + { + "name": "embedder", + "crates": [ + "are" + ] + }, + { + "name": "project-euler", + "crates": [ + "euler_tools" + ] + }, + { + "name": "zip", + "crates": [ + "dcf", + "zipdcf", + "azip", + "gnatcoll_zlib", + "orka_plugin_archives", + "zipada" + ] + }, + { + "name": "document", + "crates": [ + "dcf", + "zipdcf" + ] + }, + { + "name": "archive", + "crates": [ + "dcf", + "zipdcf", + "azip", + "zipada" + ] + }, + { + "name": "sax", + "crates": [ + "matreshka_league" + ] + }, + { + "name": "encoding", + "crates": [ + "matreshka_league", + "qoi" + ] + }, + { + "name": "regexp", + "crates": [ + "matreshka_league" + ] + }, + { + "name": "time", + "crates": [ + "matreshka_league", + "a0b_time", + "a0b_armv7m_systick_clock", + "a0b_armv7m_systick_clock_timer" + ] + }, + { + "name": "semver", + "crates": [ + "semantic_versioning" + ] + }, + { + "name": "semantic", + "crates": [ + "semantic_versioning", + "hac" + ] + }, + { + "name": "versioning", + "crates": [ + "semantic_versioning" + ] + }, + { + "name": "azdo", + "crates": [ + "orka", + "orka_opengl" + ] + }, + { + "name": "engine", + "crates": [ + "orka", + "mage" + ] + }, + { + "name": "a0b", + "crates": [ + "light_arduino_due", + "a0b_stm32f401_gpio", + "a0b_callbacks", + "a0b_base", + "a0b_stm32f401_tim11_timer", + "a0b_armv7m", + "a0b_time", + "a0b_i2c", + "a0b_stm32f401_dma", + "a0b_timer", + "a0b_armv7m_systick_clock", + "a0b_stm32f401_i2c", + "a0b_armv7m_systick_clock_timer", + "a0b_atsam3x8e", + "a0b_stm32f401", + "a0b_atsam3x8e_tc5_timer", + "a0b_atsam3x8e_gpio", + "a0b_exti" + ] + }, + { + "name": "bsp", + "crates": [ + "light_arduino_due", + "light_fk723m1_zgt6", + "tiny_rp2040_bsp", + "light_blackpill_stm32f401", + "pygamer_bsp", + "itsybitsy_rp2040_bsp", + "pico_bsp", + "microbit_bsp", + "itsybitsy_bsp" + ] + }, + { + "name": "light", + "crates": [ + "light_arduino_due", + "light_fk723m1_zgt6", + "light_blackpill_stm32f401" + ] + }, + { + "name": "atsam3x8e", + "crates": [ + "light_arduino_due", + "a0b_atsam3x8e_twi_i2c", + "a0b_atsam3x8e", + "a0b_atsam3x8e_tc5_timer", + "a0b_atsam3x8e_gpio" + ] + }, + { + "name": "sam3x8e", + "crates": [ + "light_arduino_due", + "a0b_atsam3x8e", + "a0b_atsam3x8e_tc5_timer", + "a0b_atsam3x8e_gpio" + ] + }, + { + "name": "arduino", + "crates": [ + "light_arduino_due", + "a0b_atsam3x8e_twi_i2c", + "a0b_atsam3x8e", + "a0b_atsam3x8e_tc5_timer", + "a0b_atsam3x8e_gpio" + ] + }, + { + "name": "due", + "crates": [ + "light_arduino_due", + "a0b_atsam3x8e_twi_i2c", + "a0b_atsam3x8e", + "a0b_atsam3x8e_tc5_timer", + "a0b_atsam3x8e_gpio" + ] + }, + { + "name": "widgets", + "crates": [ + "aicwl", + "ada_gui" + ] + }, + { + "name": "gauge", + "crates": [ + "aicwl" + ] + }, + { + "name": "ui", + "crates": [ + "aicwl", + "cmd_ada" + ] + }, + { + "name": "bar", + "crates": [ + "bar_codes" + ] + }, + { + "name": "code", + "crates": [ + "bar_codes", + "septum" + ] + }, + { + "name": "barcode", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "bar-code", + "crates": [ + "bar_codes" + ] + }, + { + "name": "datamatrix", + "crates": [ + "bar_codes" + ] + }, + { + "name": "data-matrix", + "crates": [ + "bar_codes" + ] + }, + { + "name": "qr", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "qrcode", + "crates": [ + "bar_codes" + ] + }, + { + "name": "qr-code", + "crates": [ + "bar_codes" + ] + }, + { + "name": "code128", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "msi", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "ean13", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "upca", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "pbm", + "crates": [ + "bar_codes", + "bar_code_drawing", + "gid" + ] + }, + { + "name": "pdf", + "crates": [ + "bar_codes", + "apdf" + ] + }, + { + "name": "png", + "crates": [ + "bar_codes", + "gid", + "image_io" + ] + }, + { + "name": "svg", + "crates": [ + "bar_codes", + "bar_code_drawing" + ] + }, + { + "name": "simple", + "crates": [ + "vanilla" + ] + }, + { + "name": "substitute", + "crates": [ + "vanilla" + ] + }, + { + "name": "replace", + "crates": [ + "vanilla" + ] + }, + { + "name": "vanilla", + "crates": [ + "vanilla" + ] + }, + { + "name": "atari", + "crates": [ + "atari_atr_tools", + "atari_exe_tools" + ] + }, + { + "name": "ada-2022", + "crates": [ + "atari_atr_tools", + "atari_exe_tools", + "hp41cx_tools" + ] + }, + { + "name": "education", + "crates": [ + "learnadainy" + ] + }, + { + "name": "java", + "crates": [ + "j2ada" + ] + }, + { + "name": "translator", + "crates": [ + "j2ada" + ] + }, + { + "name": "xdg", + "crates": [ + "xdg_base_dir" + ] + }, + { + "name": "stm32", + "crates": [ + "a0b_stm32f401_gpio", + "a0b_stm32f401_tim11_timer", + "light_blackpill_stm32f401", + "a0b_stm32f401_dma", + "a0b_stm32f401_i2c", + "enet_stm32", + "a0b_stm32f401" + ] + }, + { + "name": "stm32f401", + "crates": [ + "a0b_stm32f401_gpio", + "a0b_stm32f401_tim11_timer", + "light_blackpill_stm32f401", + "a0b_stm32f401_dma", + "a0b_stm32f401_i2c", + "a0b_stm32f401" + ] + }, + { + "name": "exti", + "crates": [ + "a0b_stm32f401_gpio", + "a0b_exti" + ] + }, + { + "name": "utilities", + "crates": [ + "si_units" + ] + }, + { + "name": "formatting", + "crates": [ + "si_units", + "libgnatformat", + "gnatformat", + "libadalang_tools" + ] + }, + { + "name": "soap", + "crates": [ + "matreshka_soap_wsse", + "matreshka_soap", + "aws" + ] + }, + { + "name": "wsse", + "crates": [ + "matreshka_soap_wsse" + ] + }, + { + "name": "yaml", + "crates": [ + "yeison" + ] + }, + { + "name": "toml", + "crates": [ + "yeison", + "toml_slicer" + ] + }, + { + "name": "hac", + "crates": [ + "hac", + "lea" + ] + }, + { + "name": "compiler", + "crates": [ + "hac" + ] + }, + { + "name": "virtual-machine", + "crates": [ + "hac" + ] + }, + { + "name": "native", + "crates": [ + "hac" + ] + }, + { + "name": "parser", + "crates": [ + "hac", + "ayacc", + "emacs_wisitoken_grammar_mode", + "aflex", + "wisitoken", + "elada", + "emacs_gpr_mode", + "opentoken", + "wikiada" + ] + }, + { + "name": "advent-of-code", + "crates": [ + "hac" + ] + }, + { + "name": "client", + "crates": [ + "wayland_client_ada", + "rclada_examples", + "rclada" + ] + }, + { + "name": "callbacks", + "crates": [ + "a0b_callbacks" + ] + }, + { + "name": "types", + "crates": [ + "a0b_base" + ] + }, + { + "name": "builtins", + "crates": [ + "a0b_base" + ] + }, + { + "name": "stm32h723", + "crates": [ + "light_fk723m1_zgt6" + ] + }, + { + "name": "fk723m1", + "crates": [ + "light_fk723m1_zgt6" + ] + }, + { + "name": "io", + "crates": [ + "controlled_io", + "image_io" + ] + }, + { + "name": "controlled", + "crates": [ + "controlled_io" + ] + }, + { + "name": "scope", + "crates": [ + "controlled_io" + ] + }, + { + "name": "binary", + "crates": [ + "controlled_io" + ] + }, + { + "name": "grammar", + "crates": [ + "ayacc", + "aflex", + "anagram" + ] + }, + { + "name": "indent", + "crates": [ + "emacs_wisitoken_grammar_mode", + "emacs_gpr_mode", + "emacs_wisi" + ] + }, + { + "name": "highlight", + "crates": [ + "emacs_wisitoken_grammar_mode", + "emacs_gpr_mode" + ] + }, + { + "name": "sorting", + "crates": [ + "partord", + "pragmarc" + ] + }, + { + "name": "processes", + "crates": [ + "utilada" + ] + }, + { + "name": "streams", + "crates": [ + "utilada", + "utilada_lzma" + ] + }, + { + "name": "beans", + "crates": [ + "utilada" + ] + }, + { + "name": "encoders", + "crates": [ + "utilada" + ] + }, + { + "name": "decoders", + "crates": [ + "utilada" + ] + }, + { + "name": "training", + "crates": [ + "labs_radar", + "labs_standalone", + "labs_solar_system" + ] + }, + { + "name": "labs", + "crates": [ + "labs_radar", + "labs_standalone", + "labs_solar_system" + ] + }, + { + "name": "hal", + "crates": [ + "hal", + "tiny_text", + "linux_hal" + ] + }, + { + "name": "suika", + "crates": [ + "suika_programing" + ] + }, + { + "name": "raylib", + "crates": [ + "suika_programing", + "raylib" + ] + }, + { + "name": "chipmunk", + "crates": [ + "suika_programing" + ] + }, + { + "name": "physics", + "crates": [ + "suika_programing" + ] + }, + { + "name": "2d", + "crates": [ + "suika_programing", + "honki_tonks_zivilisationen" + ] + }, + { + "name": "geste", + "crates": [ + "tiled_code_gen" + ] + }, + { + "name": "gamedev", + "crates": [ + "tiled_code_gen", + "raylib", + "sdlada", + "chipmunk2d" + ] + }, + { + "name": "tiled", + "crates": [ + "tiled_code_gen" + ] + }, + { + "name": "serialization", + "crates": [ + "utilada_xml" + ] + }, + { + "name": "audio", + "crates": [ + "audio_wavefiles", + "musicplayer", + "canberra_ada", + "virtapu", + "linux_hal", + "asfml", + "audio_base", + "tresses" + ] + }, + { + "name": "riff", + "crates": [ + "audio_wavefiles", + "audio_base" + ] + }, + { + "name": "wavefiles", + "crates": [ + "audio_wavefiles" + ] + }, + { + "name": "cryptography", + "crates": [ + "pbkdf2", + "system_random", + "sha2", + "sha1", + "fastpbkdf2_ada", + "chacha20", + "sparknacl", + "hmac", + "saatana", + "libkeccak" + ] + }, + { + "name": "security", + "crates": [ + "pbkdf2", + "system_random", + "sha2", + "sha1", + "security", + "chacha20", + "sparknacl", + "akt", + "hmac", + "keystoreada", + "libkeccak" + ] + }, + { + "name": "pbkdf2", + "crates": [ + "pbkdf2", + "fastpbkdf2_ada" + ] + }, + { + "name": "db", + "crates": [ + "matreshka_sql", + "matreshka_sql_postgresql", + "matreshka_sql_oracle", + "matreshka_sql_sqlite3", + "matreshka_sql_firebird", + "matreshka_sql_mysql" + ] + }, + { + "name": "html", + "crates": [ + "bbs_webif", + "list_image", + "ada_gui", + "wikiada" + ] + }, + { + "name": "diagram", + "crates": [ + "matreshka_amf_mofext", + "matreshka_amf_uml", + "matreshka_amf_dd", + "matreshka_amf_utp", + "matreshka_amf_ocl" + ] + }, + { + "name": "sfml", + "crates": [ + "honki_tonks_zivilisationen", + "bingada", + "play_2048", + "asfml" + ] + }, + { + "name": "4x", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "roundbased", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "strategy", + "crates": [ + "honki_tonks_zivilisationen" + ] + }, + { + "name": "cross-platform", + "crates": [ + "honki_tonks_zivilisationen", + "play_2048", + "asfml", + "sdlada" + ] + }, + { + "name": "multimedia", + "crates": [ + "honki_tonks_zivilisationen", + "asfml" + ] + }, + { + "name": "system", + "crates": [ + "system_random", + "endianness" + ] + }, + { + "name": "avr", + "crates": [ + "avrada_rts", + "avrada_examples", + "avrada_lib", + "avrada_mcu" + ] + }, + { + "name": "rts", + "crates": [ + "avrada_rts", + "portable_minimal_ada_rts", + "avrada_mcu" + ] + }, + { + "name": "ada1995", + "crates": [ + "b2ssum", + "felix" + ] + }, + { + "name": "hash", + "crates": [ + "b2ssum", + "blake2s", + "libkeccak" + ] + }, + { + "name": "blake2", + "crates": [ + "b2ssum", + "blake2s" + ] + }, + { + "name": "blake2s", + "crates": [ + "b2ssum", + "blake2s" + ] + }, + { + "name": "servlet", + "crates": [ + "matreshka_spikedog_api", + "matreshka_spikedog_core", + "serverfaces", + "matreshka_spikedog_awsd", + "serverfaces_unit", + "matreshka_servlet", + "servletada", + "servletada_ews", + "servletada_unit", + "servletada_aws" + ] + }, + { + "name": "vt100", + "crates": [ + "trendy_terminal", + "journada" + ] + }, + { + "name": "crc", + "crates": [ + "crc_32", + "checksum" + ] + }, + { + "name": "iso3309", + "crates": [ + "crc_32" + ] + }, + { + "name": "data", + "crates": [ + "crc_32", + "qplt" + ] + }, + { + "name": "redundancy", + "crates": [ + "crc_32", + "checksum" + ] + }, + { + "name": "verification", + "crates": [ + "crc_32" + ] + }, + { + "name": "control", + "crates": [ + "webdriver" + ] + }, + { + "name": "selenium", + "crates": [ + "webdriver" + ] + }, + { + "name": "chrome", + "crates": [ + "webdriver" + ] + }, + { + "name": "nls", + "crates": [ + "felix", + "intl" + ] + }, + { + "name": "localization", + "crates": [ + "felix" + ] + }, + { + "name": "localisation", + "crates": [ + "felix" + ] + }, + { + "name": "l10n", + "crates": [ + "felix" + ] + }, + { + "name": "ulid", + "crates": [ + "ulid" + ] + }, + { + "name": "uuid", + "crates": [ + "ulid" + ] + }, + { + "name": "guid", + "crates": [ + "ulid" + ] + }, + { + "name": "identifier", + "crates": [ + "ulid" + ] + }, + { + "name": "timestamp", + "crates": [ + "ulid" + ] + }, + { + "name": "email", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "refcount", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "projects", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "gpr", + "crates": [ + "gnatcoll", + "emacs_gpr_mode" + ] + }, + { + "name": "vfs", + "crates": [ + "gnatcoll" + ] + }, + { + "name": "cli", + "crates": [ + "parse_args", + "gnatcoll_readline", + "clic" + ] + }, + { + "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": "matrices", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "blas", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "lapack", + "crates": [ + "gnat_math_extensions" + ] + }, + { + "name": "timer", + "crates": [ + "a0b_stm32f401_tim11_timer", + "a0b_timer", + "a0b_armv7m_systick_clock_timer", + "a0b_atsam3x8e_tc5_timer", + "stopwatch" + ] + }, + { + "name": "stm32f4", + "crates": [ + "a0b_stm32f401_tim11_timer", + "light_blackpill_stm32f401", + "a0b_stm32f401_dma", + "a0b_stm32f401_i2c", + "a0b_stm32f401" + ] + }, + { + "name": "sha2", + "crates": [ + "sha2" + ] + }, + { + "name": "bmp", + "crates": [ + "bar_code_drawing", + "gid", + "image_io" + ] + }, + { + "name": "ada", + "crates": [ + "libadalang2xml", + "libgnatformat", + "adabots", + "gnatformat", + "lal_refactor", + "getada" + ] + }, + { + "name": "arguments", + "crates": [ + "getopt" + ] + }, + { + "name": "options", + "crates": [ + "getopt" + ] + }, + { + "name": "flags", + "crates": [ + "getopt" + ] + }, + { + "name": "getopt", + "crates": [ + "getopt" + ] + }, + { + "name": "demo", + "crates": [ + "avrada_examples", + "mage_hat", + "libhello", + "hello" + ] + }, + { + "name": "unit", + "crates": [ + "aunit", + "trendy_test" + ] + }, + { + "name": "unit-test", + "crates": [ + "aunit", + "trendy_test" + ] + }, + { + "name": "tiny", + "crates": [ + "tiny_rp2040_bsp" + ] + }, + { + "name": "rp2040", + "crates": [ + "tiny_rp2040_bsp", + "pico_examples", + "rp2040_hal", + "sh1107", + "eeprom_i2c", + "itsybitsy_rp2040_bsp", + "pico_bsp", + "ltp_305", + "edc_client", + "itsybitsy_bsp" + ] + }, + { + "name": "tasking", + "crates": [ + "workers" + ] + }, + { + "name": "parallelization", + "crates": [ + "workers" + ] + }, + { + "name": "pool", + "crates": [ + "workers" + ] + }, + { + "name": "rest", + "crates": [ + "openai", + "utilada_curl", + "openapi", + "minirest", + "openapi_server", + "servletada", + "servletada_unit" + ] + }, + { + "name": "api", + "crates": [ + "openai", + "openapi", + "win32ada", + "openapi_server" + ] + }, + { + "name": "openapi", + "crates": [ + "openai", + "openapi", + "openapi_server" + ] + }, + { + "name": "openai", + "crates": [ + "openai" + ] + }, + { + "name": "midi", + "crates": [ + "rtmidi", + "emdee", + "usb_embedded", + "midi" + ] + }, + { + "name": "rtmidi", + "crates": [ + "rtmidi" + ] + }, + { + "name": "music", + "crates": [ + "rtmidi", + "emdee", + "musicplayer" + ] + }, + { + "name": "armv7m", + "crates": [ + "a0b_armv7m", + "a0b_armv7m_systick_clock" + ] + }, + { + "name": "cortex-m", + "crates": [ + "a0b_armv7m" + ] + }, + { + "name": "cortex-m3", + "crates": [ + "a0b_armv7m" + ] + }, + { + "name": "cortex-m4", + "crates": [ + "a0b_armv7m" + ] + }, + { + "name": "cortex-m7", + "crates": [ + "a0b_armv7m" + ] + }, + { + "name": "key-value", + "crates": [ + "lmdb_ada" + ] + }, + { + "name": "python", + "crates": [ + "gnatcoll_python", + "gnatcoll_python3" + ] + }, + { + "name": "python2", + "crates": [ + "gnatcoll_python" + ] + }, + { + "name": "utility", + "crates": [ + "brackelib", + "uri_ada", + "wl_lib", + "simple_logging", + "alr2appimage", + "getada", + "aaa" + ] + }, + { + "name": "adt", + "crates": [ + "brackelib" + ] + }, + { + "name": "stack", + "crates": [ + "brackelib", + "basalt" + ] + }, + { + "name": "queue", + "crates": [ + "brackelib", + "basalt" + ] + }, + { + "name": "token", + "crates": [ + "jwt", + "splitter" + ] + }, + { + "name": "jws", + "crates": [ + "jwt" + ] + }, + { + "name": "jwt", + "crates": [ + "jwt", + "security" + ] + }, + { + "name": "gnatcoll-db", + "crates": [ + "gnatcoll_sql", + "gnatcoll_postgres", + "gnatcoll_sqlite" + ] + }, + { + "name": "sha1", + "crates": [ + "sha1" + ] + }, + { + "name": "network", + "crates": [ + "zeromq_ada", + "ethernet", + "garlic", + "enet_stm32", + "enet", + "gnatdist_garlic" + ] + }, + { + "name": "distributed", + "crates": [ + "zeromq_ada", + "garlic", + "gnatdist_garlic" + ] + }, + { + "name": "mdio", + "crates": [ + "ethernet" + ] + }, + { + "name": "smi", + "crates": [ + "ethernet" + ] + }, + { + "name": "miim", + "crates": [ + "ethernet" + ] + }, + { + "name": "phy", + "crates": [ + "ethernet" + ] + }, + { + "name": "magic", + "crates": [ + "magicada", + "mage_hat" + ] + }, + { + "name": "file", + "crates": [ + "magicada" + ] + }, + { + "name": "xoshiro", + "crates": [ + "xoshiro" + ] + }, + { + "name": "rng", + "crates": [ + "xoshiro" + ] + }, + { + "name": "oauth2", + "crates": [ + "security" + ] + }, + { + "name": "authentication", + "crates": [ + "security" + ] + }, + { + "name": "permissions", + "crates": [ + "security" + ] + }, + { + "name": "hex", + "crates": [ + "hex_format" + ] + }, + { + "name": "pure", + "crates": [ + "hex_format" + ] + }, + { + "name": "format", + "crates": [ + "hex_format", + "universal_text_file", + "prettier_ada" + ] + }, + { + "name": "runtime", + "crates": [ + "bare_runtime" + ] + }, + { + "name": "dasher", + "crates": [ + "dashera" + ] + }, + { + "name": "emulator", + "crates": [ + "dashera" + ] + }, + { + "name": "twi", + "crates": [ + "a0b_atsam3x8e_twi_i2c" + ] + }, + { + "name": "parallel", + "crates": [ + "parallelize" + ] + }, + { + "name": "execution", + "crates": [ + "parallelize" + ] + }, + { + "name": "progress", + "crates": [ + "progress_indicators" + ] + }, + { + "name": "units", + "crates": [ + "bbs" + ] + }, + { + "name": "uri", + "crates": [ + "uri_ada", + "uri_mime" + ] + }, + { + "name": "url", + "crates": [ + "uri_ada", + "uri_mime" + ] + }, + { + "name": "pico", + "crates": [ + "pico_examples", + "bb_pico_bsp", + "pico_bsp" + ] + }, + { + "name": "raspberrypi", + "crates": [ + "rp2040_hal", + "pico_bsp", + "libsimpleio" + ] + }, + { + "name": "drivers", + "crates": [ + "rp2040_hal", + "samd51_hal", + "avrada_lib", + "stm32f0x2_hal", + "nrf5x_hal", + "st7789" + ] + }, + { + "name": "blackpill", + "crates": [ + "light_blackpill_stm32f401" + ] + }, + { + "name": "image", + "crates": [ + "qoi", + "easy_graphics", + "gid", + "image_io" + ] + }, + { + "name": "qoi", + "crates": [ + "qoi", + "gid", + "image_io" + ] + }, + { + "name": "humidity", + "crates": [ + "bme280" + ] + }, + { + "name": "temperature", + "crates": [ + "bme280" + ] + }, + { + "name": "pressure", + "crates": [ + "bme280" + ] + }, + { + "name": "rx", + "crates": [ + "rxada" + ] + }, + { + "name": "reactive", + "crates": [ + "rxada" + ] + }, + { + "name": "reactivex", + "crates": [ + "rxada" + ] + }, + { + "name": "observer", + "crates": [ + "rxada" + ] + }, + { + "name": "realtime", + "crates": [ + "cheddar" + ] + }, + { + "name": "model", + "crates": [ + "cheddar", + "ocarina_lib" + ] + }, + { + "name": "analyzer", + "crates": [ + "cheddar" + ] + }, + { + "name": "rpc", + "crates": [ + "matreshka_soap", + "protobuf" + ] + }, + { + "name": "protocol", + "crates": [ + "matreshka_soap", + "protobuf" + ] + }, + { + "name": "samd51", + "crates": [ + "minisamd51_bsp", + "minisamd51_example" + ] + }, + { + "name": "minisam", + "crates": [ + "minisamd51_bsp", + "minisamd51_example" + ] + }, + { + "name": "dma", + "crates": [ + "a0b_stm32f401_dma", + "bbqueue" + ] + }, + { + "name": "pretty", + "crates": [ + "ada_pretty" + ] + }, + { + "name": "printing", + "crates": [ + "ada_pretty" + ] + }, + { + "name": "chat", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "irc", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "weechat", + "crates": [ + "weechat_ada" + ] + }, + { + "name": "rad", + "crates": [ + "gwindows" + ] + }, + { + "name": "windows", + "crates": [ + "gwindows", + "win32ada", + "orka_awt" + ] + }, + { + "name": "atsamd51", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "microchip", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "atmel", + "crates": [ + "samd51_hal" + ] + }, + { + "name": "application", + "crates": [ + "azip", + "texcad", + "lea" + ] + }, + { + "name": "azip", + "crates": [ + "azip" + ] + }, + { + "name": "file-manager", + "crates": [ + "azip" + ] + }, + { + "name": "postgresql", + "crates": [ + "matreshka_sql_postgresql", + "ado_postgresql", + "ado_all", + "gnatcoll_postgres" + ] + }, + { + "name": "lzma", + "crates": [ + "gnatcoll_lzma", + "utilada_lzma", + "lzmada", + "zipada" + ] + }, + { + "name": "compression", + "crates": [ + "gnatcoll_lzma", + "gnatcoll_zlib", + "z_compression", + "lzmada", + "zipada" + ] + }, + { + "name": "7z", + "crates": [ + "gnatcoll_lzma" + ] + }, + { + "name": "7zip", + "crates": [ + "gnatcoll_lzma" + ] + }, + { + "name": "algorithmic", + "crates": [ + "labs_standalone" + ] + }, + { + "name": "chacha20", + "crates": [ + "chacha20" + ] + }, + { + "name": "oracle", + "crates": [ + "matreshka_sql_oracle" + ] + }, + { + "name": "sqlite", + "crates": [ + "matreshka_sql_sqlite3", + "ado_all", + "gnatcoll_sqlite", + "ado_sqlite" + ] + }, + { + "name": "wordle", + "crates": [ + "wordle", + "wordlelib" + ] + }, + { + "name": "coverage", + "crates": [ + "gnatcov" + ] + }, + { + "name": "analysis", + "crates": [ + "gnatcov", + "dependency_graph_extractor", + "anagram", + "rejuvenation" + ] + }, + { + "name": "search", + "crates": [ + "septum" + ] + }, + { + "name": "template-engine", + "crates": [ + "mold", + "mold_lib" + ] + }, + { + "name": "template-repo", + "crates": [ + "mold", + "mold_lib" + ] + }, + { + "name": "boolean", + "crates": [ + "dirty_booleans", + "bit_sets" + ] + }, + { + "name": "dirty", + "crates": [ + "dirty_booleans" + ] + }, + { + "name": "comparison", + "crates": [ + "dirty_booleans" + ] + }, + { + "name": "mime", + "crates": [ + "uri_mime" + ] + }, + { + "name": "media-type", + "crates": [ + "uri_mime" + ] + }, + { + "name": "spdx", + "crates": [ + "spdx" + ] + }, + { + "name": "license", + "crates": [ + "spdx" + ] + }, + { + "name": "evdev", + "crates": [ + "evdev" + ] + }, + { + "name": "force-feedback", + "crates": [ + "evdev" + ] + }, + { + "name": "input", + "crates": [ + "evdev", + "orka_awt" + ] + }, + { + "name": "password", + "crates": [ + "get_password" + ] + }, + { + "name": "echo", + "crates": [ + "get_password" + ] + }, + { + "name": "textio", + "crates": [ + "get_password" + ] + }, + { + "name": "beaglebone", + "crates": [ + "muntsos_beaglebone", + "libsimpleio" + ] + }, + { + "name": "lib", + "crates": [ + "libgnatformat" + ] + }, + { + "name": "font", + "crates": [ + "tiny_text" + ] + }, + { + "name": "bitmap", + "crates": [ + "tiny_text", + "adl_middleware", + "gid", + "st7789" + ] + }, + { + "name": "atomic", + "crates": [ + "atomic" + ] + }, + { + "name": "generalized", + "crates": [ + "wisitoken" + ] + }, + { + "name": "power", + "crates": [ + "powerjoular" + ] + }, + { + "name": "energy", + "crates": [ + "powerjoular" + ] + }, + { + "name": "performance", + "crates": [ + "emdee", + "bit_sets" + ] + }, + { + "name": "theatre", + "crates": [ + "emdee" + ] + }, + { + "name": "mp3", + "crates": [ + "emdee" + ] + }, + { + "name": "soundtrack", + "crates": [ + "emdee" + ] + }, + { + "name": "player", + "crates": [ + "emdee", + "musicplayer" + ] + }, + { + "name": "wav", + "crates": [ + "emdee" + ] + }, + { + "name": "flac", + "crates": [ + "emdee" + ] + }, + { + "name": "ogg", + "crates": [ + "emdee" + ] + }, + { + "name": "ffplay", + "crates": [ + "emdee" + ] + }, + { + "name": "aplaymidi", + "crates": [ + "emdee" + ] + }, + { + "name": "playsmf", + "crates": [ + "emdee" + ] + }, + { + "name": "gl", + "crates": [ + "globe_3d" + ] + }, + { + "name": "3d-rendering", + "crates": [ + "globe_3d" + ] + }, + { + "name": "3d-graphics", + "crates": [ + "globe_3d" + ] + }, + { + "name": "space-partition", + "crates": [ + "globe_3d" + ] + }, + { + "name": "collision", + "crates": [ + "globe_3d" + ] + }, + { + "name": "portal", + "crates": [ + "globe_3d" + ] + }, + { + "name": "sprite", + "crates": [ + "geste" + ] + }, + { + "name": "readline", + "crates": [ + "gnatcoll_readline", + "linenoise_ada" + ] + }, + { + "name": "devices", + "crates": [ + "bbs_embed_linux" + ] + }, + { + "name": "hardware", + "crates": [ + "bbs_embed_linux", + "blinkenlights" + ] + }, + { + "name": "filesystem", + "crates": [ + "littlefs" + ] + }, + { + "name": "flash", + "crates": [ + "littlefs" + ] + }, + { + "name": "spawn", + "crates": [ + "spoon", + "ashell" + ] + }, + { + "name": "refactoring", + "crates": [ + "liblal_refactor", + "lal_refactor" + ] + }, + { + "name": "lvgl", + "crates": [ + "lvgl_ada", + "lvgl_ada_examples", + "lvgl_ada_simulator" + ] + }, + { + "name": "no-std", + "crates": [ + "lvgl_ada" + ] + }, + { + "name": "simulation", + "crates": [ + "blinkenlights", + "simh_tapes" + ] + }, + { + "name": "i8080", + "crates": [ + "blinkenlights" + ] + }, + { + "name": "m68000", + "crates": [ + "blinkenlights" + ] + }, + { + "name": "canberra", + "crates": [ + "canberra_ada" + ] + }, + { + "name": "sound", + "crates": [ + "canberra_ada", + "bingada" + ] + }, + { + "name": "nacl", + "crates": [ + "sparknacl" + ] + }, + { + "name": "curve25519", + "crates": [ + "sparknacl" + ] + }, + { + "name": "ed25519", + "crates": [ + "sparknacl" + ] + }, + { + "name": "tweetnacl", + "crates": [ + "sparknacl" + ] + }, + { + "name": "os", + "crates": [ + "ashell" + ] + }, + { + "name": "command", + "crates": [ + "ashell" + ] + }, + { + "name": "directories", + "crates": [ + "ashell" + ] + }, + { + "name": "zlib", + "crates": [ + "gnatcoll_zlib", + "z_compression" + ] + }, + { + "name": "deflate", + "crates": [ + "gnatcoll_zlib", + "z_compression", + "zipada" + ] + }, + { + "name": "bingo", + "crates": [ + "bingada" + ] + }, + { + "name": "chance", + "crates": [ + "bingada" + ] + }, + { + "name": "family", + "crates": [ + "bingada" + ] + }, + { + "name": "cpu-simulator", + "crates": [ + "simcpucli", + "bbs_simcpu" + ] + }, + { + "name": "storage", + "crates": [ + "akt", + "keystoreada", + "awa" + ] + }, + { + "name": "nosql", + "crates": [ + "akt", + "keystoreada" + ] + }, + { + "name": "powerline", + "crates": [ + "pla_util" + ] + }, + { + "name": "adventofada", + "crates": [ + "aoa_22" + ] + }, + { + "name": "2022", + "crates": [ + "aoa_22" + ] + }, + { + "name": "scripting", + "crates": [ + "tash", + "scripted_testing" + ] + }, + { + "name": "tcl", + "crates": [ + "tash" + ] + }, + { + "name": "tk", + "crates": [ + "tash" + ] + }, + { + "name": "dcf", + "crates": [ + "orka_plugin_archives" + ] + }, + { + "name": "ppm", + "crates": [ + "easy_graphics", + "gid", + "image_io" + ] + }, + { + "name": "pam", + "crates": [ + "easy_graphics" + ] + }, + { + "name": "gif", + "crates": [ + "easy_graphics", + "gid", + "image_io" + ] + }, + { + "name": "turtle", + "crates": [ + "easy_graphics" + ] + }, + { + "name": "fat", + "crates": [ + "adl_middleware" + ] + }, + { + "name": "ros", + "crates": [ + "rclada_examples", + "rclada" + ] + }, + { + "name": "robotics", + "crates": [ + "rclada_examples", + "rclada" + ] + }, + { + "name": "miscellanea", + "crates": [ + "wl_lib", + "aaa" + ] + }, + { + "name": "lsp", + "crates": [ + "ada_language_server" + ] + }, + { + "name": "vscode", + "crates": [ + "ada_language_server" + ] + }, + { + "name": "stm32f0", + "crates": [ + "stm32f0x2_hal" + ] + }, + { + "name": "binarytrees", + "crates": [ + "binary_trees" + ] + }, + { + "name": "trees", + "crates": [ + "binary_trees", + "stephes_ada_library" + ] + }, + { + "name": "noaccess", + "crates": [ + "binary_trees" + ] + }, + { + "name": "kem", + "crates": [ + "adare_hqc256" + ] + }, + { + "name": "pqc", + "crates": [ + "adare_hqc256", + "adare_dilithium5" + ] + }, + { + "name": "ss512bits", + "crates": [ + "adare_hqc256" + ] + }, + { + "name": "raspberrypi1", + "crates": [ + "muntsos_raspberrypi1" + ] + }, + { + "name": "iterators", + "crates": [ + "iterators" + ] + }, + { + "name": "functional", + "crates": [ + "iterators", + "optional" + ] + }, + { + "name": "emoji", + "crates": [ + "umwi", + "emojis" + ] + }, + { + "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": "automaton", + "crates": [ + "automate" + ] + }, + { + "name": "learn", + "crates": [ + "adabots" + ] + }, + { + "name": "minecraft", + "crates": [ + "adabots" + ] + }, + { + "name": "computercraft", + "crates": [ + "adabots" + ] + }, + { + "name": "robots", + "crates": [ + "adabots" + ] + }, + { + "name": "teach", + "crates": [ + "adabots" + ] + }, + { + "name": "children", + "crates": [ + "adabots" + ] + }, + { + "name": "tool", + "crates": [ + "gnatformat", + "rsfile", + "lal_refactor", + "getada" + ] + }, + { + "name": "manipulation", + "crates": [ + "rewriters", + "rejuvenation" + ] + }, + { + "name": "transformation", + "crates": [ + "rewriters", + "rejuvenation" + ] + }, + { + "name": "list", + "crates": [ + "list_image" + ] + }, + { + "name": "iterator", + "crates": [ + "list_image" + ] + }, + { + "name": "markdown", + "crates": [ + "list_image", + "markdown", + "yass", + "bbt", + "wikiada" + ] + }, + { + "name": "syslog", + "crates": [ + "gnatcoll_syslog" + ] + }, + { + "name": "nrf51", + "crates": [ + "nrf5x_hal", + "microbit_examples", + "microbit_bsp" + ] + }, + { + "name": "nrf52", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "nordic", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "ble", + "crates": [ + "nrf5x_hal" + ] + }, + { + "name": "gfm", + "crates": [ + "markdown" + ] + }, + { + "name": "commonmark", + "crates": [ + "markdown" + ] + }, + { + "name": "arm64", + "crates": [ + "muntsos_raspberrypi4", + "muntsos_raspberrypi5", + "muntsos_aarch64", + "muntsos_raspberrypi3" + ] + }, + { + "name": "raspberrypi4", + "crates": [ + "muntsos_raspberrypi4" + ] + }, + { + "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": "facelet", + "crates": [ + "serverfaces_unit" + ] + }, + { + "name": "jsf", + "crates": [ + "serverfaces_unit" + ] + }, + { + "name": "metric", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnatmetric", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnatpp", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnatstub", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "gnattest", + "crates": [ + "libadalang_tools" + ] + }, + { + "name": "hmac", + "crates": [ + "hmac" + ] + }, + { + "name": "syntax", + "crates": [ + "anagram" + ] + }, + { + "name": "bnf", + "crates": [ + "anagram" + ] + }, + { + "name": "ebnf", + "crates": [ + "anagram" + ] + }, + { + "name": "sat", + "crates": [ + "adasat" + ] + }, + { + "name": "solver", + "crates": [ + "adasat" + ] + }, + { + "name": "theories", + "crates": [ + "adasat" + ] + }, + { + "name": "texcad", + "crates": [ + "texcad" + ] + }, + { + "name": "tex", + "crates": [ + "texcad" + ] + }, + { + "name": "latex", + "crates": [ + "texcad" + ] + }, + { + "name": "cad", + "crates": [ + "texcad" + ] + }, + { + "name": "picture", + "crates": [ + "texcad" + ] + }, + { + "name": "draw", + "crates": [ + "texcad" + ] + }, + { + "name": "drawing", + "crates": [ + "texcad" + ] + }, + { + "name": "vector-graphics", + "crates": [ + "texcad" + ] + }, + { + "name": "xref", + "crates": [ + "emacs_gpr_query", + "emacs_wisi", + "gnatcoll_xref" + ] + }, + { + "name": "synth", + "crates": [ + "virtapu" + ] + }, + { + "name": "expression", + "crates": [ + "elada" + ] + }, + { + "name": "expander", + "crates": [ + "elada" + ] + }, + { + "name": "gmp", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "arbitrary", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "precision", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "arithmetic", + "crates": [ + "gnatcoll_gmp" + ] + }, + { + "name": "signature", + "crates": [ + "adare_dilithium5" + ] + }, + { + "name": "animated", + "crates": [ + "gid" + ] + }, + { + "name": "animation", + "crates": [ + "gid" + ] + }, + { + "name": "color", + "crates": [ + "gid" + ] + }, + { + "name": "decoder", + "crates": [ + "gid" + ] + }, + { + "name": "decoding", + "crates": [ + "gid" + ] + }, + { + "name": "decompress", + "crates": [ + "gid" + ] + }, + { + "name": "digitization", + "crates": [ + "gid" + ] + }, + { + "name": "lossless", + "crates": [ + "gid" + ] + }, + { + "name": "lossy", + "crates": [ + "gid" + ] + }, + { + "name": "rbg", + "crates": [ + "gid" + ] + }, + { + "name": "steganography", + "crates": [ + "gid" + ] + }, + { + "name": "transparency", + "crates": [ + "gid" + ] + }, + { + "name": "transparent", + "crates": [ + "gid" + ] + }, + { + "name": "jpeg", + "crates": [ + "gid" + ] + }, + { + "name": "jpg", + "crates": [ + "gid", + "image_io" + ] + }, + { + "name": "pgm", + "crates": [ + "gid" + ] + }, + { + "name": "pnm", + "crates": [ + "gid", + "image_io" + ] + }, + { + "name": "tga", + "crates": [ + "gid", + "image_io" + ] + }, + { + "name": "targa", + "crates": [ + "gid" + ] + }, + { + "name": "file-size", + "crates": [ + "rsfile" + ] + }, + { + "name": "optional", + "crates": [ + "optional" + ] + }, + { + "name": "legacy", + "crates": [ + "dg_loada", + "simh_tapes" + ] + }, + { + "name": "recovering-data", + "crates": [ + "dg_loada" + ] + }, + { + "name": "dg", + "crates": [ + "dg_loada" + ] + }, + { + "name": "data-general", + "crates": [ + "dg_loada" + ] + }, + { + "name": "aos-vs", + "crates": [ + "dg_loada" + ] + }, + { + "name": "hypervisor", + "crates": [ + "hirtos_separation_kernel" + ] + }, + { + "name": "remoteio", + "crates": [ + "remoteio", + "libsimpleio" + ] + }, + { + "name": "firebird", + "crates": [ + "matreshka_sql_firebird" + ] + }, + { + "name": "systick", + "crates": [ + "a0b_armv7m_systick_clock_timer" + ] + }, + { + "name": "lisp", + "crates": [ + "lispcli", + "bbs_lisp" + ] + }, + { + "name": "smbus", + "crates": [ + "linux_hal" + ] + }, + { + "name": "puzzle", + "crates": [ + "play_2048" + ] + }, + { + "name": "math", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_transforms", + "orka_tensors_gpu" + ] + }, + { + "name": "vector", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_transforms", + "orka_tensors_gpu" + ] + }, + { + "name": "ndarray", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_tensors_gpu" + ] + }, + { + "name": "tensor", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_tensors_gpu" + ] + }, + { + "name": "numpy", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_tensors_gpu" + ] + }, + { + "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_cpu", + "orka_tensors_gpu" + ] + }, + { + "name": "linearalgebra", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_tensors_gpu" + ] + }, + { + "name": "linalg", + "crates": [ + "orka_numerics", + "orka_tensors_cpu", + "orka_tensors_gpu" + ] + }, + { + "name": "dsa", + "crates": [ + "garlic", + "gnatdist_garlic" + ] + }, + { + "name": "annex", + "crates": [ + "garlic", + "gnatdist_garlic" + ] + }, + { + "name": "glade", + "crates": [ + "garlic", + "gnatdist_garlic" + ] + }, + { + "name": "user-input", + "crates": [ + "clic" + ] + }, + { + "name": "tty", + "crates": [ + "clic", + "pragmarc" + ] + }, + { + "name": "postgres", + "crates": [ + "gnatcoll_postgres" + ] + }, + { + "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": "documentation", + "crates": [ + "libgnatdoc", + "gnatdoc" + ] + }, + { + "name": "bit", + "crates": [ + "bit_sets" + ] + }, + { + "name": "set", + "crates": [ + "bit_sets" + ] + }, + { + "name": "array", + "crates": [ + "bit_sets" + ] + }, + { + "name": "packed", + "crates": [ + "bit_sets" + ] + }, + { + "name": "svd", + "crates": [ + "a0b_atsam3x8e", + "a0b_stm32f401" + ] + }, + { + "name": "games", + "crates": [ + "asfml", + "sdlada" + ] + }, + { + "name": "regex", + "crates": [ + "simple_regex" + ] + }, + { + "name": "enet", + "crates": [ + "enet_stm32" + ] + }, + { + "name": "esp", + "crates": [ + "esp_idf" + ] + }, + { + "name": "riscv", + "crates": [ + "esp_idf" + ] + }, + { + "name": "xtensa", + "crates": [ + "esp_idf" + ] + }, + { + "name": "project", + "crates": [ + "emacs_wisi" + ] + }, + { + "name": "compile", + "crates": [ + "emacs_wisi" + ] + }, + { + "name": "ocl", + "crates": [ + "matreshka_amf_ocl" + ] + }, + { + "name": "portable", + "crates": [ + "sdlada" + ] + }, + { + "name": "ip", + "crates": [ + "enet" + ] + }, + { + "name": "ipv4", + "crates": [ + "enet" + ] + }, + { + "name": "icmp", + "crates": [ + "enet" + ] + }, + { + "name": "udp", + "crates": [ + "enet" + ] + }, + { + "name": "arp", + "crates": [ + "enet" + ] + }, + { + "name": "dns", + "crates": [ + "enet" + ] + }, + { + "name": "dhcp", + "crates": [ + "enet" + ] + }, + { + "name": "ntp", + "crates": [ + "enet" + ] + }, + { + "name": "jupyter", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "notebook", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "kernel", + "crates": [ + "jupyter_kernel" + ] + }, + { + "name": "threefish256", + "crates": [ + "encryption_utilities" + ] + }, + { + "name": "threefish512", + "crates": [ + "encryption_utilities" + ] + }, + { + "name": "threefish1024", + "crates": [ + "encryption_utilities" + ] + }, + { + "name": "xor", + "crates": [ + "encryption_utilities" + ] + }, + { + "name": "tutorial", + "crates": [ + "wikibook", + "ppag" + ] + }, + { + "name": "wikibook", + "crates": [ + "wikibook" + ] + }, + { + "name": "mpfr", + "crates": [ + "admpfr" + ] + }, + { + "name": "floating-point", + "crates": [ + "admpfr" + ] + }, + { + "name": "countries", + "crates": [ + "iso" + ] + }, + { + "name": "currencies", + "crates": [ + "iso" + ] + }, + { + "name": "iso-1366", + "crates": [ + "iso" + ] + }, + { + "name": "iso-4217", + "crates": [ + "iso" + ] + }, + { + "name": "aws", + "crates": [ + "aws" + ] + }, + { + "name": "wsdl", + "crates": [ + "aws" + ] + }, + { + "name": "usb", + "crates": [ + "usb_embedded" + ] + }, + { + "name": "hid", + "crates": [ + "usb_embedded", + "libsimpleio" + ] + }, + { + "name": "magtape", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "magnetic", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "tape", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "emulation", + "crates": [ + "simh_tapes" + ] + }, + { + "name": "fonts", + "crates": [ + "openglada_text", + "freetypeada" + ] + }, + { + "name": "dynamic", + "crates": [ + "uxstrings" + ] + }, + { + "name": "eeprom", + "crates": [ + "eeprom_i2c" + ] + }, + { + "name": "appimage", + "crates": [ + "alr2appimage" + ] + }, + { + "name": "alire", + "crates": [ + "alr2appimage", + "getada" + ] + }, + { + "name": "packaging", + "crates": [ + "alr2appimage" + ] + }, + { + "name": "openmp", + "crates": [ + "gnatcoll_omp" + ] + }, + { + "name": "libgomp", + "crates": [ + "gnatcoll_omp" + ] + }, + { + "name": "minedetector", + "crates": [ + "mine_detector" + ] + }, + { + "name": "python3", + "crates": [ + "gnatcoll_python3" + ] + }, + { + "name": "quaternion", + "crates": [ + "orka_transforms" + ] + }, + { + "name": "cgi", + "crates": [ + "matreshka_fastcgi" + ] + }, + { + "name": "lexer", + "crates": [ + "opentoken" + ] + }, + { + "name": "aadl", + "crates": [ + "ocarina_lib" + ] + }, + { + "name": "gherkin", + "crates": [ + "bbt" + ] + }, + { + "name": "tdd", + "crates": [ + "bbt" + ] + }, + { + "name": "black-box", + "crates": [ + "bbt" + ] + }, + { + "name": "raspberrypi5", + "crates": [ + "muntsos_raspberrypi5" + ] + }, + { + "name": "reports", + "crates": [ + "printer_toolkit" + ] + }, + { + "name": "charts", + "crates": [ + "printer_toolkit" + ] + }, + { + "name": "inotify", + "crates": [ + "inotify" + ] + }, + { + "name": "ansi", + "crates": [ + "ansiada" + ] + }, + { + "name": "windowed", + "crates": [ + "labs_solar_system" + ] + }, + { + "name": "raspberry", + "crates": [ + "raspberry_bsp", + "libsimpleio" + ] + }, + { + "name": "pi", + "crates": [ + "raspberry_bsp", + "libsimpleio" + ] + }, + { + "name": "utils", + "crates": [ + "resources", + "basalt" + ] + }, + { + "name": "formatter", + "crates": [ + "prettier_ada" + ] + }, + { + "name": "gamepad", + "crates": [ + "orka_awt" + ] + }, + { + "name": "handheld", + "crates": [ + "bb_pico_bsp" + ] + }, + { + "name": "featherwing", + "crates": [ + "bb_pico_bsp" + ] + }, + { + "name": "cpm", + "crates": [ + "loadcpm" + ] + }, + { + "name": "rtos", + "crates": [ + "hirtos" + ] + }, + { + "name": "microbit", + "crates": [ + "microbit_examples", + "microbit_bsp" + ] + }, + { + "name": "special-fun", + "crates": [ + "specfun" + ] + }, + { + "name": "beta-function", + "crates": [ + "specfun" + ] + }, + { + "name": "gamma-function", + "crates": [ + "specfun" + ] + }, + { + "name": "beta-incomplete", + "crates": [ + "specfun" + ] + }, + { + "name": "aarch64", + "crates": [ + "muntsos_aarch64" + ] + }, + { + "name": "itsybitsy", + "crates": [ + "itsybitsy_rp2040_bsp", + "itsybitsy_bsp" + ] + }, + { + "name": "ncurses", + "crates": [ + "ncursesada" + ] + }, + { + "name": "protocols", + "crates": [ + "slip", + "wayland_protocols_ada" + ] + }, + { + "name": "led", + "crates": [ + "ltp_305" + ] + }, + { + "name": "numbers", + "crates": [ + "image_random" + ] + }, + { + "name": "camera", + "crates": [ + "image_random" + ] + }, + { + "name": "bzip2", + "crates": [ + "zipada" + ] + }, + { + "name": "lzw", + "crates": [ + "zipada" + ] + }, + { + "name": "shrink", + "crates": [ + "zipada" + ] + }, + { + "name": "lockfree", + "crates": [ + "bbqueue" + ] + }, + { + "name": "bipbuffer", + "crates": [ + "bbqueue" + ] + }, + { + "name": "excel", + "crates": [ + "excel_writer" + ] + }, + { + "name": "spreadsheet", + "crates": [ + "excel_writer" + ] + }, + { + "name": "xls", + "crates": [ + "excel_writer" + ] + }, + { + "name": "csv", + "crates": [ + "excel_writer" + ] + }, + { + "name": "line", + "crates": [ + "lined" + ] + }, + { + "name": "editor", + "crates": [ + "lined", + "lea" + ] + }, + { + "name": "calculator", + "crates": [ + "hp41cx_tools" + ] + }, + { + "name": "hp-41cx", + "crates": [ + "hp41cx_tools" + ] + }, + { + "name": "dm41x", + "crates": [ + "hp41cx_tools" + ] + }, + { + "name": "px41cx", + "crates": [ + "hp41cx_tools" + ] + }, + { + "name": "lea", + "crates": [ + "lea" + ] + }, + { + "name": "terrain", + "crates": [ + "orka_plugin_terrain" + ] + }, + { + "name": "passwordmaker", + "crates": [ + "password_gen" + ] + }, + { + "name": "libsimpleio", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "pocketbeagle", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "watchdog", + "crates": [ + "libsimpleio" + ] + }, + { + "name": "ada1987", + "crates": [ + "blake2s", + "avltrees" + ] + }, + { + "name": "hello", + "crates": [ + "libhello", + "hello" + ] + }, + { + "name": "atmosphere", + "crates": [ + "orka_plugin_atmosphere" + ] + }, + { + "name": "earth", + "crates": [ + "orka_plugin_atmosphere" + ] + }, + { + "name": "data-structures", + "crates": [ + "avltrees" + ] + }, + { + "name": "raspberrypi3", + "crates": [ + "muntsos_raspberrypi3" + ] + }, + { + "name": "ali", + "crates": [ + "gnatcoll_xref" + ] + }, + { + "name": "wiki", + "crates": [ + "awa" + ] + }, + { + "name": "blog", + "crates": [ + "awa" + ] + }, + { + "name": "stopwatch", + "crates": [ + "stopwatch" + ] + }, + { + "name": "chronometer", + "crates": [ + "stopwatch" + ] + }, + { + "name": "plot", + "crates": [ + "qplt" + ] + }, + { + "name": "strings", + "crates": [ + "splitter" + ] + }, + { + "name": "split", + "crates": [ + "splitter" + ] + }, + { + "name": "tokenizer", + "crates": [ + "splitter" + ] + }, + { + "name": "parsing", + "crates": [ + "splitter" + ] + }, + { + "name": "junit", + "crates": [ + "ajunitgen" + ] + }, + { + "name": "bbc", + "crates": [ + "microbit_bsp" + ] + }, + { + "name": "framebuffer", + "crates": [ + "st7789" + ] + }, + { + "name": "display", + "crates": [ + "st7789" + ] + }, + { + "name": "currency", + "crates": [ + "cashe" + ] + }, + { + "name": "money", + "crates": [ + "cashe" + ] + }, + { + "name": "decimal", + "crates": [ + "cashe" + ] + }, + { + "name": "finance", + "crates": [ + "cashe" + ] + }, + { + "name": "tls", + "crates": [ + "tlsada" + ] + }, + { + "name": "adobe", + "crates": [ + "apdf" + ] + }, + { + "name": "unbound", + "crates": [ + "spark_unbound" + ] + }, + { + "name": "epoll", + "crates": [ + "epoll" + ] + }, + { + "name": "net", + "crates": [ + "epoll" + ] + }, + { + "name": "linenoise", + "crates": [ + "linenoise_ada" + ] + }, + { + "name": "line-editing", + "crates": [ + "linenoise_ada" + ] + }, + { + "name": "sci", + "crates": [ + "sciada" + ] + }, + { + "name": "scientific", + "crates": [ + "sciada" + ] + }, + { + "name": "correlations", + "crates": [ + "sciada" + ] + }, + { + "name": "occurrences", + "crates": [ + "sciada" + ] + }, + { + "name": "similarities", + "crates": [ + "sciada" + ] + }, + { + "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": "dotenv", + "crates": [ + "dotenv" + ] + }, + { + "name": "env", + "crates": [ + "dotenv" + ] + }, + { + "name": "environment", + "crates": [ + "dotenv" + ] + }, + { + "name": "variables", + "crates": [ + "dotenv" + ] + }, + { + "name": "settings", + "crates": [ + "dotenv" + ] + }, + { + "name": "synthesis", + "crates": [ + "tresses" + ] + }, + { + "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": "gnoga", + "crates": [ + "ppag" + ] + }, + { + "name": "endianness", + "crates": [ + "endianness" + ] + }, + { + "name": "cards", + "crates": [ + "pragmarc" + ] + }, + { + "name": "conversions", + "crates": [ + "pragmarc" + ] + }, + { + "name": "datastructures", + "crates": [ + "pragmarc" + ] + }, + { + "name": "encryption", + "crates": [ + "pragmarc" + ] + }, + { + "name": "matching", + "crates": [ + "pragmarc" + ] + }, + { + "name": "randomness", + "crates": [ + "pragmarc" + ] + }, + { + "name": "safety", + "crates": [ + "pragmarc" + ] + }, + { + "name": "taskcom", + "crates": [ + "pragmarc" + ] + }, + { + "name": "cobs", + "crates": [ + "cobs" + ] + }, + { + "name": "crc32", + "crates": [ + "checksum" + ] + }, + { + "name": "adler32", + "crates": [ + "checksum" + ] + }, + { + "name": "error", + "crates": [ + "checksum" + ] + }, + { + "name": "checking", + "crates": [ + "checksum" + ] + }, + { + "name": "error-checking", + "crates": [ + "checksum" + ] + }, + { + "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": "sdl", + "crates": [ + "mage" + ] + }, + { + "name": "utf-8", + "crates": [ + "utf8test" + ] + }, + { + "name": "latin-1", + "crates": [ + "utf8test" + ] + }, + { + "name": "wiki-engine", + "crates": [ + "wikiada" + ] + }, + { + "name": "mediawiki", + "crates": [ + "wikiada" + ] + }, + { + "name": "dotclear", + "crates": [ + "wikiada" + ] + }, + { + "name": "renderer", + "crates": [ + "wikiada" + ] + }, + { + "name": "2023", + "crates": [ + "aoa_23" + ] + } +] \ No newline at end of file diff --git a/_data/update.yml b/_data/update.yml new file mode 100644 index 00000000..0dedd2a2 --- /dev/null +++ b/_data/update.yml @@ -0,0 +1,4 @@ +index_branch: "stable-1.3.0" +alr_version: "2.0.2" +alire_lib_version: "2.0.2" +date: "Sat Dec 7 00:28:01 UTC 2024" 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..ec8c932f 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..35ebbbe5 --- /dev/null +++ b/deps_graph_data.json @@ -0,0 +1,5311 @@ +{ + "nodes": [ + { + "id": "mcp2221", + "color": "darkcyan", + "desc": "MCP2221 USB Raw HID I/O Expander Library for GNAT Ada" + }, + { + "id": "emacs_ada_mode", + "color": "#1f77b4", + "desc": "Parser for Emacs ada-mode" + }, + { + "id": "gsl", + "color": "#1f77b4", + "desc": "Ada binding to Gnu Scientific Library 2.7" + }, + { + "id": "dir_iterators", + "color": "#1f77b4", + "desc": "Ways of moving around directory trees" + }, + { + "id": "mathpaqs", + "color": "#1f77b4", + "desc": "A collection of mathematical, 100% portable, packages" + }, + { + "id": "gnatcoll_iconv", + "color": "#1f77b4", + "desc": "GNAT Components Collection - iconv binding" + }, + { + "id": "mandelbrot_ascii", + "color": "#1f77b4", + "desc": "Mandelbrot renderer using Unicode glyphs" + }, + { + "id": "ini_files", + "color": "#1f77b4", + "desc": "A standalone, portable Ada package for configuration files" + }, + { + "id": "matreshka_xml", + "color": "#1f77b4", + "desc": "Library to manipulate with XML streams and documents" + }, + { + "id": "hmc5883", + "color": "#1f77b4", + "desc": "Driver for HMC5883L magnetic sensor" + }, + { + "id": "elevator", + "color": "#1f77b4", + "desc": "A Simple Elevator System" + }, + { + "id": "secretada", + "color": "#1f77b4", + "desc": "Secret service Ada binding" + }, + { + "id": "awa_unit", + "color": "#1f77b4", + "desc": "Ada Web Application (Testing framework)" + }, + { + "id": "libadalang", + "color": "#1f77b4", + "desc": "Ada semantic analysis library" + }, + { + "id": "lace_gel_animation_demo", + "color": "#1f77b4", + "desc": "A demo of GEL's human animation." + }, + { + "id": "gnoga", + "color": "#1f77b4", + "desc": "gnoga - The GNU Omnificent GUI for Ada" + }, + { + "id": "openglada_glfw", + "color": "#1f77b4", + "desc": "GLFW binding for use with OpenGLAda" + }, + { + "id": "pygamer_simulator", + "color": "#1f77b4", + "desc": "SDL simulator of the AdaFruit PyGamer console" + }, + { + "id": "libgpr2", + "color": "#1f77b4", + "desc": "Parser for GPR Project File" + }, + { + "id": "gprbuild", + "color": "#1f77b4", + "desc": "The GPRBuild Ada/multilanguage build tool" + }, + { + "id": "dummyserver", + "color": "#1f77b4", + "desc": "DummyServer is a terminal program that serves dummy content" + }, + { + "id": "chests", + "color": "darkcyan", + "desc": "Chests are bounded containers" + }, + { + "id": "openglada_images", + "color": "#1f77b4", + "desc": "Image loading library for OpenGLAda" + }, + { + "id": "elogs", + "color": "purple", + "desc": "Embedded logging, proven absent of runtime errors" + }, + { + "id": "adacl", + "color": "#1f77b4", + "desc": "Ada Class Library (String, Trace, AUnit, Smart Pointer. GetOpt)" + }, + { + "id": "db_maker", + "color": "#1f77b4", + "desc": "A generic for creating simple DBs (one table in an RDBMS)" + }, + { + "id": "base64", + "color": "#1f77b4", + "desc": "Base64 encoding/decoding routines" + }, + { + "id": "task_coroutines", + "color": "#1f77b4", + "desc": "Coroutines and generators using only standard tasking features" + }, + { + "id": "muntsos_raspberrypi2", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi2 targets" + }, + { + "id": "florist_blady", + "color": "#1f77b4", + "desc": "POSIX Ada Bindings" + }, + { + "id": "mos6502_create_led", + "color": "#1f77b4", + "desc": "Create ROM with little program" + }, + { + "id": "vss", + "color": "#1f77b4", + "desc": "Advanced string and text manipulation with Unicode support" + }, + { + "id": "wordlist", + "color": "#1f77b4", + "desc": "An English word list" + }, + { + "id": "matreshka_amf", + "color": "#1f77b4", + "desc": "Implementation of OMG's Meta Object Facility (MOF)" + }, + { + "id": "orka_tools", + "color": "#1f77b4", + "desc": "Tools for the Orka rendering kernel" + }, + { + "id": "ada_lua", + "color": "#1f77b4", + "desc": "An Ada binding for lua" + }, + { + "id": "jintp", + "color": "#1f77b4", + "desc": "Template parser in Ada based on Jinja2" + }, + { + "id": "wayland_ada_scanner", + "color": "#1f77b4", + "desc": "A tool to generate thick Ada 2012 bindings for Wayland protocols" + }, + { + "id": "axmpp", + "color": "#1f77b4", + "desc": "XMPP client library in Ada" + }, + { + "id": "ado_mysql", + "color": "#1f77b4", + "desc": "Ada Database Objects (Mysql)" + }, + { + "id": "spawn_glib", + "color": "#1f77b4", + "desc": "A simple library to spawn processes and communicate with them." + }, + { + "id": "eagle_lander", + "color": "#1f77b4", + "desc": "Apollo 11 lunar lander simulator" + }, + { + "id": "are", + "color": "#1f77b4", + "desc": "Advanced Resource Embedder" + }, + { + "id": "euler_tools", + "color": "#1f77b4", + "desc": "Assortment of mathematical functions to solve Project Euler problems." + }, + { + "id": "dcf", + "color": "#1f77b4", + "desc": "Ada 2012 library for document container files, Zip-based archive files" + }, + { + "id": "matreshka_league", + "color": "#1f77b4", + "desc": "League - universal string library. Part of Matreshka framework" + }, + { + "id": "semantic_versioning", + "color": "#1f77b4", + "desc": "Semantic Versioning in Ada" + }, + { + "id": "orka", + "color": "#1f77b4", + "desc": "OpenGL 4.6 rendering kernel written in Ada 2012" + }, + { + "id": "orka_egl", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for EGL" + }, + { + "id": "light_arduino_due", + "color": "darkcyan", + "desc": "Arduino Due Board Support Package for `light` GNAT Runtime" + }, + { + "id": "aicwl", + "color": "#1f77b4", + "desc": "Ada Industrial Control Widgets Library" + }, + { + "id": "bar_codes", + "color": "#1f77b4", + "desc": "Generate various types of bar codes (1D or 2D) on various media" + }, + { + "id": "vanilla", + "color": "#1f77b4", + "desc": "Simple replace in character stream" + }, + { + "id": "atari_atr_tools", + "color": "#1f77b4", + "desc": "Atari / SIO2PC tools for ATR-files" + }, + { + "id": "learnadainy", + "color": "#1f77b4", + "desc": "Learn Ada in Y Minutes" + }, + { + "id": "lal_highlight", + "color": "#1f77b4", + "desc": "Simple code highlighters based on Libadalang" + }, + { + "id": "j2ada", + "color": "#1f77b4", + "desc": "Almost Java to Ada translator" + }, + { + "id": "xdg_base_dir", + "color": "#1f77b4", + "desc": "XDG Base Directory Specification" + }, + { + "id": "a0b_stm32f401_gpio", + "color": "darkcyan", + "desc": "A0B: STM32F401 GPIO/EXTI" + }, + { + "id": "si_units", + "color": "#1f77b4", + "desc": "Pretty print physical values in properly scaled metric (SI) units." + }, + { + "id": "matreshka_soap_wsse", + "color": "#1f77b4", + "desc": "WS-Security 1.1 implementation for SOAP 1.2" + }, + { + "id": "yeison", + "color": "#1f77b4", + "desc": "A JSON-like data structure using Ada 2022 features" + }, + { + "id": "hac", + "color": "#1f77b4", + "desc": "HAC Ada Compiler: a small, quick Ada compiler covering a subset of Ada" + }, + { + "id": "wayland_client_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-client and the Wayland protocol" + }, + { + "id": "a0b_callbacks", + "color": "#1f77b4", + "desc": "A0B Callbacks" + }, + { + "id": "a0b_base", + "color": "#1f77b4", + "desc": "A0B: Base components" + }, + { + "id": "light_fk723m1_zgt6", + "color": "darkcyan", + "desc": "FK723M1-ZGT6 Board Support Package for `light` GNAT Runtime" + }, + { + "id": "controlled_io", + "color": "#1f77b4", + "desc": "Files that are open while they exist and closed when they don't " + }, + { + "id": "ayacc", + "color": "#1f77b4", + "desc": "An Ada LARL(1) parser generator" + }, + { + "id": "emacs_wisitoken_grammar_mode", + "color": "#1f77b4", + "desc": "parser for Emacs wisitoken-grammar mode" + }, + { + "id": "partord", + "color": "#1f77b4", + "desc": "Small library for sorting with partial orders" + }, + { + "id": "utilada", + "color": "#1f77b4", + "desc": "Utility Library with streams, processes, logs, serialization, encoders" + }, + { + "id": "labs_radar", + "color": "#1f77b4", + "desc": "Introductory Ada exercises based around a fake radar codebase" + }, + { + "id": "hal", + "color": "darkcyan", + "desc": "Hardware Abstraction Layer (HAL)" + }, + { + "id": "suika_programing", + "color": "#1f77b4", + "desc": "Suika game clone with programing languages" + }, + { + "id": "adayaml", + "color": "#1f77b4", + "desc": "Experimental YAML 1.3 implementation in Ada" + }, + { + "id": "aflex", + "color": "#1f77b4", + "desc": "An Ada Lexical Analyzer Generator" + }, + { + "id": "tiled_code_gen", + "color": "#1f77b4", + "desc": "Generate GESTE data from Tiled maps and tilesets" + }, + { + "id": "utilada_xml", + "color": "#1f77b4", + "desc": "Utility Library serialization with XML/Ada" + }, + { + "id": "audio_wavefiles", + "color": "#1f77b4", + "desc": "Ada Wavefile Library" + }, + { + "id": "lace_collada", + "color": "#1f77b4", + "desc": "A Collada parser." + }, + { + "id": "pbkdf2", + "color": "#1f77b4", + "desc": "PBKDF2 implemented in Ada" + }, + { + "id": "matreshka_sql", + "color": "#1f77b4", + "desc": "Common SQL Database API" + }, + { + "id": "bbs_webif", + "color": "darkcyan", + "desc": "Simple web server to provide an interface to embedded instruments" + }, + { + "id": "matreshka_amf_mofext", + "color": "#1f77b4", + "desc": "The UML mofext for AMF" + }, + { + "id": "honki_tonks_zivilisationen", + "color": "#1f77b4", + "desc": "The Code of my 4X turn-based strategy game." + }, + { + "id": "system_random", + "color": "#1f77b4", + "desc": "Minimal library to retrieve random data from system sources" + }, + { + "id": "avrada_rts", + "color": "darkcyan", + "desc": "Minimal run time system (RTS) for AVR 8bit controllers" + }, + { + "id": "b2ssum", + "color": "#1f77b4", + "desc": "BLAKE2s file hash utility" + }, + { + "id": "agpl", + "color": "#1f77b4", + "desc": "Ada General Purpose Library with a robotics flavor" + }, + { + "id": "matreshka_spikedog_api", + "color": "#1f77b4", + "desc": "Web-application server. API library" + }, + { + "id": "trendy_terminal", + "color": "#1f77b4", + "desc": "Terminal options, setup, tab completion and hinting." + }, + { + "id": "crc_32", + "color": "#1f77b4", + "desc": "Cyclic Redundancy Check to verify data integrity (ISO 3309)" + }, + { + "id": "webdriver", + "color": "#1f77b4", + "desc": "Web Browser control API" + }, + { + "id": "zipdcf", + "color": "#1f77b4", + "desc": "Tools that can (un)zip document container files, Zip-based archive files" + }, + { + "id": "felix", + "color": "#1f77b4", + "desc": "X/Open Native Language System (NLS) for Ada" + }, + { + "id": "ulid", + "color": "#1f77b4", + "desc": "Universally Unique Lexicographically Sortable Identifier" + }, + { + "id": "gnatcoll", + "color": "#1f77b4", + "desc": "GNAT Components Collection - Core packages" + }, + { + "id": "parse_args", + "color": "#1f77b4", + "desc": "An Ada 2012 package to parse command line arguments and options" + }, + { + "id": "geo_coords", + "color": "#1f77b4", + "desc": "Geo coordinates calculation for determining Location, Distance, Bearing" + }, + { + "id": "gnat_math_extensions", + "color": "#1f77b4", + "desc": "Eigenvalues, eigenvectors for non-symmetric, non-Hermitian matrices" + }, + { + "id": "a0b_stm32f401_tim11_timer", + "color": "darkcyan", + "desc": "A0B: Timer based on STM32F401 TIM11" + }, + { + "id": "sha2", + "color": "#1f77b4", + "desc": "Secure Hash Algorithm 2 implemented in Ada" + }, + { + "id": "cortex_m", + "color": "darkcyan", + "desc": "Drivers for Cortex-M micro-controllers (NVIC, SysTick, etc.)" + }, + { + "id": "bar_code_drawing", + "color": "#1f77b4", + "desc": "Creation of bar codes and qr codes" + }, + { + "id": "libadalang2xml", + "color": "#1f77b4", + "desc": "Generates XML for Ada source, using libadalang." + }, + { + "id": "getopt", + "color": "#1f77b4", + "desc": "POSIX getopt(3) for Ada" + }, + { + "id": "avrada_examples", + "color": "darkcyan", + "desc": "Sample applications in Ada for AVR microcontrollers" + }, + { + "id": "aunit", + "color": "#1f77b4", + "desc": "Ada unit test framework" + }, + { + "id": "tiny_rp2040_bsp", + "color": "darkcyan", + "desc": "Board support package for Pimoroni Tiny RP2040" + }, + { + "id": "workers", + "color": "#1f77b4", + "desc": "Simple task pool for parallelization" + }, + { + "id": "openai", + "color": "#1f77b4", + "desc": "OpenAI client library" + }, + { + "id": "rtmidi", + "color": "#1f77b4", + "desc": "Ada \"middleweight\" binding for the rtMIDI library" + }, + { + "id": "orka_opengl", + "color": "#1f77b4", + "desc": "OpenGL 4.6 backend for the Orka rendering engine" + }, + { + "id": "whitakers_words", + "color": "#1f77b4", + "desc": "William Whitaker's WORDS, a Latin dictionary" + }, + { + "id": "c_strings", + "color": "#1f77b4", + "desc": "Convenience subprograms to interact with C strings" + }, + { + "id": "matreshka_amf_uml", + "color": "#1f77b4", + "desc": "Unified Modeling Language support for AMF" + }, + { + "id": "a0b_armv7m", + "color": "darkcyan", + "desc": "A0B: ARMv7-M support (Cortex-M3, Cortex-M4, Cortex-M7)" + }, + { + "id": "lmdb_ada", + "color": "#1f77b4", + "desc": "Bindings to the Lightning Memory-Mapped Database" + }, + { + "id": "gnatcoll_python", + "color": "#1f77b4", + "desc": "GNAT Components Collection - python2 binding" + }, + { + "id": "brackelib", + "color": "#1f77b4", + "desc": "Library which contains various utility packages." + }, + { + "id": "ado", + "color": "#1f77b4", + "desc": "Ada Database Objects (Core library)" + }, + { + "id": "simple_components", + "color": "#1f77b4", + "desc": "Simple Components - A collection of support packages" + }, + { + "id": "jwt", + "color": "#1f77b4", + "desc": "JSON Web Token (JWT) implementation in Ada" + }, + { + "id": "a0b_time", + "color": "darkcyan", + "desc": "A0B Monotonic Time" + }, + { + "id": "gnatcoll_sql", + "color": "#1f77b4", + "desc": "GNAT Components Collection - sql" + }, + { + "id": "sha1", + "color": "#1f77b4", + "desc": "Secure Hash Algorithm 1 implemented in Ada" + }, + { + "id": "journada", + "color": "#1f77b4", + "desc": "Simple and nice configurable logging" + }, + { + "id": "zeromq_ada", + "color": "#1f77b4", + "desc": "An Ada-binding the \u00d8MQ library" + }, + { + "id": "ethernet", + "color": "#1f77b4", + "desc": "Root crate for ethernet namespace and MDIO/SMI/MIIM interface" + }, + { + "id": "magicada", + "color": "#1f77b4", + "desc": "Magic Number Recognition Library Ada binding" + }, + { + "id": "xoshiro", + "color": "purple", + "desc": "xoshiro128++ and xoshiro256++ pseudo-random number generators" + }, + { + "id": "security", + "color": "#1f77b4", + "desc": "Security Library for HTTP client and server with OAuth2 support" + }, + { + "id": "hex_format", + "color": "darkcyan", + "desc": "Hexadecimal string formatting for modular types" + }, + { + "id": "bare_runtime", + "color": "darkcyan", + "desc": "Minimal Ada/SPARK run-time for embedded or other restricted targets" + }, + { + "id": "dashera", + "color": "#1f77b4", + "desc": "DASHER Terminal Emulator" + }, + { + "id": "a0b_atsam3x8e_twi_i2c", + "color": "darkcyan", + "desc": "A0B ATSAM3X8E TWI I2C Driver" + }, + { + "id": "orka_plugin_gltf", + "color": "#1f77b4", + "desc": "Orka plug-in for loading glTF models" + }, + { + "id": "ada_toml", + "color": "#1f77b4", + "desc": "TOML parser for Ada" + }, + { + "id": "parallelize", + "color": "#1f77b4", + "desc": "Execute multiple commands in parallel" + }, + { + "id": "lace_gel", + "color": "#1f77b4", + "desc": "A 2D/3D game engine library (GEL)." + }, + { + "id": "matreshka_spikedog_core", + "color": "#1f77b4", + "desc": "Web-application server. Implementation library" + }, + { + "id": "progress_indicators", + "color": "#1f77b4", + "desc": "Ways of displaying progress in command line tools." + }, + { + "id": "minimal_containers", + "color": "#1f77b4", + "desc": "Much reduced version of Ada.Containers (bounded Maps, Vectors)" + }, + { + "id": "bbs", + "color": "#1f77b4", + "desc": "Root package for other crates and contains some physical units" + }, + { + "id": "uri_ada", + "color": "#1f77b4", + "desc": "Processing of URI strings" + }, + { + "id": "pico_examples", + "color": "darkcyan", + "desc": "Examples for Ada on the Raspberry Pi Pico" + }, + { + "id": "rp2040_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the RP2040 micro-controller family" + }, + { + "id": "light_blackpill_stm32f401", + "color": "darkcyan", + "desc": "BlackPill STM32F401 BSP for `light` GNAT Runtime" + }, + { + "id": "qoi", + "color": "#1f77b4", + "desc": "Ada/SPARK implementation of the Quite Ok Image format" + }, + { + "id": "gpr_unit_provider", + "color": "#1f77b4", + "desc": "GNAT Project File Library" + }, + { + "id": "a0b_i2c", + "color": "darkcyan", + "desc": "A0B I2C API" + }, + { + "id": "bme280", + "color": "#1f77b4", + "desc": "Driver for BME280 Humidity sensor" + }, + { + "id": "rxada", + "color": "#1f77b4", + "desc": "Experimental implementation of ReactiveX in Ada" + }, + { + "id": "cheddar", + "color": "#1f77b4", + "desc": "Cheddar is a real time scheduling analysis tool." + }, + { + "id": "startup_gen", + "color": "darkcyan", + "desc": "Generates startup files (crt0 and linker script)" + }, + { + "id": "matreshka_soap", + "color": "#1f77b4", + "desc": "Framework for work with SOAP 1.2" + }, + { + "id": "shoot_n_loot", + "color": "#1f77b4", + "desc": "Platform game for the AdaFruit PyGamer console" + }, + { + "id": "xml_ez_out", + "color": "#1f77b4", + "desc": "Creation of XML-formatted output from Ada programs" + }, + { + "id": "minisamd51_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the MiniSAM D51" + }, + { + "id": "a0b_stm32f401_dma", + "color": "darkcyan", + "desc": "A0B: STM32F401 DMA" + }, + { + "id": "socketcan", + "color": "#1f77b4", + "desc": "An Ada language binding to SocketCAN for GNU/Linux systems" + }, + { + "id": "ada_pretty", + "color": "#1f77b4", + "desc": "Ada Pretty Printer Library" + }, + { + "id": "utilada_curl", + "color": "#1f77b4", + "desc": "Utility Library REST support on top of CURL" + }, + { + "id": "weechat_ada", + "color": "#1f77b4", + "desc": "Ada 2012 library for WeeChat plug-ins" + }, + { + "id": "gwindows", + "color": "#1f77b4", + "desc": "GWindows - Ada Framework for Windows Development" + }, + { + "id": "samd51_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the SAMD51 micro-controller family" + }, + { + "id": "azip", + "color": "#1f77b4", + "desc": "AZip - A portable Zip Archive Manager" + }, + { + "id": "matreshka_sql_postgresql", + "color": "#1f77b4", + "desc": "PostgreSQL binding for Ada" + }, + { + "id": "gnatcoll_lzma", + "color": "#1f77b4", + "desc": "GNAT Components Collection - lzma binding" + }, + { + "id": "gnat_native", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - Native" + }, + { + "id": "fastpbkdf2_ada", + "color": "#1f77b4", + "desc": "Binding and an Ada wrapper to fastpbkdf2" + }, + { + "id": "loga", + "color": "#1f77b4", + "desc": "Simple library for simple logging. Like npm package \"debug\", but for Ada" + }, + { + "id": "labs_standalone", + "color": "#1f77b4", + "desc": "Ada exercices for training" + }, + { + "id": "chacha20", + "color": "#1f77b4", + "desc": "ChaCha20 implementation in Ada." + }, + { + "id": "a0b_timer", + "color": "darkcyan", + "desc": "A0B Timer" + }, + { + "id": "matreshka_sql_oracle", + "color": "#1f77b4", + "desc": "Oracle DB binding for Ada" + }, + { + "id": "matreshka_sql_sqlite3", + "color": "#1f77b4", + "desc": "SQLite binding for Ada" + }, + { + "id": "program_proofs_in_spark", + "color": "purple", + "desc": "Programs from the book Program Proofs in SPARK" + }, + { + "id": "wordle", + "color": "#1f77b4", + "desc": "Wordle for the terminal" + }, + { + "id": "gnatcov", + "color": "#1f77b4", + "desc": "Coverage Analysis Tool" + }, + { + "id": "septum", + "color": "#1f77b4", + "desc": "An interactive context-based text search tool for large codebases." + }, + { + "id": "matreshka_amf_dd", + "color": "#1f77b4", + "desc": "Diagram Definition (DD) specification support for AMF" + }, + { + "id": "mold", + "color": "#1f77b4", + "desc": "Meta-variable Operations for Lean Development (cli)" + }, + { + "id": "serverfaces", + "color": "#1f77b4", + "desc": "Web Server Faces JSR 252, JSR 314 and JSR 344" + }, + { + "id": "matreshka_amf_utp", + "color": "#1f77b4", + "desc": "The UML Testing Profile for AMF" + }, + { + "id": "dirty_booleans", + "color": "#1f77b4", + "desc": "Comparisons with 0/1, T/F, Y/N, Yes/No, etc." + }, + { + "id": "minisamd51_example", + "color": "darkcyan", + "desc": "Example project for the MiniSAM D51" + }, + { + "id": "uri_mime", + "color": "#1f77b4", + "desc": "URI & MIME Type Parsing and Manupulation" + }, + { + "id": "spdx", + "color": "#1f77b4", + "desc": "SPDX License Expression Validator" + }, + { + "id": "gnat_riscv64_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - RISC-V cross-compiler" + }, + { + "id": "evdev", + "color": "#1f77b4", + "desc": "Library for input devices and force-feedback using Linux' evdev API" + }, + { + "id": "svd2ada", + "color": "#1f77b4", + "desc": "Ada binding generator from CMSIS-SVD hardware descriptions files" + }, + { + "id": "get_password", + "color": "#1f77b4", + "desc": "Read a string without echo, in password-like style" + }, + { + "id": "muntsos_beaglebone", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for BeagleBone targets" + }, + { + "id": "libgnatformat", + "color": "#1f77b4", + "desc": "opinionated code format library for the Ada language" + }, + { + "id": "langkit_support", + "color": "#1f77b4", + "desc": "Runtime support library for Langkit-generated libraries" + }, + { + "id": "tiny_text", + "color": "#1f77b4", + "desc": "Low resolution bitmap font with a small memory footprint" + }, + { + "id": "atomic", + "color": "purple", + "desc": "Standalone Ada/SPARK bindings to GCC atomic built-ins" + }, + { + "id": "a0b_armv7m_systick_clock", + "color": "darkcyan", + "desc": "A0B Monotonic Clock by ARMv7M SysTick" + }, + { + "id": "wisitoken", + "color": "#1f77b4", + "desc": "Generalized error correcting LALR and packrat parser generator" + }, + { + "id": "powerjoular", + "color": "#1f77b4", + "desc": "Monitoring the power consumption of multiple platforms and processes" + }, + { + "id": "emdee", + "color": "#1f77b4", + "desc": "Performance assistant for Musical Directors" + }, + { + "id": "globe_3d", + "color": "#1f77b4", + "desc": "GLOBE_3D: GL Object Based Engine for 3D" + }, + { + "id": "utilada_lzma", + "color": "#1f77b4", + "desc": "Utility Library streams with LZMA support" + }, + { + "id": "lace_shared", + "color": "#1f77b4", + "desc": "Default settings for GPR files in the Lace project." + }, + { + "id": "geste", + "color": "#1f77b4", + "desc": "GEneric Sprite and Tile Engine" + }, + { + "id": "gnatcoll_readline", + "color": "#1f77b4", + "desc": "GNAT Components Collection - readline binding" + }, + { + "id": "sh1107", + "color": "darkcyan", + "desc": "Driver for the SH1107/OLED 128x128 monochrome display" + }, + { + "id": "bbs_embed_linux", + "color": "darkcyan", + "desc": "Physical device drivers for Raspberry Pi and BeagleBone Black" + }, + { + "id": "musicplayer", + "color": "#1f77b4", + "desc": "A Music Player" + }, + { + "id": "gfx_core", + "color": "#1f77b4", + "desc": "Modular Portable Graphics Library, Core Components" + }, + { + "id": "littlefs", + "color": "darkcyan", + "desc": "Ada/SPARK binding for the LittleFS flash embedded filesystem" + }, + { + "id": "lace_bullet", + "color": "#1f77b4", + "desc": "Provides a thin Ada binding to the 'bullet' C++ project." + }, + { + "id": "spoon", + "color": "#1f77b4", + "desc": "Use posix_spawn() to spawn processes without forking" + }, + { + "id": "lace_gel_full_demo", + "color": "#1f77b4", + "desc": "A demo of most of GEL's features." + }, + { + "id": "liblal_refactor", + "color": "#1f77b4", + "desc": "Source code refactoring library for the Ada language" + }, + { + "id": "lvgl_ada", + "color": "darkcyan", + "desc": "Bindings for the LVGL embedded GUI framework" + }, + { + "id": "blinkenlights", + "color": "darkcyan", + "desc": "Project to blink LEDs in interesting patterns" + }, + { + "id": "canberra_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libcanberra" + }, + { + "id": "mold_lib", + "color": "#1f77b4", + "desc": "Meta-variable Operations for Lean Development (lib)" + }, + { + "id": "lvgl_ada_examples", + "color": "#1f77b4", + "desc": "Examples for the LVGL embedded GUI framework Ada binding" + }, + { + "id": "sparknacl", + "color": "purple", + "desc": "Verified SPARK 2014 re-implementation of TweetNaCl cryptographic library" + }, + { + "id": "ashell", + "color": "#1f77b4", + "desc": "Allows running and interacting with OS programs." + }, + { + "id": "a0b_stm32f401_i2c", + "color": "darkcyan", + "desc": "A0B: STM32F401 I2C" + }, + { + "id": "gnatcoll_zlib", + "color": "#1f77b4", + "desc": "GNAT Components Collection - zlib binding" + }, + { + "id": "hungarian", + "color": "#1f77b4", + "desc": "Ada wrapper for the fast Stachniss' Hungarian solver" + }, + { + "id": "zlib_ada", + "color": "#1f77b4", + "desc": "ZLib for Ada thick binding" + }, + { + "id": "bingada", + "color": "#1f77b4", + "desc": "Bingo application in GTKAda with sound in ASFML" + }, + { + "id": "simcpucli", + "color": "#1f77b4", + "desc": "CLI for CPU simulator" + }, + { + "id": "ada_fuse", + "color": "#1f77b4", + "desc": "Ada bindings for Fuse (Filesystem in Userspace)" + }, + { + "id": "akt", + "color": "#1f77b4", + "desc": "Ada Keystore Tool" + }, + { + "id": "pla_util", + "color": "#1f77b4", + "desc": "A power line adapter utility" + }, + { + "id": "aoa_22", + "color": "#1f77b4", + "desc": "Advent of Ada 22 Solutions" + }, + { + "id": "raylib", + "color": "#1f77b4", + "desc": "Ada bindings for Raylib" + }, + { + "id": "tash", + "color": "#1f77b4", + "desc": "Binding to Tcl/Tk" + }, + { + "id": "cmd_ada", + "color": "#1f77b4", + "desc": "Command based text UI, inspired by Python cmd module" + }, + { + "id": "trendy_test", + "color": "#1f77b4", + "desc": "Minimal Effort Ada Unit Testing Library" + }, + { + "id": "orka_plugin_archives", + "color": "#1f77b4", + "desc": "Orka plug-in to load resources from Zip archives" + }, + { + "id": "avrada_lib", + "color": "darkcyan", + "desc": "Library of drivers for AVR microcontrollers" + }, + { + "id": "lace", + "color": "#1f77b4", + "desc": "Contains a set of low level re-usable Ada components." + }, + { + "id": "openapi", + "color": "#1f77b4", + "desc": "OpenAPI library to build REST client applications" + }, + { + "id": "ado_postgresql", + "color": "#1f77b4", + "desc": "Ada Database Objects (PostgreSQL)" + }, + { + "id": "easy_graphics", + "color": "#1f77b4", + "desc": "Very Simple Graphics Package" + }, + { + "id": "adl_middleware", + "color": "darkcyan", + "desc": "Middleware layer of the Ada Drivers Library project" + }, + { + "id": "portable_minimal_ada_rts", + "color": "#1f77b4", + "desc": "Portable Minimal Ada Runtime Library" + }, + { + "id": "wayland_egl_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-egl" + }, + { + "id": "rclada_examples", + "color": "#1f77b4", + "desc": "ROS2 Ada Client Library - Examples" + }, + { + "id": "wl_lib", + "color": "#1f77b4", + "desc": "Handy library packages" + }, + { + "id": "lace_xml", + "color": "#1f77b4", + "desc": "Provides simple XML read/write support." + }, + { + "id": "ada_language_server", + "color": "#1f77b4", + "desc": "An implementation of the Microsoft's Language Server Protocol for Ada" + }, + { + "id": "stm32f0x2_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for stm32f0x2 mcu family" + }, + { + "id": "ado_all", + "color": "#1f77b4", + "desc": "Ada Database Objects (All drivers)" + }, + { + "id": "phcpack", + "color": "#1f77b4", + "desc": "Polynomial Homotopy Continuation" + }, + { + "id": "utilada_aws", + "color": "#1f77b4", + "desc": "Utility Library REST support on top of AWS" + }, + { + "id": "binary_trees", + "color": "#1f77b4", + "desc": " Ordered binary trees implemented without access types" + }, + { + "id": "asis", + "color": "#1f77b4", + "desc": "Ada Semantic Interface Specification or ASIS (library part)" + }, + { + "id": "adare_hqc256", + "color": "#1f77b4", + "desc": "Post Quantum Computer Resistant Cryptograph KEM, HQC 256 Ada bind." + }, + { + "id": "muntsos_raspberrypi1", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi1 targets" + }, + { + "id": "wordlelib", + "color": "#1f77b4", + "desc": "Library to track progress in a game of Wordle" + }, + { + "id": "iterators", + "color": "#1f77b4", + "desc": "Functional iterators a la Rust" + }, + { + "id": "umwi", + "color": "#1f77b4", + "desc": "Unicode Monospace Width Information" + }, + { + "id": "automate", + "color": "#1f77b4", + "desc": "Ada finite-state machine generator" + }, + { + "id": "adabots", + "color": "#1f77b4", + "desc": "Learn Ada by programming Minecraft robots" + }, + { + "id": "gnatformat", + "color": "#1f77b4", + "desc": "Opinionated code formatter for the Ada language" + }, + { + "id": "matreshka_spikedog_awsd", + "color": "#1f77b4", + "desc": "Web-application server. API library" + }, + { + "id": "rewriters", + "color": "#1f77b4", + "desc": "Easy, yet advanced manipulation of Ada code" + }, + { + "id": "list_image", + "color": "#1f77b4", + "desc": "helper to dump iterable containers with customizable style" + }, + { + "id": "gnatcoll_syslog", + "color": "#1f77b4", + "desc": "GNAT Components Collection - syslog binding" + }, + { + "id": "nrf5x_hal", + "color": "darkcyan", + "desc": "Drivers and HAL for the Nordic nRF5X micro-controller family" + }, + { + "id": "markdown", + "color": "#1f77b4", + "desc": "Markdown parser (draft)" + }, + { + "id": "avrada_mcu", + "color": "darkcyan", + "desc": "Device (MCU) specific definitions for AVR microcontrollers" + }, + { + "id": "wayland_cursor_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for libwayland-cursor" + }, + { + "id": "muntsos_raspberrypi4", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi4 targets" + }, + { + "id": "gnat_xtensa_esp32_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - ESP32 cross-compiler" + }, + { + "id": "protobuf", + "color": "#1f77b4", + "desc": "Google Protocol Buffers implementation in Ada" + }, + { + "id": "dependency_graph_extractor", + "color": "#1f77b4", + "desc": "Extract dependency information from Ada projects" + }, + { + "id": "gfx_rasteriser", + "color": "#1f77b4", + "desc": "Modular Portable Graphics Library, Primitive's Rasteriser" + }, + { + "id": "serverfaces_unit", + "color": "#1f77b4", + "desc": "Web Server Faces JSR 252, JSR 314 and JSR 344 (Testing framework)" + }, + { + "id": "libadalang_tools", + "color": "#1f77b4", + "desc": "Ada semantic analysis library extension and tools" + }, + { + "id": "hmac", + "color": "#1f77b4", + "desc": "HMAC implemented in Ada" + }, + { + "id": "anagram", + "color": "#1f77b4", + "desc": "Grammar handling and parser generation Ada library" + }, + { + "id": "lvgl_ada_simulator", + "color": "#1f77b4", + "desc": "Native simulator of an LVGL display" + }, + { + "id": "adasat", + "color": "#1f77b4", + "desc": "Implementation of a DPLL-based SAT solver in Ada." + }, + { + "id": "texcad", + "color": "#1f77b4", + "desc": "TeXCAD is a program for drawing or retouching {picture}s in LaTeX" + }, + { + "id": "emacs_gpr_query", + "color": "#1f77b4", + "desc": "Emacs xref backend using information output by GNAT compiler." + }, + { + "id": "virtapu", + "color": "#1f77b4", + "desc": "A virtual Audio Processing Unit to simulate 8-bit era game sounds" + }, + { + "id": "ada_gui", + "color": "#1f77b4", + "desc": "An Ada-oriented GUI" + }, + { + "id": "elada", + "color": "#1f77b4", + "desc": "Expression Language Library (JSR245)" + }, + { + "id": "intl", + "color": "#1f77b4", + "desc": "NLS thin Ada binding" + }, + { + "id": "gnatcoll_gmp", + "color": "#1f77b4", + "desc": "GNAT Components Collection - GNU Multiple Precision Arithmetic binding" + }, + { + "id": "adare_dilithium5", + "color": "#1f77b4", + "desc": "Post Quantum Computer Resistant Cryptograph Sign, Dilithium5 Ada bind." + }, + { + "id": "gtkada", + "color": "#1f77b4", + "desc": "An Ada graphical toolkit based on Gtk+" + }, + { + "id": "gid", + "color": "#1f77b4", + "desc": "Generic Image Decoder - decode a broad variety of image formats" + }, + { + "id": "rsfile", + "color": "#1f77b4", + "desc": "Randomly pick a file with probability proportional to its size" + }, + { + "id": "optional", + "color": "#1f77b4", + "desc": "Optional values a la java.lang.Optional" + }, + { + "id": "dg_loada", + "color": "#1f77b4", + "desc": "dg_loada loads (restores) legacy DG AOS/VS DUMP_II files" + }, + { + "id": "emacs_gpr_mode", + "color": "#1f77b4", + "desc": "parser for Emacs gpr mode" + }, + { + "id": "minirest", + "color": "#1f77b4", + "desc": "Minimalist Ada REST client library" + }, + { + "id": "hirtos_separation_kernel", + "color": "#1f77b4", + "desc": "High-Integrity RTOS Separation Kernel" + }, + { + "id": "a0b_gpio", + "color": "darkcyan", + "desc": "A0B GIOP API" + }, + { + "id": "z_compression", + "color": "#1f77b4", + "desc": "Standalone version of the Zlib Deflate compression algorithm" + }, + { + "id": "emojis", + "color": "#1f77b4", + "desc": "A library to replace names between colons with emojis" + }, + { + "id": "remoteio", + "color": "darkcyan", + "desc": "Remote I/O Protocol Client Library for GNAT Ada" + }, + { + "id": "matreshka_sql_firebird", + "color": "#1f77b4", + "desc": "Firebird SQL binding for Ada" + }, + { + "id": "a0b_armv7m_systick_clock_timer", + "color": "darkcyan", + "desc": "A0B Monotonic Clock and Timer by ARMv7M SysTick" + }, + { + "id": "lispcli", + "color": "#1f77b4", + "desc": "Simple program for exploring tiny lisp" + }, + { + "id": "atari_exe_tools", + "color": "#1f77b4", + "desc": "Atari tools for for handling EXE-files" + }, + { + "id": "bbs_simcpu", + "color": "#1f77b4", + "desc": "CPU Simulator for multiple CPUs" + }, + { + "id": "linux_hal", + "color": "darkcyan", + "desc": "HAL drivers for Linux userspace" + }, + { + "id": "play_2048", + "color": "#1f77b4", + "desc": "2048 game: merge tiles with the same number until you add up to 2048" + }, + { + "id": "simple_logging", + "color": "#1f77b4", + "desc": "Simple logging to console" + }, + { + "id": "orka_numerics", + "color": "#1f77b4", + "desc": "Tensors (multidimensional arrays) and integrators" + }, + { + "id": "garlic", + "color": "#1f77b4", + "desc": "GNAT Library for Ada Distributed Environment (garlic)" + }, + { + "id": "clic", + "color": "#1f77b4", + "desc": "Command Line Interface Components" + }, + { + "id": "gnatcoll_postgres", + "color": "#1f77b4", + "desc": "GNAT Components Collection - postgres" + }, + { + "id": "bbs_embed_common", + "color": "darkcyan", + "desc": "Abstract hardware drivers and drivers for some i2c bus devices." + }, + { + "id": "orka_simd", + "color": "#1f77b4", + "desc": "Bindings for x86 SIMD extensions like SSE, AVX2, FMA, F16C" + }, + { + "id": "libgnatdoc", + "color": "#1f77b4", + "desc": "GNAT Documentation Generation Tool (as a library)" + }, + { + "id": "bit_sets", + "color": "#1f77b4", + "desc": "A packed boolean array that saves space and is performant" + }, + { + "id": "stephes_ada_library", + "color": "#1f77b4", + "desc": "Stephe's Ada library; miscellaneous useful stuff." + }, + { + "id": "matreshka_servlet", + "color": "#1f77b4", + "desc": "Servlet API" + }, + { + "id": "a0b_atsam3x8e", + "color": "darkcyan", + "desc": "A0B ATSAM3X8E MCU Support" + }, + { + "id": "openglada", + "color": "#1f77b4", + "desc": "Thick Ada binding for OpenGL" + }, + { + "id": "asfml", + "color": "#1f77b4", + "desc": "Ada binding to SFML, the Simple and Fast Multimedia Library" + }, + { + "id": "simple_regex", + "color": "#1f77b4", + "desc": "Port of Rob Pike's simple regex from the Practice of Programming." + }, + { + "id": "enet_stm32", + "color": "#1f77b4", + "desc": "ENet driver for STM32" + }, + { + "id": "geste_examples", + "color": "#1f77b4", + "desc": "Example for the GESTE game engine" + }, + { + "id": "esp_idf", + "color": "darkcyan", + "desc": "Ada binding for the ESP-IDF SDK" + }, + { + "id": "orka_tensors_cpu", + "color": "#1f77b4", + "desc": "Tensors using SIMD instructions on the CPU" + }, + { + "id": "emacs_wisi", + "color": "#1f77b4", + "desc": "Ada code for Emacs wisi ELPA package" + }, + { + "id": "matreshka_amf_ocl", + "color": "#1f77b4", + "desc": "The UML OCL for AMF" + }, + { + "id": "ews", + "color": "#1f77b4", + "desc": "Embedded Web Server" + }, + { + "id": "sdlada", + "color": "#1f77b4", + "desc": "Ada 2012 SDL 2.x bindings." + }, + { + "id": "enet", + "color": "#1f77b4", + "desc": "Ada Embedded Network Stack" + }, + { + "id": "audio_base", + "color": "#1f77b4", + "desc": "Basic Ada packages for audio applications" + }, + { + "id": "jupyter_kernel", + "color": "#1f77b4", + "desc": "Jupyter Kernel for Ada" + }, + { + "id": "encryption_utilities", + "color": "#1f77b4", + "desc": "Utility programs for the encryption algorithms included in the PragmARC" + }, + { + "id": "wikibook", + "color": "#1f77b4", + "desc": "WikiBook Ada Programing" + }, + { + "id": "admpfr", + "color": "#1f77b4", + "desc": "Ada bindings for MPFR" + }, + { + "id": "iso", + "color": "#1f77b4", + "desc": "ISO Standard references for Ada such as 1366 & 4217 (Country & Currency)" + }, + { + "id": "json", + "color": "#1f77b4", + "desc": "An Ada 2012 library for parsing JSON" + }, + { + "id": "aws", + "color": "#1f77b4", + "desc": "Ada Web Server" + }, + { + "id": "win32ada", + "color": "#1f77b4", + "desc": "Ada API to the Windows library" + }, + { + "id": "usb_embedded", + "color": "darkcyan", + "desc": "An Ada USB stack for embedded devices" + }, + { + "id": "simh_tapes", + "color": "#1f77b4", + "desc": "Library to handle SimH Standard magnetic tape image files" + }, + { + "id": "openglada_text", + "color": "#1f77b4", + "desc": "Text rendering library for OpenGLAda" + }, + { + "id": "uxstrings", + "color": "#1f77b4", + "desc": "Unicode Extended Strings utilities" + }, + { + "id": "eeprom_i2c", + "color": "darkcyan", + "desc": "EEPROM I2C drivers library for embedded platforms" + }, + { + "id": "alr2appimage", + "color": "#1f77b4", + "desc": "Tool to create an AppImage executable from an Alire crate" + }, + { + "id": "gnatcoll_omp", + "color": "#1f77b4", + "desc": "GNAT Components Collection - OpenMP binding" + }, + { + "id": "mine_detector", + "color": "#1f77b4", + "desc": "The Gnoga/Ada-GUI version of Mine Detector" + }, + { + "id": "yass", + "color": "#1f77b4", + "desc": "Static website generator" + }, + { + "id": "gnatcoll_python3", + "color": "#1f77b4", + "desc": "GNAT Components Collection - python3 binding" + }, + { + "id": "saatana", + "color": "purple", + "desc": "SPARK/Ada Algorithms Targeting Advanced Network Applications" + }, + { + "id": "rejuvenation", + "color": "#1f77b4", + "desc": "Analysis and manipulation of Ada code based on concrete patterns" + }, + { + "id": "lace_math", + "color": "#1f77b4", + "desc": "Provides an Ada package family covering pure and applied mathematics." + }, + { + "id": "orka_transforms", + "color": "#1f77b4", + "desc": "Library to transform vectors, matrices, and quaternions using SIMD" + }, + { + "id": "orka_types", + "color": "#1f77b4", + "desc": "Data types for Orka" + }, + { + "id": "lal_refactor", + "color": "#1f77b4", + "desc": "Source code refactoring utilities for the Ada language" + }, + { + "id": "matreshka_fastcgi", + "color": "#1f77b4", + "desc": "FastCGI implementation (demo)" + }, + { + "id": "a0b_stm32f401", + "color": "darkcyan", + "desc": "A0B: STM32F401 base and SVD package" + }, + { + "id": "opentoken", + "color": "#1f77b4", + "desc": "facility for performing token analysis and parsing within Ada" + }, + { + "id": "hangman", + "color": "#1f77b4", + "desc": "Hangman game for the console" + }, + { + "id": "pygamer_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the AdaFruit PyGamer" + }, + { + "id": "gnat_avr_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - AVR cross-compiler" + }, + { + "id": "ocarina_lib", + "color": "#1f77b4", + "desc": "Ocarina is a stand-alone AADL model processor, written in Ada." + }, + { + "id": "gnatdist_garlic", + "color": "#1f77b4", + "desc": "The configuration tool gnatdist for GARLIC" + }, + { + "id": "universal_text_file", + "color": "#1f77b4", + "desc": "Proposed universal format for Unicode text files" + }, + { + "id": "bbt", + "color": "#1f77b4", + "desc": "Black box test runner" + }, + { + "id": "muntsos_raspberrypi5", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi5 targets" + }, + { + "id": "rclada", + "color": "#1f77b4", + "desc": "ROS2 Ada Client Library" + }, + { + "id": "mos6502_create_nop", + "color": "#1f77b4", + "desc": "Create NOP ROM" + }, + { + "id": "midi", + "color": "darkcyan", + "desc": "Library to encode and decode MIDI messages" + }, + { + "id": "printer_toolkit", + "color": "#1f77b4", + "desc": "Printer toolkit to write reports" + }, + { + "id": "webif_example", + "color": "darkcyan", + "desc": "Example usage of simple web interface library." + }, + { + "id": "mage_hat", + "color": "#1f77b4", + "desc": "A hat that jumps around and behaves magically" + }, + { + "id": "image_io", + "color": "#1f77b4", + "desc": "Output in BMP,PPM,QOI;input in BMP,GIF,JPG,PNG,PNM,QOI,TGA" + }, + { + "id": "openapi_server", + "color": "#1f77b4", + "desc": "OpenAPI library to build REST server applications" + }, + { + "id": "inotify", + "color": "#1f77b4", + "desc": "Monitor filesystem events using Linux' inotify API" + }, + { + "id": "lzmada", + "color": "#1f77b4", + "desc": "Ada LZMA Library Binding" + }, + { + "id": "gnat_arm_elf", + "color": "#1f77b4", + "desc": "The GNAT Ada compiler - ARM cross-compiler" + }, + { + "id": "ansiada", + "color": "#1f77b4", + "desc": "ANSI escape sequences" + }, + { + "id": "labs_solar_system", + "color": "#1f77b4", + "desc": "A set of SDL-based exercises to learn Ada" + }, + { + "id": "raspberry_bsp", + "color": "#1f77b4", + "desc": "Board Support package for Raspberry PI v1, v2 and B+" + }, + { + "id": "resources", + "color": "#1f77b4", + "desc": "Utility library to handle project resources at run-time" + }, + { + "id": "vaton", + "color": "purple", + "desc": "Verified Ascii To Number conversion written in Ada/SPARK" + }, + { + "id": "prettier_ada", + "color": "#1f77b4", + "desc": "Port of the Prettier formatter to Ada" + }, + { + "id": "servletada", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (Core)" + }, + { + "id": "orka_awt", + "color": "#1f77b4", + "desc": "Ada Window Toolkit" + }, + { + "id": "utilada_unit", + "color": "#1f77b4", + "desc": "Utility Library testing framework with Ahven" + }, + { + "id": "matreshka_sql_mysql", + "color": "#1f77b4", + "desc": "MySQL binding for Ada" + }, + { + "id": "a0b_atsam3x8e_tc5_timer", + "color": "darkcyan", + "desc": "A0B ATSAM3X8E High Resulotion Timer on top of TC5" + }, + { + "id": "gnatprove", + "color": "#1f77b4", + "desc": "Automatic formal verification of SPARK code" + }, + { + "id": "servletada_ews", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (EWS)" + }, + { + "id": "freetypeada", + "color": "#1f77b4", + "desc": "Thick binding to the FreeType library" + }, + { + "id": "bb_pico_bsp", + "color": "darkcyan", + "desc": "Ada BSP for the Keyboard Featherwing + RPI PICO" + }, + { + "id": "loadcpm", + "color": "#1f77b4", + "desc": "Write CP/M (or other similar binary) to floppy disk image" + }, + { + "id": "a0b_atsam3x8e_gpio", + "color": "darkcyan", + "desc": "A0B ATSAM3X8E GPIO/EXTI" + }, + { + "id": "hirtos", + "color": "#1f77b4", + "desc": "High-Integrity RTOS" + }, + { + "id": "microbit_examples", + "color": "darkcyan", + "desc": "Examples and tutorials for Ada on the BBC micro:bit" + }, + { + "id": "basalt", + "color": "purple", + "desc": "Collection of formally verified building blocks" + }, + { + "id": "specfun", + "color": "#1f77b4", + "desc": "Native Ada library of special functions (e.g., beta, gamma)" + }, + { + "id": "muntsos_aarch64", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for AArch64 targets" + }, + { + "id": "itsybitsy_rp2040_bsp", + "color": "darkcyan", + "desc": "Board support package for Arduino ItsyBitsy RP2040" + }, + { + "id": "cbsg", + "color": "#1f77b4", + "desc": "Corporate Bullshit Generator library" + }, + { + "id": "spawn", + "color": "#1f77b4", + "desc": "A simple library to spawn processes and communicate with them." + }, + { + "id": "ncursesada", + "color": "#1f77b4", + "desc": "Ada binding to the ncurses text user interface library" + }, + { + "id": "dynamo", + "color": "#1f77b4", + "desc": "Dynamo Ada Generator" + }, + { + "id": "pico_bsp", + "color": "darkcyan", + "desc": "Board support package for Raspberry Pi Pico" + }, + { + "id": "scripted_testing", + "color": "#1f77b4", + "desc": "Integration testing" + }, + { + "id": "gnatcoll_sqlite", + "color": "#1f77b4", + "desc": "GNAT Components Collection - sqlite" + }, + { + "id": "slip", + "color": "purple", + "desc": "SLIP Protocol Implementation" + }, + { + "id": "chipmunk2d", + "color": "#1f77b4", + "desc": "Ada bindings for Chipmunk2D" + }, + { + "id": "ltp_305", + "color": "darkcyan", + "desc": "Driver for Pimoroni LED" + }, + { + "id": "lace_box2d", + "color": "#1f77b4", + "desc": "Provides a thin Ada binding to the 'box2d' C++ project." + }, + { + "id": "getada", + "color": "#1f77b4", + "desc": "The unofficial mac and linux installer for Alire." + }, + { + "id": "toml_slicer", + "color": "#1f77b4", + "desc": "Edit TOML files directly without parsing" + }, + { + "id": "image_random", + "color": "#1f77b4", + "desc": "True random numbers from a digital camera " + }, + { + "id": "zipada", + "color": "#1f77b4", + "desc": "Manage Zip Archives and raw BZip2 and LZMA streams" + }, + { + "id": "bbqueue", + "color": "purple", + "desc": "DMA friendly lock-free BipBuffer" + }, + { + "id": "edc_client", + "color": "darkcyan", + "desc": "Client library for: github.com/hgrodriguez/embedded-dashboard-console" + }, + { + "id": "mos6502_create_reset", + "color": "#1f77b4", + "desc": "Create ROM with reset vector" + }, + { + "id": "servletada_unit", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (Testing framework)" + }, + { + "id": "keystoreada", + "color": "#1f77b4", + "desc": "Ada Keystore" + }, + { + "id": "excel_writer", + "color": "#1f77b4", + "desc": "Produce Excel spreadsheets" + }, + { + "id": "lined", + "color": "#1f77b4", + "desc": "Ada Implementation of the Line Editor from Software Tools" + }, + { + "id": "hp41cx_tools", + "color": "#1f77b4", + "desc": "HP-41CX emulator Tools" + }, + { + "id": "lea", + "color": "#1f77b4", + "desc": "LEA is a Lightweight Editor for Ada " + }, + { + "id": "orka_plugin_terrain", + "color": "#1f77b4", + "desc": "Orka plug-in for adaptive tessellated flattened spheroids" + }, + { + "id": "qmc5883", + "color": "#1f77b4", + "desc": "Driver for QMC5883L magnetic sensor" + }, + { + "id": "lace_swig", + "color": "#1f77b4", + "desc": "Provides packages required by bindings produced by the 'swig4ada' tool." + }, + { + "id": "password_gen", + "color": "#1f77b4", + "desc": "A password generator using Ada-GUI/Gnoga" + }, + { + "id": "libsimpleio", + "color": "darkcyan", + "desc": "Linux Simple I/O Library" + }, + { + "id": "blake2s", + "color": "purple", + "desc": "SPARK83 implementation of the BLAKE2s hash function" + }, + { + "id": "libhello", + "color": "#1f77b4", + "desc": "Basic library demonstration project" + }, + { + "id": "orka_plugin_atmosphere", + "color": "#1f77b4", + "desc": "Orka plug-in for precomputed atmospheric scattering" + }, + { + "id": "avltrees", + "color": "#1f77b4", + "desc": "Threaded AVL trees library for Ada" + }, + { + "id": "lace_opengl", + "color": "#1f77b4", + "desc": "Provides an openGL engine." + }, + { + "id": "muntsos_raspberrypi3", + "color": "darkcyan", + "desc": "MuntsOS Embedded Linux support for RaspberryPi3 targets" + }, + { + "id": "lace_physics", + "color": "#1f77b4", + "desc": "Provides 2D/3D rigid body dynamics simulation." + }, + { + "id": "gnatcoll_xref", + "color": "#1f77b4", + "desc": "GNAT Components Collection - xref" + }, + { + "id": "awa", + "color": "#1f77b4", + "desc": "Ada Web Application" + }, + { + "id": "xia", + "color": "#1f77b4", + "desc": "Implements XPath 1.0 in Ada" + }, + { + "id": "ado_sqlite", + "color": "#1f77b4", + "desc": "Ada Database Objects (SQLite)" + }, + { + "id": "stopwatch", + "color": "#1f77b4", + "desc": "Keep track of elapsed time" + }, + { + "id": "lace_c_math", + "color": "#1f77b4", + "desc": "A binding to the C math code used by box2d & bullet bindings." + }, + { + "id": "qplt", + "color": "#1f77b4", + "desc": "An Ada-GUI program to quickly produce a plot of a data set" + }, + { + "id": "splitter", + "color": "#1f77b4", + "desc": "A function to emulate \"split\" as implemented in Ruby" + }, + { + "id": "ajunitgen", + "color": "#1f77b4", + "desc": "Generator of JUnit-compatible XML reports" + }, + { + "id": "microbit_bsp", + "color": "darkcyan", + "desc": "Board Support Package for the BBC micro:bit v1" + }, + { + "id": "st7789", + "color": "darkcyan", + "desc": "SPI based driver for the ST7789 TFT display" + }, + { + "id": "embedded_components", + "color": "darkcyan", + "desc": "Platform agnostic drivers to interface external components" + }, + { + "id": "cashe", + "color": "#1f77b4", + "desc": "A fixed-point decimal money library written in Ada." + }, + { + "id": "spat", + "color": "purple", + "desc": "SPAT - SPARK Proof Analysis Tool" + }, + { + "id": "tlsada", + "color": "#1f77b4", + "desc": "Bindings for libtls" + }, + { + "id": "apdf", + "color": "#1f77b4", + "desc": "Portable package for producing dynamically PDF documents" + }, + { + "id": "spark_unbound", + "color": "purple", + "desc": "Unbound data structures in Ada-Spark" + }, + { + "id": "servletada_aws", + "color": "#1f77b4", + "desc": "Web Servlet Library following JSR 154, JSR 315 (AWS)" + }, + { + "id": "epoll", + "color": "#1f77b4", + "desc": "Linux epoll binding" + }, + { + "id": "gnatdoc", + "color": "#1f77b4", + "desc": "GNAT Documentation Generation Tool" + }, + { + "id": "wayland_protocols_ada", + "color": "#1f77b4", + "desc": "Ada 2012 bindings for various Wayland protocols" + }, + { + "id": "linenoise_ada", + "color": "#1f77b4", + "desc": "Bindings to the Linenoise line editing library" + }, + { + "id": "sciada", + "color": "#1f77b4", + "desc": "Collection of Scientific Operations" + }, + { + "id": "libkeccak", + "color": "purple", + "desc": "SHA-3 and related algorithms" + }, + { + "id": "itsybitsy_bsp", + "color": "darkcyan", + "desc": "Board support package for Arduino ItsyBitsy" + }, + { + "id": "dotenv", + "color": "#1f77b4", + "desc": "Loads environment variables from .env for Ada projects." + }, + { + "id": "templates_parser", + "color": "#1f77b4", + "desc": "Templates Parser: File generation from templates in Ada" + }, + { + "id": "tresses", + "color": "darkcyan", + "desc": "Synth library inspired by Mutable Instruments Braids" + }, + { + "id": "xmlada", + "color": "#1f77b4", + "desc": "The XML/Ada toolkit" + }, + { + "id": "keypadder", + "color": "#1f77b4", + "desc": "Programmable virtual keypad for your Linux desktop" + }, + { + "id": "ada_voxel_space_demo", + "color": "#1f77b4", + "desc": "Voxel Space render engine demo in Ada" + }, + { + "id": "ppag", + "color": "#1f77b4", + "desc": "First steps with Gnoga" + }, + { + "id": "endianness", + "color": "purple", + "desc": "Convenience subprograms to convert between Big- and Little-endianness" + }, + { + "id": "hello", + "color": "#1f77b4", + "desc": "'Hello, world!' demonstration project" + }, + { + "id": "pragmarc", + "color": "#1f77b4", + "desc": "The PragmAda Reusable Components" + }, + { + "id": "cobs", + "color": "purple", + "desc": "Consistent Overhead Byte Stuffing (COBS) encoder/decoder" + }, + { + "id": "wayland_ada_info", + "color": "#1f77b4", + "desc": "A tool to display information about supported Wayland interfaces" + }, + { + "id": "libgpr", + "color": "#1f77b4", + "desc": "GNAT Project File Library" + }, + { + "id": "checksum", + "color": "#1f77b4", + "desc": "Algorithms for error-checking" + }, + { + "id": "a0b_exti", + "color": "darkcyan", + "desc": "A0B: EXTI API" + }, + { + "id": "orka_tensors_gpu", + "color": "#1f77b4", + "desc": "Tensors using compute shaders on the GPU" + }, + { + "id": "mage", + "color": "#1f77b4", + "desc": "Mini Ada Game Engine - A very simple game engine written in Ada" + }, + { + "id": "bbs_lisp", + "color": "darkcyan", + "desc": "Embedable tiny lisp interpreter" + }, + { + "id": "utf8test", + "color": "#1f77b4", + "desc": "Test the terminal behavior when outputting Latin-1 and UTF-8 strings" + }, + { + "id": "wikiada", + "color": "#1f77b4", + "desc": "Wiki Engine with parser and renderer for several wiki syntaxes" + }, + { + "id": "aoa_23", + "color": "#1f77b4", + "desc": "Some Advent of Ada 2023 solutions" + }, + { + "id": "aaa", + "color": "#1f77b4", + "desc": "Alex's Ada Assortment (of miscellaneous utilities)" + } + ], + "links": [ + { + "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": "gnatcoll_iconv", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "matreshka_xml", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "hmc5883", + "target": "hal", + "value": 1 + }, + { + "source": "elevator", + "target": "gnatprove", + "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": "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": "libadalang", + "target": "libgpr2", + "value": 1 + }, + { + "source": "lace_gel_animation_demo", + "target": "lace_gel", + "value": 1 + }, + { + "source": "gnoga", + "target": "simple_components", + "value": 1 + }, + { + "source": "gnoga", + "target": "uxstrings", + "value": 1 + }, + { + "source": "openglada_glfw", + "target": "openglada", + "value": 1 + }, + { + "source": "pygamer_simulator", + "target": "asfml", + "value": 1 + }, + { + "source": "pygamer_simulator", + "target": "hal", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll_gmp", + "value": 1 + }, + { + "source": "libgpr2", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "dummyserver", + "target": "json", + "value": 1 + }, + { + "source": "openglada_images", + "target": "gid", + "value": 1 + }, + { + "source": "openglada_images", + "target": "openglada", + "value": 1 + }, + { + "source": "adacl", + "target": "gnat_native", + "value": 1 + }, + { + "source": "db_maker", + "target": "pragmarc", + "value": 1 + }, + { + "source": "db_maker", + "target": "ada_gui", + "value": 1 + }, + { + "source": "wordlist", + "target": "aaa", + "value": 1 + }, + { + "source": "wordlist", + "target": "ada_toml", + "value": 1 + }, + { + "source": "wordlist", + "target": "resources", + "value": 1 + }, + { + "source": "matreshka_amf", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_amf", + "target": "matreshka_xml", + "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": "axmpp", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "ado_mysql", + "target": "ado", + "value": 1 + }, + { + "source": "spawn_glib", + "target": "gtkada", + "value": 1 + }, + { + "source": "eagle_lander", + "target": "gtkada", + "value": 1 + }, + { + "source": "are", + "target": "elada", + "value": 1 + }, + { + "source": "are", + "target": "utilada", + "value": 1 + }, + { + "source": "are", + "target": "xmlada", + "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": "light_arduino_due", + "target": "a0b_atsam3x8e", + "value": 1 + }, + { + "source": "light_arduino_due", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "aicwl", + "target": "gtkada", + "value": 1 + }, + { + "source": "atari_atr_tools", + "target": "adacl", + "value": 1 + }, + { + "source": "lal_highlight", + "target": "gnatcoll_iconv", + "value": 1 + }, + { + "source": "lal_highlight", + "target": "libadalang", + "value": 1 + }, + { + "source": "a0b_stm32f401_gpio", + "target": "a0b_exti", + "value": 1 + }, + { + "source": "a0b_stm32f401_gpio", + "target": "a0b_gpio", + "value": 1 + }, + { + "source": "a0b_stm32f401_gpio", + "target": "a0b_stm32f401", + "value": 1 + }, + { + "source": "matreshka_soap_wsse", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_soap_wsse", + "target": "matreshka_soap", + "value": 1 + }, + { + "source": "wayland_client_ada", + "target": "wayland_ada_scanner", + "value": 1 + }, + { + "source": "a0b_callbacks", + "target": "a0b_base", + "value": 1 + }, + { + "source": "light_fk723m1_zgt6", + "target": "gnat_arm_elf", + "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": "suika_programing", + "target": "chipmunk2d", + "value": 1 + }, + { + "source": "suika_programing", + "target": "raylib", + "value": 1 + }, + { + "source": "suika_programing", + "target": "resources", + "value": 1 + }, + { + "source": "adayaml", + "target": "simple_components", + "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": "utilada_xml", + "target": "utilada", + "value": 1 + }, + { + "source": "utilada_xml", + "target": "xmlada", + "value": 1 + }, + { + "source": "audio_wavefiles", + "target": "audio_base", + "value": 1 + }, + { + "source": "lace_collada", + "target": "lace_math", + "value": 1 + }, + { + "source": "lace_collada", + "target": "lace_xml", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "hmac", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "sha1", + "value": 1 + }, + { + "source": "pbkdf2", + "target": "sha2", + "value": 1 + }, + { + "source": "matreshka_sql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "bbs_webif", + "target": "bbs", + "value": 1 + }, + { + "source": "matreshka_amf_mofext", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_mofext", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "honki_tonks_zivilisationen", + "target": "asfml", + "value": 1 + }, + { + "source": "avrada_rts", + "target": "gnat_avr_elf", + "value": 1 + }, + { + "source": "b2ssum", + "target": "blake2s", + "value": 1 + }, + { + "source": "matreshka_spikedog_api", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_api", + "target": "matreshka_servlet", + "value": 1 + }, + { + "source": "webdriver", + "target": "aws", + "value": 1 + }, + { + "source": "webdriver", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "zipdcf", + "target": "dcf", + "value": 1 + }, + { + "source": "gnatcoll", + "target": "libgpr", + "value": 1 + }, + { + "source": "a0b_stm32f401_tim11_timer", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_stm32f401_tim11_timer", + "target": "a0b_stm32f401", + "value": 1 + }, + { + "source": "cortex_m", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "cortex_m", + "target": "hal", + "value": 1 + }, + { + "source": "bar_code_drawing", + "target": "pragmarc", + "value": 1 + }, + { + "source": "bar_code_drawing", + "target": "ada_gui", + "value": 1 + }, + { + "source": "bar_code_drawing", + "target": "image_io", + "value": 1 + }, + { + "source": "libadalang2xml", + "target": "libadalang", + "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": "openai", + "target": "openapi", + "value": 1 + }, + { + "source": "orka_opengl", + "target": "orka_egl", + "value": 1 + }, + { + "source": "orka_opengl", + "target": "orka_types", + "value": 1 + }, + { + "source": "matreshka_amf_uml", + "target": "matreshka_amf_dd", + "value": 1 + }, + { + "source": "matreshka_amf_uml", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "a0b_armv7m", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_armv7m", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "lmdb_ada", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_python", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "ado", + "target": "utilada", + "value": 1 + }, + { + "source": "ado", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "jwt", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "a0b_time", + "target": "a0b_base", + "value": 1 + }, + { + "source": "gnatcoll_sql", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "security", + "target": "utilada", + "value": 1 + }, + { + "source": "security", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "dashera", + "target": "gtkada", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_twi_i2c", + "target": "a0b_atsam3x8e_gpio", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_twi_i2c", + "target": "a0b_i2c", + "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": "lace_gel", + "target": "lace_opengl", + "value": 1 + }, + { + "source": "lace_gel", + "target": "lace_physics", + "value": 1 + }, + { + "source": "lace_gel", + "target": "sdlada", + "value": 1 + }, + { + "source": "matreshka_spikedog_core", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_spikedog_core", + "target": "matreshka_spikedog_api", + "value": 1 + }, + { + "source": "progress_indicators", + "target": "ansiada", + "value": 1 + }, + { + "source": "pico_examples", + "target": "chests", + "value": 1 + }, + { + "source": "pico_examples", + "target": "pico_bsp", + "value": 1 + }, + { + "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": "light_blackpill_stm32f401", + "target": "a0b_stm32f401", + "value": 1 + }, + { + "source": "gpr_unit_provider", + "target": "libadalang", + "value": 1 + }, + { + "source": "gpr_unit_provider", + "target": "libgpr2", + "value": 1 + }, + { + "source": "a0b_i2c", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_i2c", + "target": "a0b_callbacks", + "value": 1 + }, + { + "source": "bme280", + "target": "hal", + "value": 1 + }, + { + "source": "cheddar", + "target": "gtkada", + "value": 1 + }, + { + "source": "cheddar", + "target": "ocarina_lib", + "value": 1 + }, + { + "source": "cheddar", + "target": "xmlada", + "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": "matreshka_soap", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_soap", + "target": "matreshka_xml", + "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": "minisamd51_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "minisamd51_bsp", + "target": "samd51_hal", + "value": 1 + }, + { + "source": "a0b_stm32f401_dma", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_stm32f401_dma", + "target": "a0b_callbacks", + "value": 1 + }, + { + "source": "a0b_stm32f401_dma", + "target": "a0b_stm32f401", + "value": 1 + }, + { + "source": "ada_pretty", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "utilada_curl", + "target": "utilada", + "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": "azip", + "target": "ini_files", + "value": 1 + }, + { + "source": "azip", + "target": "gwindows", + "value": 1 + }, + { + "source": "azip", + "target": "zipada", + "value": 1 + }, + { + "source": "matreshka_sql_postgresql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "gnatcoll_lzma", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "a0b_timer", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_timer", + "target": "a0b_callbacks", + "value": 1 + }, + { + "source": "a0b_timer", + "target": "a0b_time", + "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": "program_proofs_in_spark", + "target": "gnatprove", + "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": "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": "matreshka_amf_dd", + "target": "matreshka_amf", + "value": 1 + }, + { + "source": "matreshka_amf_dd", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "mold", + "target": "clic", + "value": 1 + }, + { + "source": "mold", + "target": "mold_lib", + "value": 1 + }, + { + "source": "mold", + "target": "simple_logging", + "value": 1 + }, + { + "source": "serverfaces", + "target": "security", + "value": 1 + }, + { + "source": "serverfaces", + "target": "servletada", + "value": 1 + }, + { + "source": "serverfaces", + "target": "utilada", + "value": 1 + }, + { + "source": "matreshka_amf_utp", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_utp", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "minisamd51_example", + "target": "minisamd51_bsp", + "value": 1 + }, + { + "source": "svd2ada", + "target": "xmlada", + "value": 1 + }, + { + "source": "libgnatformat", + "target": "adasat", + "value": 1 + }, + { + "source": "libgnatformat", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "libgnatformat", + "target": "libadalang", + "value": 1 + }, + { + "source": "libgnatformat", + "target": "prettier_ada", + "value": 1 + }, + { + "source": "langkit_support", + "target": "adasat", + "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": "langkit_support", + "target": "prettier_ada", + "value": 1 + }, + { + "source": "tiny_text", + "target": "hal", + "value": 1 + }, + { + "source": "a0b_armv7m_systick_clock", + "target": "a0b_armv7m", + "value": 1 + }, + { + "source": "a0b_armv7m_systick_clock", + "target": "a0b_base", + "value": 1 + }, + { + "source": "wisitoken", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "wisitoken", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emdee", + "target": "gtkada", + "value": 1 + }, + { + "source": "emdee", + "target": "ada_toml", + "value": 1 + }, + { + "source": "globe_3d", + "target": "gid", + "value": 1 + }, + { + "source": "globe_3d", + "target": "zipada", + "value": 1 + }, + { + "source": "utilada_lzma", + "target": "lzmada", + "value": 1 + }, + { + "source": "utilada_lzma", + "target": "utilada", + "value": 1 + }, + { + "source": "gnatcoll_readline", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "sh1107", + "target": "embedded_components", + "value": 1 + }, + { + "source": "bbs_embed_linux", + "target": "bbs", + "value": 1 + }, + { + "source": "bbs_embed_linux", + "target": "bbs_embed_common", + "value": 1 + }, + { + "source": "musicplayer", + "target": "ada_gui", + "value": 1 + }, + { + "source": "musicplayer", + "target": "pragmarc", + "value": 1 + }, + { + "source": "lace_bullet", + "target": "lace_c_math", + "value": 1 + }, + { + "source": "lace_gel_full_demo", + "target": "lace_gel", + "value": 1 + }, + { + "source": "liblal_refactor", + "target": "libadalang_tools", + "value": 1 + }, + { + "source": "liblal_refactor", + "target": "vss", + "value": 1 + }, + { + "source": "blinkenlights", + "target": "bbs", + "value": 1 + }, + { + "source": "blinkenlights", + "target": "bbs_embed_common", + "value": 1 + }, + { + "source": "blinkenlights", + "target": "bbs_embed_linux", + "value": 1 + }, + { + "source": "blinkenlights", + "target": "bbs_webif", + "value": 1 + }, + { + "source": "blinkenlights", + "target": "bbs_simcpu", + "value": 1 + }, + { + "source": "mold_lib", + "target": "ada_toml", + "value": 1 + }, + { + "source": "mold_lib", + "target": "simple_logging", + "value": 1 + }, + { + "source": "lvgl_ada_examples", + "target": "lvgl_ada", + "value": 1 + }, + { + "source": "lvgl_ada_examples", + "target": "lvgl_ada_simulator", + "value": 1 + }, + { + "source": "ashell", + "target": "florist_blady", + "value": 1 + }, + { + "source": "a0b_stm32f401_i2c", + "target": "a0b_i2c", + "value": 1 + }, + { + "source": "a0b_stm32f401_i2c", + "target": "a0b_stm32f401_dma", + "value": 1 + }, + { + "source": "a0b_stm32f401_i2c", + "target": "a0b_stm32f401_gpio", + "value": 1 + }, + { + "source": "gnatcoll_zlib", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "bingada", + "target": "gtkada", + "value": 1 + }, + { + "source": "bingada", + "target": "asfml", + "value": 1 + }, + { + "source": "simcpucli", + "target": "bbs", + "value": 1 + }, + { + "source": "simcpucli", + "target": "bbs_lisp", + "value": 1 + }, + { + "source": "simcpucli", + "target": "bbs_simcpu", + "value": 1 + }, + { + "source": "akt", + "target": "intl", + "value": 1 + }, + { + "source": "akt", + "target": "keystoreada", + "value": 1 + }, + { + "source": "akt", + "target": "utilada", + "value": 1 + }, + { + "source": "akt", + "target": "ada_fuse", + "value": 1 + }, + { + "source": "aoa_22", + "target": "pragmarc", + "value": 1 + }, + { + "source": "orka_plugin_archives", + "target": "dcf", + "value": 1 + }, + { + "source": "orka_plugin_archives", + "target": "orka", + "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": "lace", + "target": "lace_shared", + "value": 1 + }, + { + "source": "openapi", + "target": "security", + "value": 1 + }, + { + "source": "openapi", + "target": "utilada", + "value": 1 + }, + { + "source": "openapi", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "ado_postgresql", + "target": "ado", + "value": 1 + }, + { + "source": "adl_middleware", + "target": "hal", + "value": 1 + }, + { + "source": "wayland_egl_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "rclada_examples", + "target": "rclada", + "value": 1 + }, + { + "source": "lace_xml", + "target": "lace_shared", + "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": "libgnatformat", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "liblal_refactor", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "prettier_ada", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "spawn", + "value": 1 + }, + { + "source": "ada_language_server", + "target": "vss", + "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": "ado_all", + "target": "ado_mysql", + "value": 1 + }, + { + "source": "ado_all", + "target": "ado_postgresql", + "value": 1 + }, + { + "source": "ado_all", + "target": "ado_sqlite", + "value": 1 + }, + { + "source": "utilada_aws", + "target": "aws", + "value": 1 + }, + { + "source": "utilada_aws", + "target": "utilada", + "value": 1 + }, + { + "source": "wordlelib", + "target": "aaa", + "value": 1 + }, + { + "source": "iterators", + "target": "aaa", + "value": 1 + }, + { + "source": "automate", + "target": "uxstrings", + "value": 1 + }, + { + "source": "adabots", + "target": "utilada_curl", + "value": 1 + }, + { + "source": "adabots", + "target": "json", + "value": 1 + }, + { + "source": "gnatformat", + "target": "adasat", + "value": 1 + }, + { + "source": "gnatformat", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatformat", + "target": "libadalang", + "value": 1 + }, + { + "source": "gnatformat", + "target": "prettier_ada", + "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": "rewriters", + "target": "libadalang", + "value": 1 + }, + { + "source": "rewriters", + "target": "rejuvenation", + "value": 1 + }, + { + "source": "gnatcoll_syslog", + "target": "gnatcoll", + "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": "markdown", + "target": "vss", + "value": 1 + }, + { + "source": "avrada_mcu", + "target": "avrada_rts", + "value": 1 + }, + { + "source": "avrada_mcu", + "target": "gnat_avr_elf", + "value": 1 + }, + { + "source": "wayland_cursor_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "protobuf", + "target": "ada_pretty", + "value": 1 + }, + { + "source": "protobuf", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "dependency_graph_extractor", + "target": "libadalang", + "value": 1 + }, + { + "source": "gfx_rasteriser", + "target": "gfx_core", + "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": "libadalang_tools", + "target": "libadalang", + "value": 1 + }, + { + "source": "libadalang_tools", + "target": "templates_parser", + "value": 1 + }, + { + "source": "libadalang_tools", + "target": "vss", + "value": 1 + }, + { + "source": "hmac", + "target": "sha1", + "value": 1 + }, + { + "source": "hmac", + "target": "sha2", + "value": 1 + }, + { + "source": "anagram", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "lvgl_ada_simulator", + "target": "asfml", + "value": 1 + }, + { + "source": "lvgl_ada_simulator", + "target": "lvgl_ada", + "value": 1 + }, + { + "source": "texcad", + "target": "gwindows", + "value": 1 + }, + { + "source": "texcad", + "target": "mathpaqs", + "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": "ada_gui", + "target": "simple_components", + "value": 1 + }, + { + "source": "elada", + "target": "utilada", + "value": 1 + }, + { + "source": "gnatcoll_gmp", + "target": "gnatcoll", + "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": "minirest", + "target": "aaa", + "value": 1 + }, + { + "source": "a0b_gpio", + "target": "a0b_base", + "value": 1 + }, + { + "source": "matreshka_sql_firebird", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_sql_firebird", + "target": "matreshka_sql", + "value": 1 + }, + { + "source": "a0b_armv7m_systick_clock_timer", + "target": "a0b_armv7m", + "value": 1 + }, + { + "source": "a0b_armv7m_systick_clock_timer", + "target": "a0b_base", + "value": 1 + }, + { + "source": "lispcli", + "target": "bbs", + "value": 1 + }, + { + "source": "lispcli", + "target": "bbs_lisp", + "value": 1 + }, + { + "source": "atari_exe_tools", + "target": "adacl", + "value": 1 + }, + { + "source": "bbs_simcpu", + "target": "bbs", + "value": 1 + }, + { + "source": "linux_hal", + "target": "hal", + "value": 1 + }, + { + "source": "play_2048", + "target": "asfml", + "value": 1 + }, + { + "source": "play_2048", + "target": "ada_toml", + "value": 1 + }, + { + "source": "orka_numerics", + "target": "orka_types", + "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": "gnatcoll_postgres", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_postgres", + "target": "gnatcoll_sql", + "value": 1 + }, + { + "source": "bbs_embed_common", + "target": "bbs", + "value": 1 + }, + { + "source": "orka_simd", + "target": "orka_types", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "libadalang", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "libgpr2", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "markdown", + "value": 1 + }, + { + "source": "libgnatdoc", + "target": "vss", + "value": 1 + }, + { + "source": "matreshka_servlet", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "a0b_atsam3x8e", + "target": "a0b_armv7m", + "value": 1 + }, + { + "source": "a0b_atsam3x8e", + "target": "gnat_arm_elf", + "value": 1 + }, + { + "source": "enet_stm32", + "target": "cortex_m", + "value": 1 + }, + { + "source": "enet_stm32", + "target": "enet", + "value": 1 + }, + { + "source": "enet_stm32", + "target": "ethernet", + "value": 1 + }, + { + "source": "geste_examples", + "target": "geste", + "value": 1 + }, + { + "source": "geste_examples", + "target": "sdlada", + "value": 1 + }, + { + "source": "esp_idf", + "target": "hal", + "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": "emacs_wisi", + "target": "stephes_ada_library", + "value": 1 + }, + { + "source": "emacs_wisi", + "target": "wisitoken", + "value": 1 + }, + { + "source": "matreshka_amf_ocl", + "target": "matreshka_amf_uml", + "value": 1 + }, + { + "source": "matreshka_amf_ocl", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "ews", + "target": "xmlada", + "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": "encryption_utilities", + "target": "pragmarc", + "value": 1 + }, + { + "source": "aws", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "aws", + "target": "xmlada", + "value": 1 + }, + { + "source": "usb_embedded", + "target": "bbqueue", + "value": 1 + }, + { + "source": "usb_embedded", + "target": "hal", + "value": 1 + }, + { + "source": "openglada_text", + "target": "freetypeada", + "value": 1 + }, + { + "source": "openglada_text", + "target": "openglada", + "value": 1 + }, + { + "source": "eeprom_i2c", + "target": "hal", + "value": 1 + }, + { + "source": "alr2appimage", + "target": "ada_toml", + "value": 1 + }, + { + "source": "alr2appimage", + "target": "spoon", + "value": 1 + }, + { + "source": "alr2appimage", + "target": "parse_args", + "value": 1 + }, + { + "source": "alr2appimage", + "target": "resources", + "value": 1 + }, + { + "source": "gnatcoll_omp", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "mine_detector", + "target": "ada_gui", + "value": 1 + }, + { + "source": "yass", + "target": "aws", + "value": 1 + }, + { + "source": "yass", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "yass", + "target": "xmlada", + "value": 1 + }, + { + "source": "gnatcoll_python3", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "rejuvenation", + "target": "libadalang", + "value": 1 + }, + { + "source": "lace_math", + "target": "lace_shared", + "value": 1 + }, + { + "source": "orka_transforms", + "target": "orka_simd", + "value": 1 + }, + { + "source": "orka_transforms", + "target": "orka_types", + "value": 1 + }, + { + "source": "lal_refactor", + "target": "adasat", + "value": 1 + }, + { + "source": "lal_refactor", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "lal_refactor", + "target": "libadalang", + "value": 1 + }, + { + "source": "lal_refactor", + "target": "libadalang_tools", + "value": 1 + }, + { + "source": "lal_refactor", + "target": "prettier_ada", + "value": 1 + }, + { + "source": "matreshka_fastcgi", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "a0b_stm32f401", + "target": "a0b_armv7m", + "value": 1 + }, + { + "source": "pygamer_bsp", + "target": "cortex_m", + "value": 1 + }, + { + "source": "pygamer_bsp", + "target": "samd51_hal", + "value": 1 + }, + { + "source": "midi", + "target": "bbqueue", + "value": 1 + }, + { + "source": "midi", + "target": "hal", + "value": 1 + }, + { + "source": "printer_toolkit", + "target": "ansiada", + "value": 1 + }, + { + "source": "webif_example", + "target": "bbs", + "value": 1 + }, + { + "source": "webif_example", + "target": "bbs_webif", + "value": 1 + }, + { + "source": "mage_hat", + "target": "mage", + "value": 1 + }, + { + "source": "image_io", + "target": "pragmarc", + "value": 1 + }, + { + "source": "image_io", + "target": "gid", + "value": 1 + }, + { + "source": "image_io", + "target": "crc_32", + "value": 1 + }, + { + "source": "image_io", + "target": "z_compression", + "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": "labs_solar_system", + "target": "mage", + "value": 1 + }, + { + "source": "vaton", + "target": "spark_unbound", + "value": 1 + }, + { + "source": "prettier_ada", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "prettier_ada", + "target": "vss", + "value": 1 + }, + { + "source": "servletada", + "target": "elada", + "value": 1 + }, + { + "source": "servletada", + "target": "security", + "value": 1 + }, + { + "source": "servletada", + "target": "utilada", + "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": "utilada_unit", + "target": "utilada", + "value": 1 + }, + { + "source": "matreshka_sql_mysql", + "target": "matreshka_league", + "value": 1 + }, + { + "source": "matreshka_sql_mysql", + "target": "matreshka_sql", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_tc5_timer", + "target": "a0b_atsam3x8e", + "value": 1 + }, + { + "source": "servletada_ews", + "target": "ews", + "value": 1 + }, + { + "source": "servletada_ews", + "target": "servletada", + "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": "loadcpm", + "target": "bbs", + "value": 1 + }, + { + "source": "loadcpm", + "target": "bbs_simcpu", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_gpio", + "target": "a0b_atsam3x8e", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_gpio", + "target": "a0b_exti", + "value": 1 + }, + { + "source": "a0b_atsam3x8e_gpio", + "target": "a0b_gpio", + "value": 1 + }, + { + "source": "microbit_examples", + "target": "microbit_bsp", + "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": "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": "pico_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "scripted_testing", + "target": "tash", + "value": 1 + }, + { + "source": "gnatcoll_sqlite", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "gnatcoll_sqlite", + "target": "gnatcoll_sql", + "value": 1 + }, + { + "source": "ltp_305", + "target": "hal", + "value": 1 + }, + { + "source": "lace_box2d", + "target": "lace_c_math", + "value": 1 + }, + { + "source": "getada", + "target": "gnatcoll", + "value": 1 + }, + { + "source": "getada", + "target": "zipada", + "value": 1 + }, + { + "source": "toml_slicer", + "target": "aaa", + "value": 1 + }, + { + "source": "bbqueue", + "target": "atomic", + "value": 1 + }, + { + "source": "edc_client", + "target": "hal", + "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": "keystoreada", + "target": "utilada", + "value": 1 + }, + { + "source": "lined", + "target": "pragmarc", + "value": 1 + }, + { + "source": "hp41cx_tools", + "target": "adacl", + "value": 1 + }, + { + "source": "hp41cx_tools", + "target": "gnat_native", + "value": 1 + }, + { + "source": "lea", + "target": "ini_files", + "value": 1 + }, + { + "source": "lea", + "target": "gwindows", + "value": 1 + }, + { + "source": "lea", + "target": "zipada", + "value": 1 + }, + { + "source": "lea", + "target": "hac", + "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": "qmc5883", + "target": "hal", + "value": 1 + }, + { + "source": "password_gen", + "target": "ada_gui", + "value": 1 + }, + { + "source": "password_gen", + "target": "pragmarc", + "value": 1 + }, + { + "source": "orka_plugin_atmosphere", + "target": "orka", + "value": 1 + }, + { + "source": "orka_plugin_atmosphere", + "target": "orka_transforms", + "value": 1 + }, + { + "source": "lace_opengl", + "target": "lace_collada", + "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": "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": "awa", + "target": "ado", + "value": 1 + }, + { + "source": "awa", + "target": "aws", + "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": "utilada", + "value": 1 + }, + { + "source": "awa", + "target": "utilada_xml", + "value": 1 + }, + { + "source": "awa", + "target": "wikiada", + "value": 1 + }, + { + "source": "xia", + "target": "xmlada", + "value": 1 + }, + { + "source": "ado_sqlite", + "target": "ado", + "value": 1 + }, + { + "source": "lace_c_math", + "target": "lace_math", + "value": 1 + }, + { + "source": "lace_c_math", + "target": "lace_swig", + "value": 1 + }, + { + "source": "qplt", + "target": "pragmarc", + "value": 1 + }, + { + "source": "qplt", + "target": "ada_gui", + "value": 1 + }, + { + "source": "ajunitgen", + "target": "xml_ez_out", + "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": "st7789", + "target": "adl_middleware", + "value": 1 + }, + { + "source": "st7789", + "target": "hal", + "value": 1 + }, + { + "source": "embedded_components", + "target": "adl_middleware", + "value": 1 + }, + { + "source": "embedded_components", + "target": "hal", + "value": 1 + }, + { + "source": "cashe", + "target": "iso", + "value": 1 + }, + { + "source": "spat", + "target": "si_units", + "value": 1 + }, + { + "source": "apdf", + "target": "gid", + "value": 1 + }, + { + "source": "servletada_aws", + "target": "servletada", + "value": 1 + }, + { + "source": "servletada_aws", + "target": "utilada_aws", + "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": "wayland_protocols_ada", + "target": "wayland_ada_scanner", + "value": 1 + }, + { + "source": "wayland_protocols_ada", + "target": "wayland_client_ada", + "value": 1 + }, + { + "source": "itsybitsy_bsp", + "target": "hal", + "value": 1 + }, + { + "source": "itsybitsy_bsp", + "target": "rp2040_hal", + "value": 1 + }, + { + "source": "templates_parser", + "target": "xmlada", + "value": 1 + }, + { + "source": "tresses", + "target": "midi", + "value": 1 + }, + { + "source": "keypadder", + "target": "aws", + "value": 1 + }, + { + "source": "keypadder", + "target": "ada_toml", + "value": 1 + }, + { + "source": "ada_voxel_space_demo", + "target": "sdlada", + "value": 1 + }, + { + "source": "ppag", + "target": "gnoga", + "value": 1 + }, + { + "source": "hello", + "target": "libhello", + "value": 1 + }, + { + "source": "wayland_ada_info", + "target": "wayland_protocols_ada", + "value": 1 + }, + { + "source": "libgpr", + "target": "xmlada", + "value": 1 + }, + { + "source": "a0b_exti", + "target": "a0b_base", + "value": 1 + }, + { + "source": "a0b_exti", + "target": "a0b_callbacks", + "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": "mage", + "target": "sdlada", + "value": 1 + }, + { + "source": "bbs_lisp", + "target": "bbs", + "value": 1 + }, + { + "source": "wikiada", + "target": "utilada", + "value": 1 + }, + { + "source": "aoa_23", + "target": "pragmarc", + "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..196aa5ca --- /dev/null +++ b/docs/catalog-format-spec.md @@ -0,0 +1,1213 @@ +# 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" + ``` + + Path fragments in this table must use portable format, that is, '/' for path + separation. Alire will take care of using the native separator when setting + these variables. + + 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`). + + The escaping `"\$"` can be used to prevent the expansion of a + dollar-bracketed expression. + + 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. Actions are executed in the order they are + defined in the manifest. The general action syntax is: + + ```toml + [[actions]] + type = + command = + directory = # Optional + ``` + + `` 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. + + `directory` is an optional portable relative path (forward-slashed) from the + crate root, in which the action will be executed. This directory must exist + or the action will error. Actions are executed by default in the crate root. + + `` 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. The crate is not built beforehand when a test + action is defined so, if a build is necessary, it should be explicitly + given as part of the action sequence. + + 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 + ``` + + The aforementioned TOML syntax is valid when there is only one conditional + action. For multiple conditional actions, one can write: + + ```toml + [[actions]] + [actions.'case(os)'.linux] + # Regular contents of an action, applying to the Linux case + [actions.'case(os)'.macos] + # macOS case + + [[actions]] + # Another action, that needs not be also conditional (but could be). + ``` + + - `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*). + + - `binary`: optional (defauts to false) boolean used to design the origin + as binary. Binary origins are not compiled and can optionally use dynamic + expressions to narrow down the platform to which they apply. An origin + using a dynamic expression must be tagged as binary; see the + example below. + + 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" + ``` + + ```toml + # A binary origin denoting a compiler + [origin."case(os)".linux."case(host-arch)".x86-64] + url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-12.1.0-1/gnat-x86_64-linux-12.1.0-1.tar.gz" + hashes = ["sha256:df1f36b306359d528799b1de8629a793523347a90c9d4b72efd23c62a7279555"] + binary = true + ``` + + - `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` + - `Source_Encoding` + - `Compiler_Default` + - `UTF-8` + + 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 during resolution. At this time, the supported +platforms are Arch, CentOS, Debian, Fedora, Homebrew, MacPorts, MSYS2, RHEL, +SUSE/openSUSE, and Ubuntu; do not hesitate to contact us if you would like to +maintain other distributions. + +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: `freebsd`, `linux`, + `macos`, `windows`, and `os-unknown`. + + - `distribution`: name of the Linux distribution or name of the software + distribution platform if running on a different OS. Currently supported + values are: `arch`, `centos`, `debian`, `fedora`, + `homebrew`, `macports`, `msys2`, `rhel`, `suse`, `ubuntu`, and + `distribution-unknown`. + + - `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 : Sort_Algorith_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) 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 an abstract 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/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..40b2441c --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,406 @@ +# 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` . +This may be done for the duration of a terminal session by running the command below: +```bash +$ export PATH="/bin/:$PATH" +``` +Those wanting to keep this path permanently in their `PATH` environment may do so by pasting the above command into the `.profile` file of their user's account. + +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/) (except in the cases listed below). 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. + +`msys2` will not be installed +- when running `alr settings`, to allow uninterrupted configuration, and setting + of `msys2` location (see `alr help settings`), or +- when you already have a msys2 installation in your PATH (more precisely, if `pacman` + is found in your PATH.) + - In this case, `alr` will reuse your existing installation. + +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, 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 + +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. + +Subprocess output is shown by default (you can silence it, and anything else +not an error) with `-q`, which enables quiet mode. Any subprocess that exits +abnormally will be reported, including its invocation arguments. + +If you suspect your settings may be the source of some problem, please check +our section on [Settings](settings), and in particular how to use a [default +pristine settings](settings#relocating-your-settings) + +## 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](policies#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..4f2d586f --- /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 settings.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..c326d70a --- /dev/null +++ b/docs/policies.md @@ -0,0 +1,111 @@ +# 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. + +- Separate supporting projects into nested crates, in particular when + developing libraries: + + - Tests, demos, examples, etc., can be provided in nested crates so they can + be conveniently used locally when needed without causing extra build load + on clients. See the documentation on + [local pins](catalog-format-spec#using-pins-for-crate-testing) for + details. + + - The manifests of these nested crates need not to be published to the + community index if they do not provide an application of general interest. + + - 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. + +## Source code + + - If you use non-ASCII characters in the source code, then use UTF-8 encoding + for the sources and add `-gnatW8` to compiler options (as provided by + `alr init` command). Other crates can use `-gnatW8` and this means the + compiler will read your crate sources as UTF-8 and the run-time library + will use UTF-8 for text I/O, so make sure your crate is OK with this. + + - Consider to follow or at least familiarize yourself with the + [Ada Style Guide](https://ada-lang.io/docs/style-guide/Ada_Style_Guide). diff --git a/docs/publishing.md b/docs/publishing.md new file mode 100644 index 00000000..8ec90c3c --- /dev/null +++ b/docs/publishing.md @@ -0,0 +1,327 @@ +# 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. + +## Automated publishing (TL;DR.) + +The simplest publishing experience, provided you have a GitHub account and +Personal Access Token, consist on issuing +``` +alr publish +``` +at the root of your workspace, when said workspace is an up-to-date clone of a +git repository. + +The publishing assistant will review your submission, point out any necessary +fixes or additional information required, and request a pull into the community +index on GitHub on your behalf. + +Read on for the details underlying these automated steps, or in case you need +to perform further tweaking. + +## Creating a GitHub Personal Access Token + +A Personal Access Token (PAT) allows Alire to act on your behalf to fork the +community index, push the new release manifest to a new branch in your own fork, +and finally open a pull-request against the community repository. + +The PAT, once created, is a plain string. You can either export the environment +variable `GH_TOKEN` set to this string, or provide it when Alire asks for it. + +There are two kinds of PATs on GitHub: classic and fine-grained. The latter are +in beta and not documented here yet. Follow these steps to create a classic PAT: + +1. On the main https://github.com page, after having logged in, click on your + profile photo on the top-right corner. +1. Click on "Settings" in the list of options in the profile menu. +1. Click on "Developer settings" entry at the bottom in your Settings page. +1. Click on "Personal access tokens" and then "Tokens (classic)". +1. Click on "Generate new token" and the select the classic variant. +1. In the "Select scopes" section, under "repo", check "public_repo" and "workflow". Those are + the only permissions needed for this PAT. +1. Click on "Generate token" at the bottom. + +You will get the PAT string after completing the generation. + +## 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). + +## 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` branches are used by stable versions of `alr`. +- `devel-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, `alr` +will either create the pull request against the proper branch, or you will +be provided with an upload link for the branch your `alr` is using. + +However, when submitting releases manually, you can 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`. + +## 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) 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. + +## Best practices + +See the section on [best practices](policies#best-practices) for crates +before publishing your first release. + +## 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 and 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 [Starting with a remote source archive](#starting-with-a-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. `alr` will +offer to create the pull request for you, unless you specify `--skip-submit`. +If so, 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 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](#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 after running `alr index --update-all`. 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) + +## Publishing to a local/private index + +Having a local index may be useful sometimes, be it for local testing, or for +private crates not intended for publication. + +There is no practical difference between the community index that is cloned +locally and a private local index stored on disk. Hence, after obtaining the +manifest file with `alr publish`, it is a matter of placing it at the expected +location within the index: `/path/to/index/cr/crate_name/crate_name-x.x.x.toml` + +If the crate being published locally contains `"provides"` definitions, it is +necessary to call `alr index --update-all` once to ensure it is properly used +by the dependency solver. This is only necessary for the first release in a +crate that uses the `"provides"` feature. diff --git a/docs/settings.md b/docs/settings.md new file mode 100644 index 00000000..f550714e --- /dev/null +++ b/docs/settings.md @@ -0,0 +1,144 @@ +# Settings + +`alr` provides a generic mechanism to `list`, `get`, `set` or +`unset` settings 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 settings options: + + - `--list` List settings options + - `--show-origin` Show origin of settings values in `--list` + - `--get` Print value of a setting option + - `--set` Set a setting option + - `--unset` Unset a setting option + - `--global `Set and Unset global settings instead of the local one + - `--builtins-doc` Print Markdown list of built-in settings + + Examples: + + - `alr settings --global --set my_option option_value` + + Will set a setting option with the key `my_option` and the string + value `option_value` in the global settings file. + + - `alr settings --get my_option` + + Will print the value setting option `my_option` if it is defined, + otherwise the command fails. + + +## Custom settings options + +The `alr settings` command allows you to set and get any combination of option +`key` and `value`. You can use this feature to store your own project related +settings, or implement tools that integrate in an `Alire` context. However, be +careful when naming custom settings options because `Alire` may use the same +`key` in the future. We recommend using a distinctive sub-category name, for +instance: `my_project.my_option`. + +## Built-in settings 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. For instance: + + - `alr settings --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 + +You can get the list of options recognized by `alr` with `alr help settings`, +including their default values and a short explanation of their effects. + +## Relocating your settings + +By default, `alr` stores its global settings at `/.config/alire`. +You can use any other location by setting in the environment the variable +`ALIRE_SETTINGS_DIR=`, or by using the global `-s` +switch: `alr -s `. + +Using pristine default settings can be useful to isolate the source of errors +by ensuring that a misconfiguration is not at play. + +## Inspecting your settings + +These commands may help you in identifying Alire settings and environment: +- `alr settings --list` will show all settings options in effect. +- `alr version` will print many relevant bits of information about the current + `alr` environment. +- `alr --version` will just print the version number and exit. + - **`cache.dir`** [Absolute path][Default:]: + Directory where Alire will store its cache. + + - **`dependencies.git.keep_repository`** [Boolean][Default:FALSE]: + When true, git origins are a proper git repository after deployment. Otherwise they are deployed as a plain directory. + + - **`dependencies.shared`** [Boolean][Default:TRUE]: + When true, dependencies are downloaded and built in a shared location inside the global cache. When false, dependencies are sandboxed in each workspace. + + - **`distribution.disable_detection`** [Boolean][Default:FALSE]: + If true, Alire will report an unknown distribution and will not attempt to use the system package manager. Takes precedence over distribution.override. + + - **`distribution.override`** [String][Default:]: + Distribution name to be used instead of autodetection. No effect if distribution.disable_detection is True. + + - **`editor.cmd`** [String][Default:]: + 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. + + - **`index.auto_community`** [Boolean][Default:TRUE]: + When unset or true, the community index will be added automatically when required if no other index is configured. + + - **`index.auto_update`** [Integer][Default:24]: + Hours between automatic index refresh. Set to 0 to disable. + + - **`index.host`** [String][Default:https://github.com]: + URL of the community index host + + - **`index.owner`** [String][Default:alire-project]: + Owner of the index repository (GitHub user/org). + + - **`index.repository_name`** [String][Default:alire-index]: + Name of the index repository. + + - **`solver.autonarrow`** [Boolean][Default:TRUE]: + If true, `alr with` will replace 'any' dependencies with the appropriate caret/tilde dependency. + + - **`toolchain.assistant`** [Boolean][Default:TRUE]: + If true, and assistant to select the default toolchain will run when first needed. + + - **`toolchain.dir`** [Absolute path][Default:]: + Directory where Alire will store its toolchains. + + - **`update.manually_only`** [Boolean][Default:FALSE]: + 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` + + - **`user.email`** [Email address][Default:]: + User email address. Used for the authors and maintainers field of a new crate. + + - **`user.github_login`** [GitHub login][Default:]: + User GitHub login/username. Used to for the maintainers-logins field of a new crate. + + - **`user.name`** [String][Default:]: + User full name. Used for the authors and maintainers field of a new crate. + + - **`warning.caret`** [Boolean][Default:TRUE]: + If true, Alire will warn about the use of caret (^) for pre-1 dependencies, for which tilde (~) is recommended instead. + + - **`warning.old_index`** [Boolean][Default:TRUE]: + If unset or true, a warning will be emitted when using a compatible index with a lower version than the newest known. + diff --git a/docs/toolchains.md b/docs/toolchains.md new file mode 100644 index 00000000..486d3482 --- /dev/null +++ b/docs/toolchains.md @@ -0,0 +1,77 @@ +# 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). Several compilers can be installed simultaneously, but only +the last one `--select`ed will be used by default. The rest will be used in +preference to uninstalled compilers, if the default one does not match some +crate's dependencies. + +There are two kinds 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. + +## 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. + +## 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. A 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. + +Within these conditions, a compiler already downloaded will be preferred. +Downloading a new compiler will be attempted only if no matching compiler is +already available. + +## 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/unicode.md b/docs/unicode.md new file mode 100644 index 00000000..e6da160d --- /dev/null +++ b/docs/unicode.md @@ -0,0 +1,165 @@ +# Unicode guidelines + +Unicode is the solution to work with character sets other than ASCII or, in the +case of Ada, beyond Latin-1, which was the character set chosen for the +`Character` type. There are a number of considerations for the use of Unicode +in Ada and in Alire crates, detailed in this section. + +## TL;DR + +Alire v2.0 and onwards expects sources to be UTF-8 (through the `-gnatW8` +switch). Input/Output must be done using specialized crates (e.g. `vss`, +`uxstrings`) or with `Wide_Wide_Text_IO` (for unencoded/UTF-32 strings) or with +`Streams_IO/GNAT.IO` (for UTF-8-encoded strings). Avoid `Text_IO` unless you +are sure of what you're doing (using Latin-1 strings). Some friction may happen +with older sources not using UTF-8. + +Read on for the gory details. +## Alire assumptions and configuration + +By default, any crate initialized via `alr init` will have the `-gnatW8` switch +in its build configuration, which presumes UTF-8 encoding of sources, and +tweaks some internals of the compiler accordingly. + +This means that source files **must** use UTF-8 encoding when not using plain +ASCII. + +Since GNAT compiles specifications and generic bodies in the context of the +client project, once internalization is enabled in some parts of a build, it +becomes necessary for all parts of the build to use the same `-gnatW8` setting. +Otherwise, a file containing non-ASCII literals could be interpreted +differently depending on the compilation context (as a standalone library or +from a client of such a library). + +Most old GNAT projects are likely not to have `-gnatW8` enabled (although an +UTF-8 file with BOM marker will have the same effect). For crates that do not +contain string literals outside of ASCII or engage on I/O of such strings, this +should not make any difference. For those for which internationalization +matters, however, there is no sensible way forward but to embrace Unicode, with +UTF-8 being the standard encoding nowadays for files and terminals. + +This means that a certain amount of breakage might happen for 'legacy' +libraries not yet adapted to `-gnatW8`. From the Alire project we are trying to +get in front of this problem with early detection of such libraries in the +Alire ecosystem, and universally using `-gnatW8` from version 2.0 on. + +## Recommendations + +You can use a library designed to shield you from Unicode details, such as +`vss` or `uxstrings`. + +Otherwise, these recommendations should keep you safe: + +1. Use `-gnatW8` to compile (this is Alire's default) and save your sources in UTF-8 encoding. +1. Use Wide_Wide_String to store any text that may exceed the ASCII character set. + 1. Alternatively, use `Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Encode` to get UTF-8 strings from Unicode literals. +1. Convert if necessary at the time of output to the desired encoding for display/storage. + 1. By default, Ada.Wide_Wide_Text_IO will use UTF-8 encoding if `-gnatW8` is in effect. + 1. Most modern plain text formats expect UTF-8 encoding. + 1. On Linux terminals this is the usual default. + 1. On Windows 10: + 1. You can enable UTF-8 once by running `chcp 65001` in your terminal. + 1. You can enable UTF-8 in terminals system-wide. + - This will break programs assuming the default Windows 10 encoding. + 1. On Windows 11, UTF-8 terminals are the default. +1. You can use `GNAT.IO` or `Ada.Streams.Stream_IO` to output properly encoded strings, as they don't manipulate the bytes. +1. You **cannot** use `Ada.Text_IO` to output UTF-8-encoded `String` variables, as Latin-1 encoding is expected. + +You can experiment with the `utf8test` crate at +https://github.com/mosteo/utf8test to check how your environment behaves in +regard to UTF-8 output. + +## Ada and GNAT string encoding basics + +Properly working with Unicode in Ada relies on these bits of info: + +- The Ada Standard designates the full Unicode character for its repertoire [1], but: +- The default encoding used by GNAT, unless a BOM is found, is Latin-1 [2]. +- The standard `Character` type is Latin-1 [3], so: +- `Ada.Text_IO` expects Latin-1-encoded strings (superset of ASCII), incompatible with UTF-8. +- `Ada.Wide_Wide_Text_IO` expects UTF-32 strings, that is, regular `Wide_Wide_Strings` in practice. + +It is common to use `String` to store byte sequences in different encodings. +This is a source of problems when going out of ASCII, as depending on how these +strings are populated, they may easily end being either Latin-1 or UTF-8 or +something else. + +UTF-8-encoded strings are more memory-efficient, but cannot be used to iterate +over characters without help of support libraries. `Wide_Wide_Strings` retain +the 1:1 index-to-character ratio, so they are efficient for such iterations. +`Wide_Strings`, which are defined to hold 2-byte Unicode code points (although +conceivably they could also be used with UTF-16), are probably a middle-ground +not useful in general anymore. + +## Migrating 'old' code + +1. Save all source files as UTF-8 (see e.g. `iconv`). +1. Add `-gnatW8` to your compiler switches. +1. Fix any errors that arise due to `String` literals containing characters outside of the Latin-1 range (see next section). +1. Look for suspect uses of `Ada.Text_IO` and replace it with `Ada.Wide_Wide_Text_IO` or `GNAT.IO` or `Ada.Streams.Stream_IO`. + - Use `Ada.Characters.Conversions.To_Wide_Wide_String` to convert Latin-1 strings to UTF-32. + - Use `Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Decode` to convert UTF-8 strings to UTF-32. + - Use `Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Encode` to convert UTF-32 strings to UTF-8. + +## Common pitfalls + +A particularity of `-gnatW8` is that it may affect compilation units in other +projects, for example when specifications or generic bodies are 'withed', as +these are compiled also in the context of the client project. This may cause +issues when not all projects use `-gnatW8`, even if projects in isolation work +properly. + +Trouble may thus arise from inconsistencies between source file encoding and +`-gnatW8` being in effect, or even simply by saving Latin-1 files as UTF-8 in +order to enable `-gnatW8`: + +- Latin-1 (or other non UTF-8) sources compiled with -gnatW8 will likely cause +"illegal wide character" errors, as Latin-1 literals will be invalid UTF-8 +sequences. +- UTF-8 sources compiled without -gnatW8 will result in mangled output as the +UTF-8 sequences are misinterpreted as Latin-1, where most bytes are a valid +character code. +- Latin-1 sources saved to UTF-8 and compiled with -gnatW8 may result in +"literal out of range of type Standard.Character" errors when characters +outside of Latin-1 are assigned to a regular `Character` instead of +`Wide_Wide_Character`. + - Example: `X : String := "€";` + - Will work without `-gnatW8`, resulting in a three-byte string. + - Will err with `-gnatW8`, as '€' is out of `Character` range. + - In this case, the code has to be adapted to use `Wide_Wide_String`/`Wide_Wide_Character`, or the string manually encoded as UTF-8 (which will **not** be apt for use with `Ada.Text_IO`): + `subtype UTF8_String is String;` + `X : UTF8_String := Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Encode ("€");` + + +See a few more examples: + +``` +O_Acute : constant Character := 'ó'; +-- With Latin-1 source and -gnatW8, it will fail as 'ó' won't be a proper UTF-8 sequence in the input file. +-- With UTF-8 source and -gnatW8, it will work **but** it will be stored in Latin-1 encoding in memory. +-- It can be converted to a Wide_Wide_String (that will be in UTF-32) +-- with `Ada.Characters.Conversions.To_Wide_Wide_String`. In this case, +-- using `Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Decode` would be wrong, +-- as the String is Latin-1 and not UTF-8 despite the source file encoding being UTF-8. + +Bye : constant String := "Adiós"; +-- Without -gnatW8 but UTF-8 sources without a BOM marker, this will end being an UTF-8 byte sequence, +-- as it is interpreted literally as Latin-1 characters. +-- With -gnatW8, the UTF-8 will be properly loaded and converted to Latin-1 for the in-memory representation. + +Bye : constant String (1 .. 5) := "Adiós"; +-- This is proper for a Latin-1-encoded file and compiling without -gnatW8. +-- With -gnatW8 and an UTF-8 file, it will work properly and also end as a 5-byte Latin-1 string. +-- With -gnatW8 but with Latin-1-encoded file, it will fail as the sequence won't be proper UTF-8. +-- Without -gnatW8 but with an UTF-8 file it will fail as the sequence will be 6 bytes long. + +Euro : constant String := "€"; +-- Without -gnatW8 and a UTF-8-encoded file, this results in a 3-byte UTF-8 string. +-- With -gnatW8 and a UTF-8-encoded file, this results in an error as '€' is outside of Character. +``` + +## References + +[1] http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-2-1.html +[2] https://docs.adacore.com/live/wave/gnat_ugn/html/gnat_ugn/gnat_ugn/building_executable_programs_with_gnat.html#character-set-control +[3] http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-3-5-2.html \ No newline at end of file diff --git a/docs/upgrading.md b/docs/upgrading.md new file mode 100644 index 00000000..72dcd2bb --- /dev/null +++ b/docs/upgrading.md @@ -0,0 +1,62 @@ +# Upgrading + +## Upgrading from 1.x to 2.x + +There are no special preparations to be made in advance to upgrading. However, +please check out the following information. + +### Refactored features + +The following features have changed in version `2.0`, with the corresponding +replacements: + +- "Alire configuration" is now renamed to "Alire settings", to distinguish it + from a crate configuration. This entails a few changes: + - `ALR_CONFIG` environment variable is now `ALIRE_SETTINGS_DIR`. + - `alr config` is now `alr settings`. + - `alr -c|--config` is now `alr -s|--settings`. + +- Installation of toolchains for use outside of Alire control is no longer done + through `alr toolchain`, but through `alr install`: + - `alr toolchain --install|--uninstall|--install-dir` no longer exist. + - `alr toolchain --select` remains as the way to select a default toolchain + for use by Alire. + - `alr install` will create a standard prefix structure, with binaries found + at `/bin`. The default prefix location is `/.alire`. + +### Obsolete large folders + +Changes in default storage locations mean that the following folders, if +existing, can be safely deleted to retrieve disk space: + +- `/.cache/alire` +- `/.config/alire/cache` + +On Windows, `` stands for `%UserProfile%`, whereas for other OSes it +stands for `$HOME`. + +Also, `alr 2.x` defaults to shared builds, meaning that local workspace +caches can also be removed at + +- `/alire/cache/dependencies` + +### New features in 2.x + +Please find all user-facing changes at our [User Changes log +file](https://github.com/alire-project/alire/blob/master/doc/user-changes.md). + +## Downgrading to an earlier version + +This is not a recommended nor supported operation, as changes in storage of configuration and +other resources may make a downgrade prone to failure. + +If you want to have a fallback to be able to downgrade, you have two safe +options: + +- Use the newer version with its own separate configuration storage. You can override + the default location by providing a new path in the `ALIRE_SETTINGS_DIR` environment + variable. + +- Keep a backup of your current configuration at the default location, which is + `.config/alire` within your user's home. You can restore this folder in sync with + its older `alr` version. diff --git a/docs/user-changes.md b/docs/user-changes.md new file mode 100644 index 00000000..21d63333 --- /dev/null +++ b/docs/user-changes.md @@ -0,0 +1,1000 @@ +# 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 `2.0` + +### `ALIRE_SETTINGS_DIR` replaces `ALR_CONFIG` + +PR [1625](https://github.com/alire-project/alire/pull/1625) + +This reflects the new nomenclature of Alire settings versus crate +configuration. Also, it better reflects that the effect is on the whole library +and not only the `alr` command-line tool. + +### `alr settings` replaces `alr config` + +PR [1617](https://github.com/alire-project/alire/pull/1617) + +The `alr settings` command replaces the `alr config` command. This change is +introduced to tackle the confusion between the configuration of the Alire +commands and operations, and the configuration of crates. + +`alr config` is still available and should work as before with the exception of +a deprecation warning message. + +### Deprecation of `toolchain --install/--uninstall/--install-dir` + +PR [#1614](https://github.com/alire-project/alire/pull/1614) + +Toolchain selection for use by Alire is still done by using +`alr toolchain --select`. + +For the installation of toolchains outside of Alire management (i.e., for +direct use with other tools, but not with Alire), the recommended +method now is to use `alr install`, e.g.: +``` +# Install to the default location, /.alire/bin +$ alr install gnat_native gprbuild + +# Install elsewhere +$ alr install --prefix=/path/to/installation gnat_native gprbuild +``` + +Removal of managed toolchains can be done by simply removing their folders +inside the toolchain cache (reported by `alr version`). + +### Cache and toolchain storage location overridding + +PR [#1593](https://github.com/alire-project/alire/pull/1593) + +The cache directory can now be set independently of the configuration +directory, by setting the `cache.dir` config builtin to an absolute path. For +example: +``` +alr config --global --set cache.dir /path/to/my/global/cache +``` +Since the cache by default also contains installed toolchains, which may not be +needed to be moved elsewhere, the `toolchain.dir` can be used to dissociate +toolchain location from cache location in a similar way: +``` +alr config --global --set toolchain.dir /path/to/my/toolchains +``` + +### New switch `alr build --stop-after=` + +PR [#1573](https://github.com/alire-project/alire/pull/1573) + +From `alr help build`: + +**Build stages** + + Instead of always doing a full build, the process can be stopped early using `--stop-after=`, where `` is one of: + + * sync: sync pristine sources to build location + * generation: generate configuration-dependent files + * post-fetch: running of post-fetch actions + * pre-build: running of pre-build actions + * build: actual building of sources + * post-build: running of post-build actions + +### Enable shared dependencies by default + +PR [#1449](https://github.com/alire-project/alire/pull/1449) + +Pre-2.0, Alire worked always in "sandboxed" mode; that is, all source +dependencies were found under `/alire/cache`. This behavior can be +now enabled with `alr config --set dependencies.shared false`, locally or +globally. + +By default, post-2.0, Alire works in "shared" mode, where sources are +downloaded once (to `~/.cache/alire/releases`) and unique builds are created +(under `~/.cache/alire/builds`) for unique configurations. This should minimize +rebuilds across crate configurations and workspaces, and eliminate risks of +inconsistencies. + +Disk use is decreased by unique source downloads, but might be increased by +unique build configurations. Cache management and cleanup will be provided down +the road. The build cache can always be deleted to retrieve disk space, at the +cost of triggering rebuilds. + +Unique builds are identified by a build hash which takes into account the +following inputs for a given release: + +- Build profile +- Environment variables modified in the manifest +- GPR external variables declared or set +- Configuration variables declared or set +- Compiler version +- Vaue of `LIBRARY_TYPE` and `_LIBRARY_TYPE` variables. +- Hash of dependencies + +### Automatic index updates + +PR [#1447](https://github.com/alire-project/alire/pull/1447) + +A new configuration option, `index.auto_update`, allows setting the refresh +period of indexes. It defaults to 24 hours and the user will be asked the first +time to allow automatic updates. Setting this option to 0 will also disable +automatic updates. + +When enabled, updates may happen before executing commands that rely on +indexes: `get`, `search`, `with`, etc. + +### Deprecation of `dependencies.dir` in favor of `dependencies.shared` + +PR [#1419](https://github.com/alire-project/alire/pull/1419) + +A new system of shared sources and builds is being implemented, which will +ensure full consistency and reuse of builds. + +In the new system (still disabled; enable it by setting `alr config --set +dependencies.shared true`), dependencies will no longer be stored under +`/alire/cache/dependencies`. Instead, three new directories are +introduced: + +- `$HOME/.cache/alire/releases`: contains sources for read-only purposes and + binary releases (except toolchains, see below). +- `$HOME/.cache/alire/builds`: contains source builds for a unique combination + of build profile, GPR externals and environment variables. +- `$HOME/.cache/alire/toolchains`: contains downloaded toolchains. + +The previous `$HOME/.cache/alire/dependencies` that contained both toolchains +and binary releases is no longer in use. + +Users wanting to modify dependencies in tandem within a workspace are +encouraged to use the pin system. + +If these default locations for shared dependencies must be relocated, this can +be achieved by using a new configuration path (`ALR_CONFIG` or `-c` global +switch). In that case, the aforementioned paths will be found under +`/path/to/config/cache`. + +### Set working directory with `--chdir` + +PR [#1479](https://github.com/alire-project/alire/pull/1479) + +A new switch `--chdir` (short form `-C`) is introduced which requires a target +directory argument. `alr` then runs as though it were invoked in that +directory. + +### Request review of an index submission with `alr publish --request-review` + +PR [#1409](https://github.com/alire-project/alire/pull/1409) + +When a submission has passed all server-side tests, for the time being it must +be reviewed and merged manually. This can now be done with `alr publish +--request-review `. + +### Cancel an index submission with `alr publish --cancel` + +PR [#1406](https://github.com/alire-project/alire/pull/1406) + +A pending submission can be closed with +`alr publish --cancel --reason `. + +### Track user's index submissions with `alr publish --status` + +PR [#1400](https://github.com/alire-project/alire/pull/1400) + +The new `alr publish --status` switch will print a table with unmerged pull +requests opened by the user against the community index repository. + +### Automatic release submission during `alr publish` + +PR [#1398](https://github.com/alire-project/alire/pull/1398) + +`alr publish` will now prompt to continue after manifest creation into a series +of steps culminating on the creation of a draft pull request on the community +index repository. + +The new steps will perform all necessary actions: forking of the community +repository into the user account, cloning, committing of the new manifest, and +pull request creation. + +For `alr` to be able to do these steps on the user's behalf, the user has to +provide a 'Personal Access Token (PAT)' with 'repo' permissions. + +The old behavior, ending the assistant after manifest creation, can be achieved +with the new `--skip-submit` flag. + +### Removal of `alr test --docker` + +PR [#1366](https://github.com/alire-project/alire/pull/1366) + +The option to test indexed releases with the local `alr` using a Docker image +has been removed, as it never made too much sense for `alr` to invoke itself, +and it introduced unwanted complexity into the `alr test` command. + +### Global sharing of dependencies via config setting + +PR [#1367](https://github.com/alire-project/alire/pull/1367) + +A new built-in configuration key can be used to define a directory where all +dependencies will be stored: + +`alr config --set --global dependencies.dir /abs/path/to/existing/dir` + +Without `--global`, as usual, the setting will only affect the working crate. + +The use of this feature entails a penalty in that crate configuration files will +be regenerated before every build to ensure consistent build profiles. + +Caveat emptor: dependencies built by several dependents with different +configuration options or scenario variables might cause race conditions or +other unexpected issues. Use this feature with caution. + +### Test of a working crate with `alr test` + +PR [#1356](https://github.com/alire-project/alire/pull/1356) + +This PR enables the use of `alr test` on local crates. Previously, it could only +be used on indexed ones. + +By default, running `alr test` will build the crate in release mode. This +behavior can be overridden by defining one or more [test +actions](https://alire.ada.dev/docs/#release-information). + +### Binary releases moved to system cache from system config directory + +PR [#1349](https://github.com/alire-project/alire/pull/1349) + +Alire was storing large binary releases like compilers in the config location, +which is against best practices. + +Users are advised to delete the old location to recover disk space, or to +manually move the contents to avoid redownloading toolchains. + +- Old location: `/.config/alire/cache` +- New location: `/.cache/alire` + +### Installation of indexed crates + +PR [#1335](https://github.com/alire-project/alire/pull/1335) + +It is now possible to install an indexed crate directly: +``` +$ alr install hello +``` +This is roughly equivalent to +```alr get hello && cd hello* && alr install``` + +The main differences are: +- Cleanup is automatic. +- Several crates can be installed in one go, e.g.: `alr install hello hangman`. +- `alr get` will always retrieve the latest version, whereas `alr install` will +also require a complete solution to dependencies. + +### Installation of local crates + +PR [#1322](https://github.com/alire-project/alire/pull/1322) + +`alr install` without arguments performs the installation of the current crate. +With `--info`, it shows the contents of an installation prefix. For example: + +``` +$ alr -n init --bin mycrate && cd mycrate +$ alr install +$ alr install --info +Installation prefix found at /home/user/.alire +Contents: + mycrate=0.1.0-dev +``` + +Or, to install the hangman game: + +``` +$ alr get hangman && cd hangman* +$ alr install +``` + +### New subcommand `alr install` + +PR [#1302](https://github.com/alire-project/alire/pull/1302) + +A new subcommand `alr install` allows the installation of binaries to a location +intended to be added to the user's PATH. The default install location is +`$HOME/.alire`, with binaries going into `$HOME/.alire/bin`. + +This is a experimental feature that will see improvements and tweaks in further +PRs and as we gather feedback on its usage. + +At present, only binary releases can be installed (e.g., compilers, `gprbuild`, +`gnatprove`). There is no ability to uninstall releases either +(but reinstallation can be forced). + +Only one version per executable can be installed, meaning that, for example, +only one toolchain version can exist in an installation prefix. So, this +feature is intended to make the user's preferred version of a crate generally +available in the system for use outside of Alire, but not to replace e.g. the +ability of Alire to use several compilers, or to reuse compiled libraries as +dependencies in several workspaces. + +Examples: + +``` +$ alr install gnatprove +ⓘ Installing gnatprove=12.1.1... +ⓘ Installation complete. + +$ alr install +Installation prefix found at /home/jano/.alire +Contents: + gnatprove=12.1.1 + +$ PATH+=:$HOME/.alire/bin gnatprove --version +Usage: gnatprove -Pproj [switches] [-cargs switches] +... + +$ alr install gnatprove^11 +error: Requested release gnatprove=11.2.3 has another version already +installed: gnatprove=12.1.1. (This error can be overridden with --force.) + +$ alr --force install gnatprove^11 # Downgrade installation +``` + +### Find dependents of a release with `alr show --dependents + +PR [#1170](https://github.com/alire-project/alire/pull/1170) + +A new switch for `alr show` lists the newest release that depends on another +given release. For example, to find direct dependencies on `libhello`: + +``` +$ alr show libhello --dependents +CRATE VERSION DEPENDENCY +hello 1.0.1 ^1.0.0 +``` + +To identify all dependents, both direct and indirect, +use `--dependents=shortest`, which will also show the shortest dependency chain +from (indirect) dependent to dependee: + +``` +$ alr show aws --dependents=shortest +CRATE VERSION DEPENDENCY CHAIN +adabots 1.2.0 ^21.0.0 adabots=1.2.0»aws=21.0.0 +awa 2.4.0 ~21.0.0 awa=2.4.0»utilada_aws=2.5.0»aws=21.0.0 +awa_unit 2.4.0 ~21.0.0 awa_unit=2.4.0»awa=2.4.0»utilada_aws=2.5.0»aws=21.0.0 +matreshka_spikedog_awsd 21.0.0 * matreshka_spikedog_awsd=21.0.0»aws=21.0.0 +servletada_aws 1.6.0 ~21.0.0 servletada_aws=1.6.0»utilada_aws=2.5.0»aws=21.0.0 +utilada_aws 2.5.0 ~21.0.0 utilada_aws=2.5.0»aws=21.0.0 +webdriver 1.0.0 * webdriver=1.0.0»aws=21.0.0 +``` + +Finally, to obtain all paths through which dependents reach a dependency, use +the `all` value. In this case crates may appear more than once in the listing: + +``` +$ alr show --dependents=all cortex_m +CRATE VERSION DEPENDENCY CHAIN +minisamd51_bsp 0.1.0 ^0.1.0 minisamd51_bsp=0.1.0»samd51_hal=0.2.0»cortex_m=0.5.0 +minisamd51_example 0.1.1 ^0.1.0 minisamd51_example=0.1.1»minisamd51_bsp=0.1.0»samd51_hal=0.2.0»cortex_m=0.5.0 +pico_bsp 2.0.0 ~0.5.0 pico_bsp=2.0.0»rp2040_hal=2.0.0»cortex_m=0.5.0 +pico_examples 2.0.0 ~0.5.0 pico_examples=2.0.0»rp2040_hal=2.0.0»cortex_m=0.5.0 +pico_examples 2.0.0 ~0.5.0 pico_examples=2.0.0»pico_bsp=2.0.0»rp2040_hal=2.0.0»cortex_m=0.5.0 +pygamer_bsp 0.1.0 ^0.1.0 pygamer_bsp=0.1.0»cortex_m=0.5.0 +pygamer_bsp 0.1.0 ^0.1.0 pygamer_bsp=0.1.0»samd51_hal=0.2.0»cortex_m=0.5.0 +rp2040_hal 2.0.0 ~0.5.0 rp2040_hal=2.0.0»cortex_m=0.5.0 +samd51_hal 0.2.0 ^0.1.0 samd51_hal=0.2.0»cortex_m=0.5.0 +``` + +### Finer control of build profiles in `alr build` + +PR [#1119](https://github.com/alire-project/alire/pull/1119) + +Build profiles can be now tweaked from the command-line with a new switch: + +- `alr build --profiles '*=development'` + `# Set all profiles to development` +- `alr build --profiles '%=validation'` + `# Set profiles without an override in a manifest to validation` + +Explicit crates can be given, intermixed with one of the wildcards, which apply +to the rest of crates in the build: + +- `alr build --profiles '*=development,libhello=release'` + `# Set all profiles to development but for libhello` + +The existing switches `--release`, `--validation`, `--development` continue to +control root crate profile and take the highest priority: + +- `alr build --validation --profiles '*=development'` + `# Set the working crate to validation and the rest to development` + +### Reuse build profile of `alr build` when issuing `alr run` + +PR [#1080](https://github.com/alire-project/alire/pull/1080) + +`alr run` will trigger a build to have an up-to-date executable, and before +this PR this was always a development build. Now, the last profile used during +an `alr build` will be reused. + +## 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 +``` + +### UTF-8 Source Encoding + +PR [#972](https://github.com/alire-project/alire/pull/972) + +As part of the build profile feature, the GNAT switch `-gnatW8` is +unconditionally added to the list of compiler switches in the configuration GPR +file. This switch enables the use of UTF-8 for source file encoding. + +### 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](catalog-format-spec#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) 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](catalog-format-spec) +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..732055e8 --- /dev/null +++ b/update-gh-pages.sh @@ -0,0 +1,118 @@ +#!/bin/sh + +# This script is made to run in a GitHub action. + +if [ "x${DOC_BRANCH:-}" == "x" ]; then + DOC_BRANCH="release/2.0" +fi + +# First print the list of crates so that it is visible in the logs +alr --no-tty search --crates + +# NOTE: these versions should match exactly the one used in the download link +# in the releases page of the alire repository. +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:]') + +# Fix version for alr 2.0.0 that is not using a full semver format +if [ "x$alr_version" = "x2.0" ]; then + alr_version="2.0.0" + alire_lib_version="2.0.0" +fi + +# Fix version for alr 2.0.2 includes a build id +if [ "x$alr_version" = "x2.0.2+9b80158" ]; then + alr_version="2.0.2" + alire_lib_version="2.0.2" +fi + +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/settings.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}"