You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GATs have officially been stabilized on nightly, which should hit stable on rustc 1.65 (start of November). It will help us greatly simplify the core memflow traits, and I think it would be a great target to finally reach memflow 0.2 stable shortly after that. This gives us about 7 weeks to finish the work we began.
This issue tracks remaining design issues with memflow. Not everything needs to be done, but they are pretty important:
Core memflow usage:
Primary issues with memflow lie in lack of documentation, complexities of the types involved, which lead to overwhelm. The crux of the issue is with the trait complexity and CGlue emitting a lot of similar types, that cannot be documented and thus it is unclear what is to be used.
Make OS/Keyboard traits use GATs.
Export core plugin types (OsInstance, ProcessInstance, ConnectorInstance) without the ArcBox suffix and document their usage. This requires changes in CGlue.
Document remaining modules.
Rework I/O by moving it to separate crate.
CGlue:
Primarily we want to improve developer experience when using CGlue.
Free up the base name of a CGlue object for user definitions. Add some sort of suffix, such as Raw.
Use build.rs based source code generation to make tools, such as rust-analyzer work better with CGlue objects.
I/O (read_raw_iter/write_raw_iter):
Primary purpose of this is to create a shared I/O crate suitable for memflow and filer usage. Implementing filer-tokio proved to be difficult due to missing metadata when buffers travel across network. Ideal I/O would not compromise on performance and simplicity for both implementation and usage.
Define core I/O primitives.
Create helpers for simple usage.
Move memflow and filer/cloudflow to the shared implementation.
The text was updated successfully, but these errors were encountered:
GATs have officially been stabilized on nightly, which should hit stable on rustc 1.65 (start of November). It will help us greatly simplify the core memflow traits, and I think it would be a great target to finally reach memflow 0.2 stable shortly after that. This gives us about 7 weeks to finish the work we began.
This issue tracks remaining design issues with memflow. Not everything needs to be done, but they are pretty important:
Core memflow usage:
Primary issues with memflow lie in lack of documentation, complexities of the types involved, which lead to overwhelm. The crux of the issue is with the trait complexity and CGlue emitting a lot of similar types, that cannot be documented and thus it is unclear what is to be used.
ArcBox
suffix and document their usage. This requires changes in CGlue.CGlue:
Primarily we want to improve developer experience when using CGlue.
Raw
.I/O (read_raw_iter/write_raw_iter):
Primary purpose of this is to create a shared I/O crate suitable for memflow and filer usage. Implementing filer-tokio proved to be difficult due to missing metadata when buffers travel across network. Ideal I/O would not compromise on performance and simplicity for both implementation and usage.
The text was updated successfully, but these errors were encountered: