oso 0.1.0

Major news

The Oso core is now written in Rust

This release consists of mostly internal changes. The core implementation of the Polar language is now written in Rust.

New Python package

Precompiled wheels supporting Python >= 3.6 are now distributed through PyPI with pip install oso.

Ruby support

The oso-oso gem supporting Ruby >= 2.4 is now available on RubyGems. Try it out with gem install oso-oso.

Breaking changes

Warning

This release contains breaking changes. Be sure to follow migration steps before upgrading.

Polar language changes

Explicit class instantiation with the new operator

This release introduces the new operator. Previously, the literal value Foo{x: 1} would be implicitly constructed as a Foo instance in some cases. Instantiation is now explicit, and Foo{x: 1} is only valid as a specializer:

check_this(foo: Foo{x: 1})

Constructing a new instance of Foo from Polar requires an explicit new operator:

new Foo{x: 1}

API changes

Python

Disambiguated load functions. oso.Oso.load() is no longer valid:

  • Load files with oso.Oso.load_file().
  • Load strings with oso.Oso.load_str().

New features

New operators: in and forall

Documentation:

Other bugs & improvements

  • More consistent formatting for error messages.
  • Performance improvements to the Polar virtual machine that are especially significant for policies with many rules.

Set up a 1x1 with an Oso Engineer

Our team is happy to help you get started with Oso. If you'd like to learn more about using Oso in your app or have any questions about this guide, schedule a 1x1 with an Oso engineer.


Was this page useful?