sdk-ng
C++ REST SDK
sdk-ng | C++ REST SDK | |
---|---|---|
4 | 13 | |
159 | 7,806 | |
3.1% | 0.4% | |
8.0 | 3.6 | |
5 days ago | 4 months ago | |
C | C++ | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sdk-ng
-
Need help getting Zephyr RTOS native_posix target working from an x86_64 host
# Basic configuration for Zephyr development. { pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/refs/tags/23.05.tar.gz") { } }: let pp = pkgs.python3.pkgs; imgtool = pp.buildPythonPackage rec { version = "1.10.0"; pname = "imgtool"; src = pp.fetchPypi { inherit pname version; sha256 = "sha256-A7NOdZNKw9lufEK2vK8Rzq9PRT98bybBfXJr0YMQS0A="; }; propagatedBuildInputs = with pp; [ cbor2 click intelhex cryptography ]; doCheck = false; pythonImportsCheck = [ "imgtool" ]; }; python-packages = pkgs.python3.withPackages (p: with p; [ autopep8 pyelftools pyyaml pykwalify canopen packaging progress psutil anytree intelhex west imgtool cryptography intelhex click cbor2 # For mcuboot CI toml # For twister tabulate ply # For TFM pyasn1 graphviz jinja2 requests beautifulsoup4 # These are here because pip stupidly keeps trying to install # these in /nix/store. wcwidth sortedcontainers ]); # Build the Zephyr SDK as a nix package. new-zephyr-sdk-pkg = { stdenv , fetchurl , which , python38 , wget , file , cmake , libusb , autoPatchelfHook }: let version = "0.15.0"; arch = "arm"; sdk = fetchurl { url = "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${version}/zephyr-sdk-${version}_linux-x86_64_minimal.tar.gz"; hash = "sha256-dn+7HVBtvDs2EyXSLMb12Q+Q26+x6HYyPP69QdLKka8="; }; armToolchain = fetchurl { url = "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${version}/toolchain_linux-x86_64_arm-zephyr-eabi.tar.gz"; hash = "sha256-B7YIZEyuqE+XNI7IWnN6WiC1k9UdFEt4YN4Yr7Vn3Po="; }; in stdenv.mkDerivation { name = "zephyr-sdk"; inherit version; srcs = [ sdk armToolchain ]; srcRoot = "."; nativeBuildInputs = [ which wget file python38 autoPatchelfHook cmake libusb ]; phases = [ "installPhase" "fixupPhase" ]; installPhase = '' runHook preInstall echo out=$out mkdir -p $out set $srcs tar -xf $1 -C $out --strip-components=1 tar -xf $2 -C $out (cd $out; bash ./setup.sh -h) rm $out/zephyr-sdk-x86_64-hosttools-standalone-0.9.sh runHook postInstall ''; }; zephyr-sdk = pkgs.callPackage new-zephyr-sdk-pkg { }; packages = with pkgs; [ # Tools for building the languages we are using llvmPackages_16.clang-unwrapped # Newer than base clang gnat zig zls rustup glibc_multi # Dependencies of the Zephyr build system. (python-packages) cmake ninja gperf python3 ccache dtc gmp.dev zephyr-sdk ]; in pkgs.mkShell { nativeBuildInputs = packages; # For Zephyr work, we need to initialize some environment variables, # and then invoke the zephyr setup script. shellHook = '' export ZEPHYR_SDK_INSTALL_DIR=${zephyr-sdk} export PATH=$PATH:${zephyr-sdk}/arm-zephyr-eabi/bin export VIA_WORKSPACE_PATH="$(realpath ./workspace/)" source ./workspace/zephyr/zephyr-env.sh ''; }
-
Dev environment
I just get the cross compile tools from ARM : https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads ... or zephyr : https://github.com/zephyrproject-rtos/sdk-ng/releases
-
How do I "replicate" an IDE like the Keil uVision or the TI CCS using Visual Studio Code?
There are free gcc based cross tools (compilers, debuggers, emulators) for a lot of MCUs (ARM, MIPS, riscv, etc).
-
When you talk about compilers does each processor have its own compiler for it? Say I am compiling a code a C code for the ESP32 and compiling a C code for the Arduino, will the compiler will be with respect to the C standard being used ( e.g. C89, C11 ) or is the compiler unique to the processor?
Eg: Zephyr OS can use the https://github.com/zephyrproject-rtos/sdk-ng toolchain, which is built for arm, riscv, mips targets.
C++ REST SDK
-
What is the industry standard today in C++ to deploy REST microservices in Kubernetes?
My favourite was Microsoft's cpprestsdk, but for some reason now is in maintenance mode, I don't know why, so it's hard to suggest it for new projects. A nice alternative is restc-cpp, that's has a good high-level interface, if this is what you want.
-
REST APIs using C++. (Is this even done much?)
CppRestSDK is deprecated.
- C++ REST API Framework
-
REST library: production 'ready'
https://github.com/microsoft/cpprestsdk (concerned about being maintenance mode -> production?)
-
Have there been any attempts to build a REST API service on top of either Boost.asio or Boost.beast?
While it's not based on Boost Asio or Beast, Microsoft maintains a SDK for developing REST api's using C++, aptly named the C++ REST SDK. Here you can find the Github page. It pretty much covers everything you'd come to expect from a modern webserver package. It does come with a steep learning curve however.
-
Microsoft YARP
I never thought I'd laud microsoft on open source software but this has certainly made my life easier... I mean come on, MIT licensed and everything...
https://github.com/microsoft/cpprestsdk
-
Web services in C++
Assuming you want to make a REST API check this out: https://github.com/Microsoft/cpprestsdk
-
Thriving in a Crowded and Changing World: C++ 2006–2020 [pdf]
>But is it truly practical to use in 'higher-abstraction' apps like web or mobile?
Yes absolutely. Once you become familiar with the language the barrier is not that high. Familiarity trumps everything else.
That said, since i am not a Web/mobile developer i had collected some resources to help me learn how to use C++ for Web/Mobile apps, you may find it useful;
https://levelup.gitconnected.com/cross-platform-mobile-and-w...
https://github.com/Microsoft/cpprestsdk
https://medium.com/@ivan.mejia/modern-c-micro-service-implem...
-
cpprestsdk in maintenance mode
I was starting a project that needs to read data with rest API and I'd like to use cpprestsdk from Microsoft. But it's readme says that's in maintenance mode and it's not recommended for new projects... I'd like to know why it's in maintenance mode, and if it will be abandoned. Also, if there's some equivalent library for cpp, instead of creating the business logic from scratch, i.e. with boost::beast.
What are some alternatives?
gdb-dashboard - Modular visual interface for GDB in Python
Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
libcurl - A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
Abstract - neovim as an IDE
Restbed - Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.
POCO - The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
Simple-WebSocket-Server
drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]
Proxygen - A collection of C++ HTTP libraries including an easy to use HTTP server.
cpp-httplib - A C++ header-only HTTP/HTTPS server and client library
Boost.Asio - Asio C++ Library