Skip to content

Introduction to Rayforce-Py

Rayforce-Py is a powerful library which allows you to effectively execute statements inside RayforceDB runtime using handy Pythonic syntax.

      table.select(
          total=Column("amount").sum(),
          active_total=Column("amount").where(Column("status") == "active").sum(),
          count=Column("amount").count(),
      )
      .by("category")
      .execute()
      ┌──────────┬───────┬──────────────┬───────┐
       category  total  active_total  count 
      ├──────────┼───────┼──────────────┼───────┤
       A         600    100           3     
       B         400    400           2     
      ├──────────┴───────┴──────────────┴───────┤
       2 rows (2 shown) 4 columns (4 shown)    
      └─────────────────────────────────────────┘

The interaction with the RayforceDB is happening via C API bus, which allows us to seamlessly operate with your local rayforce runtime with little-to-no practical overhead.

This library is operating under 0 dependency - it's run on pure python, without any external libraries. Read more about the underlying implementation in Performance section.

0
Average Overhead
Nearly identical to native performance

Installation

Platform support info:

Platform/Version 3.11 3.12 3.13 3.14
Linux x86_64
MacOS arm64
Windows coming soon

Distribution is available via pypi:

python -m pip install rayforce-py

# OR use available aliases:
python -m pip install rayforce
python -m pip install rayforcedb

from source

You can manually clone latest github repo and build it yourself

~ $ git clone https://github.com/RayforceDB/rayforce-py.git
~ $ cd rayforce-py

~/rayforce-py $ make app
# 1. Pulls the latest Rayforce from GitHub
# 2. Builds the Rayforce and it's plugins
# 3. Moves binaries around so they become available to the library

~/rayforce-py $ python -c "import rayforce; rayforce.I64(123)"
I64(123)

Discover

If you would like to become a contributor, please see Contibuting section

If you are a developer, please see Documentation