We are currently developing a second implementation of RCFs in C. We intend to support both the Java and C versions going forward, since the two implementations have different tradeoffs. This issue is to discuss how we should reorganize the project directory to accomodate both implementations.
Proposal 1: Root level language directories
With this approach, the existing Maven project would be moved to a new java/ subdirectory, and we would add a top-level c/ directory to contain the C implementation. We could then continue this pattern for other language bindings. For example, the python/ directory could contain a Python project with bindings to the C library.
If we take this approach we'll have to create a new top-level README explaining the setup and possibly giving some information about RCF the algorithm. We'll also have to double-check that we can execute our github workflow from a subdirectory.
Proposal 2: Separate repositories
This proposal is to create a new repository for the C implementation. This approach would all both repos to conform to the standard project layout wherein the root directory for the project contains the build configuration files for your project.
By taking this approach we would lose some discoverability between the two implementations, and it would be less clear that the two implementations conform to a single "vision" for RCFs.
Also considered: Add the C library to a directory in the Maven project
benchmark/
core/
...
rcfc/
In this approach, the folder containing the C code would live in the Maven project, but it would be ignored by the Maven build. I think the main drawback here is that the C and Java versions would not appear as different-but-equally-good implementations. People who get to the repository via search might not even notice that there is a C implementation.