spacetime
spacetime copied to clipboard
A fully featured cross-platform API Client for REST, gRPC, and more. Built with .NET MAUI Blazor
spacetime
A fully featured cross-platform, cross-transport API Client, wormholes excluded.
Explore the docs »
Report Bug
·
Request Feature
Spacetime is not production-ready and is in active development. Pre-release users are welcomed with this warning in mind.
Table of Contents
-
About The Project
- Built With
-
Getting Started
- Prerequisites
- Installation
- Usage
-
Contributing
- Architecture
- License
- Contact
- Acknowledgments
About The Project
- [x] REST
- [x] gRPC (we support server reflection! stop reloading protobuf files!)
- [ ] Synchronization (coming soon, for free!)
- [ ] WebSockets
- [ ] Kafka

(back to top)
Built With
(back to top)
Getting started
Prerequisites
- Visual Studio 2022 Preview
- .NET MAUI Workload - currently RC1
- npm
- webpack
(back to top)
Running locally
Once all prerequisites are fulfilled, make sure to run npm install in the wwwroot folder. When you build the solution, the project will automatically run npm run build.
Note: hot reloading does not yet work, but it should be fixed soon.
Installation
Windows
Use the MSIX Installer
Mac Source
Clone the repository and run the dotnet command in the Spacetime project folder.
dotnet build -t:Run -f net6.0-maccatalyst
Mac Binary
Download the zip file and extract the .app
(back to top)
Contributing
Open an issue or tweet me on Twitter with any suggestions or bug reports.
Architecture
The Spacetime MAUI Project uses Fluxor for state management. This means all actions are kicked off using the Dispatcher and handled either in an Effect or a Reducer.
Example:
<button OnClick="Save">Save</button>
@code {
private void Save()
{
Dispatcher.Dispatch(new UpdateRequestAction(Request));
}
}
This will fire an action, and at the very simplest level, can be handled in a reducer method. However, if this action does anything other than mutate state in a reducer, such as an API call, this will be created in an Effect.
All Actions, Reducers, and Effects are in the Spacetime.Store namespace, organized by "feature."
View the Fluxor documentation for further explanation.
(back to top)
Contact
Chat on Discord or tweet me @codemullins
(back to top)