Comments (4)
Hello,
Thanks for the feedback! Sorry for the late response.
How would you go about including libuv inside the executable?
Could you please provide more details please? Why it could be needed? libuv
is an async IO library from the C world, whereas in Rust we have awesome mio
.
I also not really sure about custom lua scripts and mlua
. I mean this a good task for other libraries that depends on mlua
. mlua
is designed to provide a generic interface to Lua language/runtime rather than specific applications.
from mlua.
Why it could be needed?
I am using mlua
to have lua as my scripting language for an application. libuv
provides various utility ranging from threads to filesystem functions. I want to include this library so I don't have to implement all of this myself.
After researching this some more I found out that neovim
just has a copy of the libuv.dll
in the production build which then gets included in the package.cpath
. I probably will also have to do it like this.
Edit:
I also not really sure about custom lua scripts and mlua
This was more meant as a "questions issue". I don't want this to be added to mlua
, but I wanted to know how you would go about implementing my usecases.
from mlua.
libuv provides various utility ranging from threads to filesystem functions. I want to include this library so I don't have to implement all of this myself.
After researching this some more I found out that neovim just has a copy of the libuv.dll in the production build which then gets included in the package.cpath. I probably will also have to do it like this.
I'm afraid if libuv.dll
is not a Lua module, you will need to use FFI and tons of unsafe code to integrate with a C library.
If neovim
has a runtime (ev loop), you could try to integrate using mlua
async functionality.
In a simple way, if neovim
allows to execute coroutine.yield()
to switch context, you just can create async functions that uses async-std
and they should work.
This was more meant as a "questions issue". I don't want this to be added to mlua, but I wanted to know how you would go about implementing my usecases.
Ah, sorry, I misunderstood the question :)
Probably on the of common ways is to a to create lua files and then include them to a binary using include_str!
macro. Lua code can be executed in mlua
using Lua::load
from mlua.
In the end i just decided to release a zip folder instead of a single executable similiar to neovim which contains lua files and dlls. Instead of libuv I used luv which already has some nice bindings for libuv. Thank you for your time!
from mlua.
Related Issues (20)
- Can module mode works with async? HOT 2
- Difficulty creating a wrapper type HOT 1
- Support Audio manipulation HOT 2
- Support UI HOT 2
- Error compiling module to wasm32-unknown-emscripten
- Terra integration?
- Lifetime Issues with Scope HOT 3
- In a module best way to deal with async HOT 4
- Serialization: Recursive table detection yields false positives HOT 1
- Allow setting luau compiler options when loading with `require` HOT 2
- Builds fail with useless errors if user's global Cargo target-dir is changed HOT 3
- Send feature flag HOT 2
- bug: `c_void` not a Sync HOT 3
- Limiting script execution time (a question and a bug report) HOT 2
- Deserialize from a table with function HOT 2
- Async functions from different modules treated as normal coroutines HOT 4
- How to convert json to `mlua::Value` like `c-json.decode` HOT 4
- how to method UserData method self.vars? HOT 2
- table.concat expect got "hello" HOT 2
- Get `registry_id` from `RegistryKey` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mlua.