lemme in@lemm.ee to Programming@programming.dev · 1 month agoThe US government wants devs to stop using C and C++www.theregister.comexternal-linkmessage-square86fedilinkarrow-up1211arrow-down119cross-posted to: purianesimo@fed.dyne.orgtechnology@lemmit.online
arrow-up1192arrow-down1external-linkThe US government wants devs to stop using C and C++www.theregister.comlemme in@lemm.ee to Programming@programming.dev · 1 month agomessage-square86fedilinkcross-posted to: purianesimo@fed.dyne.orgtechnology@lemmit.online
minus-squareScreaminOctopus@sh.itjust.workslinkfedilinkEnglisharrow-up5arrow-down1·1 month agoIn my understanding, you can’t interface with the C abi without using an unsafe block.
minus-squareFizzyOrange@programming.devlinkfedilinkarrow-up1·1 month agoI think there are some crates that wrap the unsafe code for you, e.g. https://github.com/rodrimati1992/abi_stable_crates/ (I haven’t ever tried it).
minus-squarecalcopiritus@lemmy.worldlinkfedilinkarrow-up1arrow-down1·1 month agoYou can just use an unsafe block though. Or make a thin wrapper that is just safe functions that inside just have an unsafe block with the C ABI function. Even if rust had a stable ABI, you would still need that unsafe block.
In my understanding, you can’t interface with the C abi without using an unsafe block.
I think there are some crates that wrap the unsafe code for you, e.g. https://github.com/rodrimati1992/abi_stable_crates/ (I haven’t ever tried it).
You can just use an unsafe block though. Or make a thin wrapper that is just safe functions that inside just have an unsafe block with the C ABI function.
Even if rust had a stable ABI, you would still need that unsafe block.