Repository navigation
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