# RepliBuild.jl

**URL:** <https://discourse.julialang.org/t/replibuild-jl/134065>\
**Category:** Maker\
**Tags:** llvm\
**Created:** [November 23, 2025, 9:36pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065 "2025-11-23T21:36:39Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [November 23, 2025, 9:36pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/1 "2025-11-23T21:36:39Z")

</div>

Been working on a julia build orchestrator, using llvm directly and clang for deps graphs and configuring to a toml, generating executables, shared libraries, or binary wrapping in julia, without the traditional hand coding of the entire wrapper but to make type stability and translation happen at the IR stage so that the converted code gets wrapped in julia and gets julia gc and runtime from the source. This is possibly extended to all languages that compile to IR, im solo on this and would like some community users to pick it apart. Theres 2 versions just the compiler and wrapper pipeline, and the other has daemonmode, module registry and other features i sidelined to focus on just source code to llvm to julia.

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [November 25, 2025, 9:59pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/2 "2025-11-25T21:59:05Z")

</div>

I actually made huge breakthrough in ffi gen with a 3 stage Validation system of AST tree deps, IR and DWARF debug info to generate julia binding automatically no manual coding, i need to handle inheritance and pointers, enums. This does require compiling the library your trying to generate bindings for but the compiler logic is built in as well as wrapper, with the biggest dependency being distributed, this 100% is better than clang.jl and CxxWrap.jl architectures. They rely on either parsing header info, or manual coding… both are terrible for generating bindings alone but IR, DWARF and AST together give the whole picture for julia to generate bindings from, its exciting because i can do this to anything that compiles against llvm, meaning julia users can bind in julia any library that uses llvm and c abi. Like rust, swift even python

---

<div class="post-metadata">

**Author:** ![Olivier\_Merchiers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/olivier_merchiers/32/4073_2.png) [@Olivier\_Merchiers](https://discourse.julialang.org/u/Olivier_Merchiers)\
**Post date:** [November 26, 2025, 8:47am UTC](https://discourse.julialang.org/t/replibuild-jl/134065/3 "2025-11-26T08:47:55Z")

</div>

This sounds great. Could you give a link to an example? I looked for the package RepliBuild.jl you mention but I could not find it.

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [November 26, 2025, 3:25pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/4 "2025-11-26T15:25:07Z")

</div>

RepliBuild.jl is in julia registry and on github.

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [November 26, 2025, 3:30pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/5 "2025-11-26T15:30:20Z")

</div>

[https://github.com/obsidianjulua/RepliBuild.jl](https://github.com/obsidianjulua/RepliBuild.jl)

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [November 26, 2025, 3:31pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/6 "2025-11-26T15:31:37Z")

</div>

# Auto-generated Julia wrapper for struct\_test

# Generated: 2025-11-24 16:55:31

# Generator: RepliBuild Wrapper (Tier 3: Introspective)

# Library: libstruct\_test.so

# Metadata: compilation\_metadata.json

# 

# Type Safety: Perfect - Types extracted from compilation

# Language: Language-agnostic (via LLVM IR)

# Manual edits: None required

module StructTest

const LIBRARY\_PATH = “/home/grim/Desktop/Projects/RepliBuild.jl/examples/struct\_test/julia/libstruct\_test.so”

# Verify library exists

if !isfile(LIBRARY\_PATH)  
error(“Library not found: $LIBRARY\_PATH”)  
end

# =============================================================================

# Compilation Metadata

# =============================================================================

const METADATA = Dict(  
“llvm\_version” =\> “21.1.5”,  
“clang\_version” =\> “clang version 21.1.5”,  
“optimization” =\> “2”,  
“target\_triple” =\> “x86\_64-unknown-linux-gnu”,  
“function\_count” =\> 3,  
“generated\_at” =\> “2025-11-24T16:55:00.674”  
)

# =============================================================================

# Struct Definitions (from DWARF debug info)

# =============================================================================

# C++ struct: Point (2 members)

mutable struct Point  
x::Cdouble  
y::Cdouble  
end

export add\_points, create\_point, distance

“”"  
add\_points(arg1::Point, arg2::Point) → Point

Wrapper for C++ function: `add_points(Point, Point)`

# Arguments

- `arg1::Point`
- `arg2::Point`

# Returns

- `Point`

# Metadata

- Mangled symbol: `_Z10add_points5PointS_`
- Type safety: From compilation  
“”"

function add\_points(arg1::Point, arg2::Point)::Point  
ccall((:_Z10add\_points5PointS_, LIBRARY\_PATH), Point, (Point, Point,), arg1, arg2)  
end

“”"  
create\_point(arg1::Cdouble, arg2::Cdouble) → Point

Wrapper for C++ function: `create_point(double, double)`

# Arguments

- `arg1::Cdouble`
- `arg2::Cdouble`

# Returns

- `Point`

# Metadata

- Mangled symbol: `_Z12create_pointdd`
- Type safety: From compilation  
“”"

function create\_point(arg1::Cdouble, arg2::Cdouble)::Point  
ccall((:\_Z12create\_pointdd, LIBRARY\_PATH), Point, (Cdouble, Cdouble,), arg1, arg2)  
end

“”"  
distance(arg1::Point, arg2::Point) → Cdouble

Wrapper for C++ function: `distance(Point, Point)`

# Arguments

- `arg1::Point`
- `arg2::Point`

# Returns

- `Cdouble`

# Metadata

- Mangled symbol: `_Z8distance5PointS_`
- Type safety: From compilation  
“”"

function distance(arg1::Point, arg2::Point)::Cdouble  
ccall((:_Z8distance5PointS_, LIBRARY\_PATH), Cdouble, (Point, Point,), arg1, arg2)  
end

end # module StructTest

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [December 2, 2025, 5:04pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/8 "2025-12-02T17:04:40Z")

</div>

This post was temporarily hidden by the community for possibly being off-topic, unfocused, inappropriate, or spammy.

---

<div class="post-metadata">

**Author:** ![ForceBru](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/forcebru/32/21389_2.png) [@ForceBru](https://discourse.julialang.org/u/ForceBru)\
**Post date:** [December 2, 2025, 5:16pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/9 "2025-12-02T17:16:31Z")

</div>

Seems like 100% LLM slop TBH

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [December 2, 2025, 5:38pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/10 "2025-12-02T17:38:13Z")

</div>

Appreciate it, im solo as theres alot more julia users in julia than builders but if you wanna help, then your more than welcome to resolve some very big issues as another person. I use the llm. If you dont then thats a personal choice, or at least respind in a julia manner with references and actual concerns. Thank you

---

<div class="post-metadata">

**Author:** ![obsidianjulua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/obsidianjulua/32/221495_2.png) [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Post date:** [December 2, 2025, 7:02pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/11 "2025-12-02T19:02:12Z")

</div>

> <https://github.com/obsidianjulua/RepliBuild.jl/blob/main/test/stress_test/julia/StressTest.jl>

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [December 2, 2025, 7:34pm UTC](https://discourse.julialang.org/t/replibuild-jl/134065/12 "2025-12-02T19:34:10Z")

</div>

> [@obsidianjulua](#):
>
> Appreciate it, im solo as theres alot more julia users in julia than builders but if you wanna help, then your more than welcome to resolve some very big issues as another person. I use the llm. If you dont then thats a personal choice, or at least respind in a julia manner with references and actual concerns. Thank you

Please do not just plop LLM slop into the forums here. It’s effectively a denial of service of our collective attention.

This is a forum for humans, to be read and written by humans.
