Cute enables developers to create modern connected
apps and services quickly and easily
What is Cute?Cute is a powerful yet extremely easy-to-use and secure C++ RPC (Remote Procedure Call) framework for building modern connected apps and backend services quickly and easily. Cute enables developers to use the intuitive Qt signals and slots mechanism to communicate over a network seamlessly through remote signal-slot connections and direct remote slot calls.
Why Cute?
Productiveness
The signals and slots mechanism Cute uses to abstract communications over a network is a central feature of Qt programming and a widely known and easy-to-use technology. With Cute, developers can focus on writing application code instead of dealing with sockets or reliable, safe, and efficient network data processing. Also, by relying heavily upon Qt's meta-type system, Cute can provide concise, intuitive, and easy-to-use SDKs with a negligible learning curve.
High-Performance Server
Implementing a secure and high-performance server is a huge task. That's why, unlike other RPC systems, Cute provides its own server and frees developers from the burden and pitfalls of implementing one.
Cute provides a high-performance, asynchronous, event-driven, Linux-based server. In addition, by integrating epoll into Qt's event handling system, the Cute server can handle high network loads while staying responsive. Also, the Cute server uses error handlers to enable developers to identify and deal with malicious clients.
On the server side, developers only have to create and map classes to endpoints. The Cute server fetches mapped classes from a user-specified shared library loaded during startup. Cute also provides client SDKs for Linux, Windows, macOS, iOS, Android, and WebAssembly.
Security
The Cute server uses TLS encryption to guarantee data confidentiality. Also, the Cute server provides highly configurable encryption settings. Ciphers, elliptic curves, custom Diffie-Hellman parameters, two-way SSL, the minimum permitted TLS protocol, and custom CA certificates can all be specified by users. Additionally, the Cute server uses HMAC to enforce message integrity on all of its editions on both unencrypted and encrypted connections.
Many RPC systems abstract the network side of the interaction wrongly. Information hiding aims at making developers more productive, but abstractions must not hide important behaviors inherent to network communication. The Cute server enables developers to identify clients and take action whenever a suspicious activity occurs on the server side.
Truly Two-Way Communication
With Cute, clients can connect to remote signals to receive server-side events. Cute provides the most straightforward and intuitive way for backend code to notify connected clients.
WebSocket-based transport
Cute uses WebSocket as its transfer protocol. WebSocket is a lightweight binary protocol that enables low latency, bidirectional communication between connected peers. Additionally, WebSocket is a friendly protocol for the intermediaries (proxies, firewalls, etc.) that may exist in the connection chain.
Event-Driven Architecture
The signals and slots mechanism plays the perfect role as an abstraction to model network-based communications between objects due to its ability to naturally represent asynchronous interactions through events. Cute integrates with Qt's event handling system to provide an intuitive and high-performance messaging system.
Qt for Encoding and Marshaling
Qt's meta-type system provides powerful introspection capabilities, enabling Cute to provide tiny SDKs that are extremely easy to use. With Cute, developers only have to write QObject-derived classes with specially-tagged signals and slots to communicate over a network. Cute does all the hard work under the hood by relying on Qt's meta-type system and signals and slots mechanism.
In addition, Cute provides a custom data streamer capable of handling rogue data sent by malicious clients trying to abuse the server.
Where to use Cute?
Microservices
Cute provides an elegant solution to implement communication among microservices. For C++ programmers that do not know/use Qt, it is much easier to use Cute than learning other RPC alternatives.
Additionally, developers can use HTTP to communicate with microservices implemented in other languages, as the Cute server fully supports HTTP-based interactions.
Mobile/IoT/Desktop/Browser apps to Backend Services
With Qt, developers can create mobile/IoT/desktop/browser apps. With Cute, these apps can interact with backend code seamlessly. Cute provides client SDKs for Linux, Windows, macOS, iOS, Android, and WebAssembly.
SaaS/API Providers
The signals and slots mechanism enables SaaS/API providers to create rich interaction models for their products.
Cute also protects the intellectual property of SaaS/API providers. Although Cute abstracts the network from clients and enables them to interact with remote objects as if they were local, server-side code stays on the server. Clients only need to know the signatures of the remote signals and slots to interact with remote objects on the server side.
Pricing
Free trial
$0/for 30 days
check_circleAny server edition
check_circleNo credit card required
check_circleFree for 30 days
check_circleSingle server instance
check_circleFor AWS only
check_circleAny server edition
check_circleNo credit card required
check_circleFree for 30 days
check_circleSingle server instance
check_circleFor AWS only
Startup
$79/month
check_circleSingle thread
check_circleUnlimited connections
check_circleSSL-encrypted connections
check_circleSingle thread
check_circleUnlimited connections
check_circleSSL-encrypted connections
Business
$129/month
check_circleEverything in Startup
check_circleUnlimited threads
check_circleHTTP support
check_circleProxy protocol support
check_circleEpoll-based event handler
check_circleEverything in Startup
check_circleUnlimited threads
check_circleHTTP support
check_circleProxy protocol support
check_circleEpoll-based event handler
Enterprise
$1895/year
check_circleEverything in Business
check_circleInvoice-based billing
check_circlePacket locality for extreme performance
check_circleEverything in Business
check_circleInvoice-based billing
check_circlePacket locality for extreme performance