Skip to content

Release v0.8.3

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Oct 15:11
· 6 commits to main since this release
fc146bb

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_parser into 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 rpmalloc as 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.json reduced 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.json serialization 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 rpmalloc integration.
  • Parser architecture: Use libeulix when integrating parsing and analysis into Rust applications; use eulix_parser for command-line workflows.
  • Call graph consumers: Update tools consuming call_graph.json to 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