fredyouhanaie/espace
61.8
Adequate · 17 September 2026
2k
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is an Erlang library implementing the Tuple Spaces (Linda) concurrency paradigm, built on ETS for data management. It provides core operations for inserting, reading, and evaluating functions within distributed tuple spaces, along with built-in metrics tracking and an Observer plugin for runtime inspection. The project includes example applications demonstrating concurrent algorithms like shortest path and matrix multiplication in both Erlang and Elixir.
Features
Added Dijkstra's shortest path algorithm example
The \Examples/dijkstra\ directory now includes a complete implementation of Dijkstra's shortest path algorithm using the \espace\ tuple space system. This feature introduces the \dijkstra.erl\ module, which manages concurrent worker processes (\gen\_vertex\, \nexthop\_worker\, \compute\_sp\) to calculate the least-cost path between vertices in a directed graph. The example is demonstrated with two pre-defined graph datasets (\dijkstra-1.esp\ and \dijkstra-2.esp\) and a README explaining the data structures and usage, including support for functional expressions in worker definitions.
Examples/dijkstra · high confidence
Added matrix multiplication example
A new example demonstrating matrix multiplication using the \espace\ tuple space system has been added to the \Examples/matmul\ directory. The implementation (\matmul.erl\) uses worker processes to perform results parallelism, splitting input matrices into row and column vectors, computing dot products in parallel, and gathering the results. The example includes a README with usage instructions and two test data files (\matmul-1.esp\ and \matmul-2.esp\) for verification.
Examples/matmul · high confidence
Adder1 example now supports Elixir alongside Erlang
The adder1 example has been extended to include an Elixir implementation (adder2.ex) in addition to the existing Erlang version (adder1.erl). Users can now run the example using either Erlang or Elixir, with specific input files (adder1.esp and adder2.esp) provided to configure the respective worker processes for each language.
Examples/adder1 · high confidence
Initial release of espace Tuple Spaces library
This entry introduces the \espace\ project, an Erlang implementation of the Tuple Spaces (Linda) paradigm. The repository establishes the core build structure using \rebar3\, defining dependencies on \etsmgr\ and \observer\_cli\ in \rebar.config\ and locking them in \rebar.lock\. It includes comprehensive documentation setup via \ex\_doc\ and \edoc\, a \CONTRIBUTING.md\ guide, and an Apache 2.0 \LICENSE\. The initial codebase provides the foundational modules for managing ETS tables and includes an example application (\adder1\) demonstrating concurrent tuple space operations.
(repo-wide) · high confidence
Behavioural changes
Add observer\_cli plugin configuration for espace observations
A new configuration file (config/shell.config) has been added to define an observer\_cli plugin. This config registers the 'espace\_observer' module as a menu item titled 'espace observations', accessible via the 'E' shortcut, with a 2000ms refresh interval and sorting by the first column.
config · high confidence
Updated documentation for v0.9.0 and edoc generation
The project documentation has been updated to version 0.9.0, including a new overview document (overview.edoc) that details the espace tuple space implementation, the eval vs worker behavior, and the ETS table organization. Additionally, a .gitignore file was added to the doc directory to exclude generated artifacts like CSS, HTML, and edoc-info files, supporting the new edoc generation workflow.
doc · high confidence
espace v0.9.0 release with operation counters and observer plugin
This release introduces operation counting for all espace instances, tracking metrics for in, rd, inp, rdp, out, and eval operations via the new espace\_opcount module and exposing them through an observer\_cli plugin (espace\_observer). It also adds support for worker functions with no arguments, changes eval and worker to return the child process PID, and updates the application manifest to version 0.9.0 with etsmgr\_srv included in the registered servers.
src · high confidence
Test coverage
Added EUnit test suites for core espace modules
Added new EUnit test files covering the \espace\, \espace\_observer\, \espace\_opcount\, \espace\_pterm\, and \espace\_util\ modules. These tests verify instance start/stop behavior, observer sheet headers and body content, operation counter initialization and reset, persistent term storage and retrieval, and utility functions for evaluating functions and converting instance names. Test data files (\testfile-1.esp\, \testfile-2.esp\) are included to support integration tests involving worker processes and file inclusion.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 62.
Lenses
- Code Health 99
- Architecture 100
- Maturity 57
- Readiness 59
- Security 56
Changes since last survey
- 214 commits — 211 feature/other, 3 fixes
By area
- (root) — 65 commits
- apps/espace — 28 commits
- doc/overview.edoc — 19 commits
- src/espace.erl — 19 commits
- .github/workflows — 13 commits
- src/espace_tspace_srv.erl — 10 commits
- src/espace.app.src — 9 commits
- Examples/adder1 — 6 commits
- src/espace_app.erl — 6 commits
- Examples/matmul — 5 commits
- Examples/dijkstra — 4 commits
- src/espace_util.erl — 4 commits
- src/tspace_srv.erl — 4 commits
- gh_pages/index.md — 3 commits
- test/espace_util_tests.erl — 3 commits
- (repo) — 2 commits
- src/espace_observer.erl — 2 commits
- src/espace_tspatt_srv.erl — 2 commits
- test/espace_tests.erl — 2 commits
- Examples/adder1.esp — 1 commit
Notable commits
- fix: Fixed the missing recursion call.
- fix: fixed blocking/notification problem with rd.
- fix: fixed failing test case.
- change: Added common function for in/rd call handlers.
- change: Added the dijkstra example graphs.
- change: Added type checking for the client functions.
- change: Auto-generate app resource data from original copy.
- change: Clean up when terminating.
- change: Initial commit
- change: Merge branch 'espace_lite'
- change: Merge branch 'master' into espace_lite
- change: README and version updated.
- change: README update.
- change: Reduced/simplified the supervision tree.
- change: Removed text that has been moved to the wiki.
- change: The "in" and "rd" operations are now working.
- change: The ETS tables are managed concurrently.
- change: The tspool server has been removed.
- change: Updated supervisor configuration.
- change: add configuration for ex_doc
- …and 194 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fredyouhanaie/espace was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 66b281ebbf63c91f95e841f7eb3b5930b480efed — the exact code this score is about.
- Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.