|
2 | 2 | title: Package Directory |
3 | 3 | sidebar_position: 10 |
4 | 4 | --- |
| 5 | + |
| 6 | +:::tip |
| 7 | +If you would like to share your Rascal library or tool with the community, please [open a pull request](https://github.com/usethesource/rascal/pulls) to add your project to the pom.xml. Currently we require to make a "fork" to help |
| 8 | +with authentication/authorization for publication on the Maven repository and jumping through minor hoops like running the automated tests and documentation generation. The community's values and guidelines can be found [here](https://www.usethesource.io/about). |
| 9 | +::: |
| 10 | + |
| 11 | +### What is the Rascal Package Directory? |
| 12 | + |
| 13 | +The Package Directory provides an overview of libraries, tools and frameworks written in Rascal (and other languages) which are: |
| 14 | +* contributed by the community |
| 15 | +* useful for the community |
| 16 | +* excluding the core language implementation (interpreter, compiler, repl, IDE extensions) |
| 17 | + |
| 18 | +Each package is encapsulated in a `jar` file, is deployed in the UseTheSource Maven repository, and comes with: |
| 19 | +* License information. |
| 20 | +* Funding information. |
| 21 | +* Release notes. |
| 22 | +* Maven dependency example. |
| 23 | +* API documentation, generated from the sources. |
| 24 | +* Optional manual(s) generated using rascal-tutor. |
| 25 | + |
| 26 | +The release and deployment mechanisms that are in place guarantee that: |
| 27 | +* Each package' latest release version is documented here. |
| 28 | +* Each package is tested before release. |
| 29 | +* Each package documents the rascal version it dependend on at the time of release. |
| 30 | + |
| 31 | +:::info |
| 32 | +If a package was not released (yet) after a major or minor release of `rascal`, then it may still work with the newest release, but this is not guaranteed. Packages owners are reminded to upgrade and release by the UseTheSource community. |
| 33 | +::: |
| 34 | + |
| 35 | +The currently available packages are grouped in two categories: language support, and generic libraries. |
| 36 | + |
| 37 | +### Language Support |
| 38 | + |
| 39 | +| Language name | Package | Note | |
| 40 | +| ------------- | ------- | ----- | |
| 41 | +| C and C++ | [clair](/docs/Packages/Clair) | | |
| 42 | +| Java | [rascal](/docs/Rascal) | To be factored out of the standard library soon | |
| 43 | +| PHP | [php-analysis](/docs/Packages/PhpAnalysis) | | |
| 44 | +| Python | [python-air](/docs/Packages/PythonAir) | | |
| 45 | +| JVM bytecode | [flybytes](/docs/Packages/Flybytes) | Forward and Reverse | |
| 46 | + |
| 47 | +### Generic Libraries |
| 48 | + |
| 49 | +| Library Name | Package | Note | |
| 50 | +| ------------ | ------- | ----- | |
| 51 | +| Dr Ambiguity | [drambiguity](/docs/Packages/DrAmbiguity) | Interactive UI based on Salix for detection, diagnostics and fixing of ambiguity context-free grammars. | |
| 52 | +| Salix | [salix-core](/docs/Packages/SalixCore) | User interface framework for Rascal | |
| 53 | +| Salix Contrib | [salix-contrib](/docs/Packages/SalixContrib) | Useful extensions for Salix | |
| 54 | +| Rascal GIT | [rascal-git](/docs/Packages/RascalGit) | Accessing GIT from Rascal | |
| 55 | +| Rascal LSP | [rascal-lsp](/docs/Packages/RascalLsp) | LSP for Rascal and LSP generator for DSLs in Rascal | |
| 56 | +| Typepal | [typepal](/docs/Packages/Typepal) | Generic name and type analysis framework; to be factored in to the standard library soon | |
| 57 | +| Rascal Tutor | [rascal-tutor](/docs/Packages/RascalTutor) | Rascal source code documenter and manual authoring tool; to be factored into the standard library soon | |
0 commit comments