v0.3 - Big Bird
This version feels almost mature enough to where I would call it v1.0. But due to lack of production environment testing, it will stay v0.3
I'm hoping to be able to add hotfixes for any bugs unseen or necessary fixes.
Thanks to every single person who contributed to this project! I hope I didn't forget to mention any of you.
Here are the changes:
Packages / Dependencies
- CMake Improvements (for better compatibility with Conan recipes). @madduci, @prince-chrismc, and The Conan team. #96
- Vcpkg Support. @thinking-tower #137
- Fix CMake problem when Crow is built in a subdirectory of another project. @rittelle #103
- More CMake Fixes. @ugermann #124
- Crow can now be installed on the system using
make install. @ayaankhan98 #80
Websockets
BugReset the internal header variable before every read. (fixing potential issues where read is run and no actual data is taken from the socket). #44BugFixed potential crash when using SSL Websockets. @fran6co #44FeatureAdded support for non masked client messages. #44FeatureAdded functionality to send a ping message from the server. #44FeatureExposed methods to send Ping and Pong to the end-user. #44FeaturePing and Pong payloads to be larger than 127 bytes are now allowed. #44
HTTP
FeatureAdded Support for HTTP Compression using Zlib. @pierobot #93FeatureMade Compression (and Zlib dependency) optional (via macro). @alejandroarmas #142BugFixed broken Static files due to Responses not being cleared. @rittelle #109FeatureAdded Catch-all Route. @Tibbel #122 #126FeatureUsers can now define anything they want a handler to return using thereturnableclass. #84FeatureCrow handler can now have Response alone as an argument (without Request). @ayaankhan98 @klaus-moon #76FeatureServer name can now be set to anything the User wants. @Makaveli #79FeatureMore robust redirection tools. #87Featuremethodspop(),pop_list(),pop_dict(), andkeys()added toquery_string. #132FeatureCrow now handlesHEADandOPTIONSHTTP methods automatically. #117BugFixed issue where response is logged twice. #128
Static Files
FeatureCreatedstaticfolder similar to flask. #50FeatureStatic File support was enabled on Windows. @epajarre #55
Mustache
FeatureCrow logs a warning if a template is not found. @rittelle #102
Json
Featurecrow::json::wvaluecan now return any Json type, not just Json objects. #70Featurecrow::json::wvaluecan now use eitherstd::unordered_maporstd::map(for organized results). #132FeatureAddedlo()method to json::rvalue, returns a vector of json::rvalue containing whatever a json object or list has. #132FeatureAdded constructor to createcrow::json::wvaluefromstd::vector. #132FeatureAddedkeys()method to json::rvalue. #132FeatureAddedsize()tocrow::json::wvalue. #132FeatureAddedstd::string()operator to json::rvalue (allowsstd::string(json["abc"]). #132dump()is now part ofcrow::json::wvalueand is const. #70 @belugum #135FeatureAdded copy constructor tocrow::json::wvalue. #132
Documentation
- Added Guides / Tutorials powered by mkdocs. #71 #72 #73 #74 #95 #132 @wentasah #134 @thinking-tower #137
- Added in code documentation for most of the library. #65 #44 #61
- Cleaned up a small problem with
app.hdocumentation. #44 - Small documentation error fix. @tibovanheule #114
- Readme changes. #71
CI/CD
- Travis replaced with Drone.io. #120
Testing / Examples
- Added Websocket tests. #44
- Added examples and tests for json and query_string new methods. #132
Bug#includeforexample_with_all. @supersaiyanmode #63BugRenamed CMake target: example -> basic_example. @supersaiyanmode #64BugCrow now reports the actual port from ASIO when running. @ChoppinBlockParty #119BugMustache tests now included in coverage. #129
Other
merge_all.pyis now windows compatible. #58- Added
CROW_MAINMacro to avoid multiple definition error of static variables. @fckxorg #111 #118 - Crow's signal handler is now optional. @NRizzoInc @ilejn #85
- MSVC compatibility fixes. @sfinktah #101
- Better Xcode Compatibility. @dspverden #139
- Recast 64-bit size_t to 32-bit int to remove MSVC warnings. @sfinktah #106
uintwas replaced withunsigned, improving compatibility. @epajarre #54- Middlewares are now in a subfolder rather than being on the same level as the core library. #51
- Moved Repository under "CrowCpp" organization.