Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

picostd - motivation #40

Open
brodycj opened this issue Jul 31, 2024 · 0 comments
Open

picostd - motivation #40

brodycj opened this issue Jul 31, 2024 · 0 comments
Assignees

Comments

@brodycj
Copy link
Owner

brodycj commented Jul 31, 2024

From my recent work experience at Amazon Robotics I discovered that while the standard C++ classes for features such as creating threads & managing mutex locking would be useful at multiple levels such as standard POSIX Linux/Unix code, embedded Linux & safety-certified embedded microcontroller OS, these standard C++ classes may not always be suitable for all of these levels.

Embedded microcontroller kernels sometimes decide to define their own APIs for the kind of code that normally works behind a standard POSIX C API.

Also, quite frankly some of the standard C++ classes, including the STL, and other projects such as Boost are designed to work really nicely with normal POSIX desktops, laptops, and servers, but not so well designed for low-power, embedded CPUs & OS libraries.

Rust has a really nice solution of providing a no_std option that can be used to build applications & many libraries without the bulk of its standard library ... with an option whether or not to support heap-based functionality with a custom allocator.

Given this experience, I am now very interested in working on a solution that can provide some of the most important functionality working as consistently & uniformly as possible across the workstation, server, and various embedded embedded levels, and other levels such as WASM in the browser & on the server. I just discovered something very interesting-looking: https://blog.nginx.org/blog/server-side-webassembly-nginx-unit

... and this: https://unit.nginx.org/ ... open-source: https://github.com/nginx/unit

Another pattern that may be helpful: https://www.sqlite.org/vfs.html - provides a nice, flexible, pluggable OS API with a clean-looking API. I am thinking this kind of flexible & pluggable architecture could be beneficial for Rust as well.

I would like to start by focusing on providing this kind of functionality for C++ & Rust, may consider higher-level languages such as Python, Java, etc. in the future. I have already registered multiple picostd domains, @picostd on X (Twitter) & GitHub org, will add Rust crate placeholder next ✅.

@brodycj brodycj self-assigned this Jul 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant