Skip to content

LILAC is a Language to language Interoperability LAyer Compiler - with a goal that producing bindings across languages.

License

Notifications You must be signed in to change notification settings

Sharp0802/lilac

Repository files navigation

Welcome to LILAC

Deploy with Doxygen

LILAC is a Language to language Interoperability LAyer Compiler - with a goal that producing bindings across languages.

Interoperability across languages always sucks developers... (Especially, For managed languages such as Java, C#, Python)

For example, between C++ and C#:

  • C++/CLI couldn't support modern C++ well
  • In addition, C++/CLI doesn't support GNU/Linux
  • P/Invoke couldn't support C++ well because of name mangling etc.

But, with power of LLVM, we hope that LILAC will generate bindings between C++ and C# ...or what else! (Actually, For the languages not supporting LLVM, We need to implement frontend for each languages)

Let's break down language barrier!

Supported Languages

Language Backend Frontend
C++ ! O
C# O !
  • O : Implemented.
  • ? : Not implemented, but planned.
  • ! : Work in Progress

Build Requisites

Component Tested on Misc.
LLVM/Clang LLVM 20

Runtime Requirements

Component Tested on Misc.
LLVM/Clang LLVM 20
.NET .NET 8 Only C# frontend

Getting Started