Comments (2)
Thanks. I won't have much time to look into this unfortunately as the solution I have so far is good enough for me. That said, there is an interesting accelerated implementation here:
https://github.com/lemire/fastbase64
It would be neat to get a well-tested c++ header-only version of it available somewhere.
There is also another option but it's GPL licensed which is an issue for me:
https://github.com/powturbo/Turbo-Base64
from base64pp.
Hey @tvercaut ,
Thank you very much for including this library into that base64 benchmark project.
Indeed, performance was not the goal for this project, as it was written for a blog post I did a while back. Unfortunately, having more optimisations generally means the code becomes harder to read, so I developed it initially with that in mind.
Saying that, this repository got way more attention than I anticipated, and every now and then someone suggests improvements. I'm very glad for that!
I've been meaning to research different implementations and how I can improve this library without making it too difficult in terms of readability. One particular idea I've seen was implementing SIMD accelerated encoders/decoders, as the codebases I've seen didn't seem that "bloated".
I'll take a closer look at your implementation and will try and wrap my head around it, maybe we could work together to make something that beats other implementations out there?
from base64pp.
Related Issues (20)
- Update documentation for the "decode" function
- Add Shared Library Build to CI HOT 1
- add std::string / std::string_view overload to base64pp::encode() HOT 5
- Sort out the API input parameters signatures
- Fix the inheritance of CMAKE_CXX_FLAGS in CMakePresets.json
- [RFC] Package for OpenEmbedded/Yocto Linux HOT 7
- Add shared library builds to CI HOT 1
- Sort out the naming for the builds in the CI
- Modify Docker and CI for building C++20 Modules
- Fix Debug builds for the Module branch
- Figure out how the moduled version of repo will live
- CI - Proper names to the builds
- Add support for unpadded base64 strings HOT 1
- Add CMake install step to CI
- Add more round-trip tests
- [CI/CD] Make sure coverage artifact upload happens even when coverage threshold fails
- [Conan] Add CI/CD to test conan package
- [Conan] consolidate package configurations
- Disable test building by default
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 base64pp.