Skip to content

Conversation

@AhmedSoliman
Copy link
Contributor

@AhmedSoliman AhmedSoliman commented Oct 16, 2025

This introduces restate-lite a crate that provides restate core functionality as a library. The library is intended to be used in developement or testing use cases. Therefore, it uses defaults tuned for for that purpose.


Stack created with Sapling. Best reviewed with ReviewStack.

@github-actions
Copy link

github-actions bot commented Oct 16, 2025

Test Results

  7 files  ±0    7 suites  ±0   2m 38s ⏱️ +6s
 47 tests ±0   47 ✅ ±0  0 💤 ±0  0 ❌ ±0 
200 runs  ±0  200 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit fbebcd4. ± Comparison against base commit 4e1134e.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@tillrohrmann tillrohrmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for adding the lite crate @AhmedSoliman. It already feels really lite to start a Restate node with it :-) Tested it locally and works like a charm :-) +1 for merging.

let common = common_builder.build()?;

let bifrost = BifrostOptionsBuilder::default()
.default_provider(ProviderKind::Local)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't we want to remove the local provider kind at some point to reduce the maintenance surface?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's still up to debate and we can make the final decision on that before cutting v1.6. I chose the local loglet for its simplicity in the embedded setup. Perhaps it can be feature gated and only enabled in the library mode or something along those lines.

Comment on lines +54 to +57
pub enum AddressKind {
Tcp,
Unix,
Http,
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are not relying on the protobuf types in case we make them an optional feature in restate-core?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The primary reason is to have tight control over the public interface of this library and to make it easy to export those types through FFI boundaries without coupling the original types to that requirement.

Comment on lines +200 to +204
// apply config cascading propagation
config.common.set_derived_values()?;
config.ingress.set_derived_values(&config.common);
config.admin.set_derived_values(&config.common);
let config = config.apply_cascading_values();
config.validate()?;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Maybe this is something to make part of Configuration and share with the ConfigLoader so that it is easier to keep up to date?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, definitely that part of configuration isn't very pretty. I've some ideas and plans but I'd tackle them in the scope of another future PR.

This introduces `restate-lite` a crate that provides restate core functionality as a library. The library is intended to be used in developement or testing use cases. Therefore, it uses defaults tuned for for that purpose.
@AhmedSoliman AhmedSoliman merged commit fbebcd4 into main Oct 21, 2025
55 checks passed
@AhmedSoliman AhmedSoliman deleted the pr3903 branch October 21, 2025 16:36
@github-actions github-actions bot locked and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants