Repository navigation
Releases: Nurysso/eulix
Release list
Release v0.8.3
Eulix Release Notes
Eulix v0.8.3
This release focuses on parser architecture, memory efficiency, call graph visualization, and developer tooling. The parser has been split into a reusable Rust library and a CLI interface, while a new spill-to-disk architecture significantly reduces peak memory usage on large codebases.
Parser Architecture
- Split
eulix_parserinto two components:libeulix— A Rust library for parsing and code analysis.eulix_parser— The command-line interface built around the parser.
- Introduced a new spill-to-disk architecture to process large codebases with significantly lower memory consumption.
- Integrated
rpmallocas the memory allocator, requiring changes to the parser's build configuration and flags.
Performance & Memory Efficiency
Benchmarked against a 37-million-line codebase:
- Peak RSS reduced from ~8 GB to ~3.5 GB — approximately a 56% reduction.
kb.jsonreduced to ~350 MB, down from ~670 MB in the previous release.- The new architecture makes large-scale code analysis more memory-efficient and reduces the resources required to process large repositories.
Call Graph & VizEulize
- Updated
call_graph.jsonserialization to store function tags directly alongside the graph data. - VizEulize can now consume these tags to group functions and improve graph exploration.
- Improved VizEulize's ability to handle large JSON datasets, with support for files up to 500 MB in the browser.
- Further visualization and graph explorer improvements.
Eulix CLI
- Added an experimental MCP server (Beta) with an adaptive retrieval cascade.
- Improved the terminal UI (TUI), including styling refinements and internal cleanup.
- Additional CLI improvements and bug fixes.
Eulix LSP (Alpha)
Introduced eulix-lsp, a language server that exposes the libeulix knowledge base through the Language Server Protocol (LSP).
Supports C, C++, Go, Java, JavaScript, Python, Rust, and TypeScript, bringing code intelligence backed by Eulix's static analysis.
Features
- Navigation: Go to definition, workspace-wide references, and call hierarchy.
- Code intelligence: Hover information, prefix-based completion, and document outline.
- Editor support: Semantic tokens, document highlights, and folding ranges.
- Workspace tools: Workspace symbol search and file watching.
- Diagnostics: Syntax issues, duplicate definitions, TODOs, and security notes.
- Rename: Renames symbols in open buffers, refusing ambiguous workspace matches.
Limitations
- No code actions, formatting, signature help, or type-resolved hover.
- Semantic tokens are symbol-level rather than full lexical highlighting.
- JSX and TSX are not supported.
- Document highlights are limited to the current file.
- Go-to-definition returns a single deterministic result.
- Syntax diagnostics provide line-level information rather than precise error ranges.
The language server is currently in Alpha and relies on information extracted by libeulix rather than performing independent, full semantic analysis.
Build & Installation
- Updated parser build commands and required build flags following the allocator integration.
- Updated the Makefile, README, and installation documentation.
- Relicensed the project under Apache-2.0.
Experimental Features
- MCP Server (Beta): Enables MCP-compatible clients to access Eulix retrieval capabilities.
- Eulix LSP (Alpha): Introduced early language server functionality.
What's Changed
- Makefile, readme and install doc updated by @Nurysso in #71
- eulix_parser v0.8.0 architecture changes & vizEulize graph explorer enhancements by @Nurysso in #73
- eulix_cli v0.8.3 update, and style changes by @Nurysso in #74
- parser build command changes by @Nurysso in #75
- relicensed to Apache-2.0 by @Nurysso in #76
- Alpha eulix_lsp, and libeulix v0.8.2 by @Nurysso in #77
- feat(mcp): add MCP server with adaptive retrieval cascade (beta) by @Nurysso in #78
- [Refactor]: Tui updated and lint fixes by @Nurysso in #79
- Dev by @Nurysso in #80
Upgrade Notes
- Build configuration: Update your parser build commands and flags to match the new
rpmallocintegration. - Parser architecture: Use
libeulixwhen integrating parsing and analysis into Rust applications; useeulix_parserfor command-line workflows. - Call graph consumers: Update tools consuming
call_graph.jsonto account for the revised format and embedded function tags. - MCP server: The MCP integration is currently in Beta and may undergo further changes.
Eulix v0.8.3 delivers a more scalable parsing architecture, lower memory requirements, smaller knowledge-base files, and improved graph visualization for large codebases.
Full Changelog: v0.8.2...v0.8.3
Release v0.8.2
Eulix Release Notes
Eulix CLI v0.8.2
This release focuses on retrieval performance, parser output reduction, query improvements, and internal cleanup.
Retrieval
- ~67% reduction in
kb.jsonsize - Updated the retrieval parser to produce smaller files, improving retrieval speed and reducing peak memory usage without measurable loss in accuracy.
- Updated the hydration algorithm for improved retrieval performance and data processing.
- Optimized
callersandcalleesqueries by skipping unnecessary semantic-search processing. - 60-70% faster retrieval time due to smaller files to process
Query Improvements
- Reworked MMR and introduced anchor pinning.
- Refactored the monolithic query package into smaller modules.
- Added dedicated classifier and router test suites.
- Cleaned up and reorganized query-related symbols and components.
Extra
- Project-wide configuration constants were moved into
utils/constants. - Improved the TUI and fixed several bugs.
- Deprecated the
gladosandaspirinemodules. - Call relationships remain available through
kb_call_graph.json. checksumnow reads directly fromeulix_parseroutput instead of generatingchecksum.json.zst[this was done cause parser already have to walk the dir might as well generate checksums, this saves first run time].
Eulix_Parser v0.7.7
- Reduced from 2.06 GB → 0.67 GB on the Linux kernel benchmark.
- Reduced total filesystem write volume by 48.9% (end-to-end analyze pipeline).
- Output phase improved from ~6.89s → ~4.08s.
- Slight reduction in total wall-clock time.
kb.jsonnow uses slimmed-down structures (FileDataSimple,FunctionSimple,ClassSimple) for serialization.- Unnecessary downstream fields are no longer written into
kb.json.
Eulix Embed v0.4.1
- Fixed linter issues and updated
lint.shto use Ruff for most linting. - Expanded the
comparecommand from checking selected entries to verifying the entirety ofembeddings.binandvectors.bin.
[BETA] VizEulize — Call Graph Visualization
VizEulize is a new local HTML-based visualization tool for exploring Eulix call graphs.
Features
-
Local JSON loading
- Load
kb_call_graph.jsonand optionallykb_index.jsonthrough drag-and-drop or a file selector. - Files are processed locally and are not uploaded externally.
- Load
-
Filtering
-
Filter nodes by category and tag.
-
Filter relationships by direction:
- Both directions
- Callees →
- ← Callers
-
Limit traversal depth to 1, 2, or 3 hops.
-
-
Interactive graph
- Pan and drag around the graph.
- Scroll to zoom.
- Click nodes to inspect their details.
- Double-click a node to isolate and focus on its immediate neighborhood.
-
Default view
- Automatically highlights highly connected nodes when a dataset is loaded.
-
Reset
- Restore the default layout, zoom level, and filters with one click.
Using VizEulize
The VizEulize HTML file is installed at:
$HOME/.Eulix/bin
For now, Eulix CLI does not automatically open or interact with the visualization tool.
To use it:
- Manually open the VizEulize HTML file from
$HOME/.Eulix/bin. - Generate/analyze your project with Eulix.
- Load:
.eulix/kb_call_graph.json
.eulix/kb_index.json
into VizEulize using the file picker or drag-and-drop.
The visualization currently operates entirely on the locally provided JSON files.
Note: Automatic CLI integration for launching/loading the call graph visualization is not available yet.
Full Changelog: v0.8.1...v0.8.2
Release v0.8.1
Full Changelog: https://github.com/Nurysso/eulix/commits/v0.8.1
Release v0.8.0
What's Changed
Full Changelog: https://github.com/Nurysso/eulix/commits/v0.8.0