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

Purging 0.4.0 in favour of simplicity and little bit of performance cost. #39

Closed
00imvj00 opened this issue Feb 13, 2021 · 10 comments
Closed

Comments

@00imvj00
Copy link
Owner

We tried to implement single allocation encoding and decoding, which is added in 0.4.0, but it made things bit complicated.

Also it introduced lots of lifetime references, which makes adding this lib in async code very complicated.

So, this PR is just a discussion in order to bring back 0.3.0 as version bump to 0.5.0 and then stabilize to 1.0 in near future.

@vincentdephily @MathiasKoch need your guide in this.

@00imvj00
Copy link
Owner Author

@MathiasKoch @vincentdephily ^^

@MathiasKoch
Copy link
Contributor

I would be sad to see that go, as it is the only "feature" keeping me here. I need the no-alloc for my application. That said, i can always just fork. In an idea world, i would just lie to see less fragmentation of ecosystem, not more.

I am also not in a position currently where i have time to look into solving the painpoints, especially as i have still not been presented with the actual pain points, more than "it's a lifetime thing"

@00imvj00
Copy link
Owner Author

Is there any other way we can resolve this then ? where we can do no-alloc without lifetimes?

@00imvj00
Copy link
Owner Author

@MathiasKoch can we use Pin instead of taking lifetime??

@MathiasKoch
Copy link
Contributor

My familiarity with Pin is very limited, but i think the issue might be the inner type of said pin? String is not an option, and i don't think Pin<&str> removes the need for the lifetime?

@00imvj00
Copy link
Owner Author

Yeah, true. I tried that. Doesn't work. by the way, are you using this in prod? if yes, can i know what kind of prod environment this is being used?

@MathiasKoch
Copy link
Contributor

Yeah, we are using it in prod ;)

It's an IIoT device based on STM32, sending data to AWS, with roughly a stack of

Most of it is still work in progress, while the lower level stuff is starting to settle in.

@00imvj00
Copy link
Owner Author

awesome. 👍🏽

@MathiasKoch
Copy link
Contributor

It could be worth looking into how smoltcp handles their lifetimes using the managed crate.
They have extensive async support, allows alloc free nostd usage, and is also widely used in full-blown std applications.

@00imvj00
Copy link
Owner Author

00imvj00 commented Mar 8, 2021

Interesting. Sure I will check it out.

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

3 participants