# Better Cryptography and Blockchain Support

**URL:** <https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043>\
**Category:** Offtopic\
**Created:** [July 30, 2022, 11:55pm UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043 "2022-07-30T23:55:54Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe\_Schnetzler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joe_schnetzler/32/20423_2.png) [@Joe\_Schnetzler](https://discourse.julialang.org/u/Joe_Schnetzler)\
**Post date:** [July 30, 2022, 11:55pm UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/1 "2022-07-30T23:55:54Z")

</div>

Hello all! Founder of Defund Finance ([https://defund.app/](https://defund.app/)) and Calypso here. I am a huge Julia user but tend to always be in Goland, Rust, or Nodejs when developing for my blockchain companies. There is a lot of use cases for Julia within the decentralized space but not a bunch of work coming out of it. I am a major Cosmos SDK contributor and pretty engulfed in the Cosmos ecosystem. I am starting to build a Cosmos IBC relayer in Julia [GitHub - schnetzlerjoe/julia-relayer: A super fast, multi-threaded IBC relayer built with Julia.](https://github.com/schnetzlerjoe/julia-relayer) as I think the task scheduler and multi-threading is a great use case for building a high-performance off-chain relayer.

Am curious to hear about crypto packages Julia has. Seems I will have to be using PyCall a lot within the relayer. Wish there was better support.

Thanks!

---

<div class="post-metadata">

**Author:** ![StatisticalMouse](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/statisticalmouse/32/43370_2.png) [@StatisticalMouse](https://discourse.julialang.org/u/StatisticalMouse)\
**Post date:** [July 31, 2022, 9:07am UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/2 "2022-07-31T09:07:30Z")

</div>

I haven’t kept up with cryptography in recent years, but it would seem to me that it would make more sense to skip the Python middle-layer and call something like these Rust libraries directly.

> **[Awesome Rust Cryptography](https://cryptography.rs/)**
>
> Showcase of notable cryptography libraries developed in Rust

There should also be good crypto libraries in C/C++.

---

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [July 31, 2022, 10:24am UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/3 "2022-07-31T10:24:50Z")

</div>

Some years ago I have written BTCParser.jl [1] with the idea to do data science on the BTC block chain. It worked great but is unmaintained now. IIRC there was someone trying to implement a BTC node/client but I am not sure if this got anywhere, I think it was [2].

[1] [GitHub - gdkrmr/BTCParser.jl: A Bitcoin blockchain parser in pure Julia](https://github.com/gdkrmr/BTCParser.jl)

[2] [braneproject / BitcoinPrimitives.jl · GitLab](https://gitlab.com/braneproject/BitcoinPrimitives.jl)

---

<div class="post-metadata">

**Author:** ![Joe\_Schnetzler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joe_schnetzler/32/20423_2.png) [@Joe\_Schnetzler](https://discourse.julialang.org/u/Joe_Schnetzler)\
**Post date:** [July 31, 2022, 7:08pm UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/4 "2022-07-31T19:08:18Z")

</div>

Yeah I am building out a cryptography.jl library wrapping [GitHub - JuliaBinaryWrappers/OpenSSL\_jll.jl](https://github.com/JuliaBinaryWrappers/OpenSSL_jll.jl) and [GitHub - JuliaBinaryWrappers/Libgcrypt\_jll.jl](https://github.com/JuliaBinaryWrappers/Libgcrypt_jll.jl) that will help to get me where I need for signing with Cosmos SDK. From there anyone can feel free to expand, I will do my best to as well.

---

<div class="post-metadata">

**Author:** ![Joe\_Schnetzler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joe_schnetzler/32/20423_2.png) [@Joe\_Schnetzler](https://discourse.julialang.org/u/Joe_Schnetzler)\
**Post date:** [July 31, 2022, 7:35pm UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/5 "2022-07-31T19:35:33Z")

</div>

Whats the best way to bind/call Rust from Julia?

---

<div class="post-metadata">

**Author:** ![StatisticalMouse](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/statisticalmouse/32/43370_2.png) [@StatisticalMouse](https://discourse.julialang.org/u/StatisticalMouse)\
**Post date:** [August 1, 2022, 8:51am UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/6 "2022-08-01T08:51:49Z")

</div>

Extern C on rust, ccall on Julia

---

<div class="post-metadata">

**Author:** ![StatisticalMouse](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/statisticalmouse/32/43370_2.png) [@StatisticalMouse](https://discourse.julialang.org/u/StatisticalMouse)\
**Post date:** [August 1, 2022, 8:55am UTC](https://discourse.julialang.org/t/better-cryptography-and-blockchain-support/85043/7 "2022-08-01T08:55:02Z")

</div>

There’s also JuliaPackageWithRustDep.jl. I haven’t used it.
