![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
BuildFlow, is an open source framework for building large scale systems using Python. All you need to do is describe where your input is coming from and where your output should be written, and BuildFlow handles the rest.
📖 Docs | ⚡ Quickstart | 👋 Slack | 🌟 Contribute | 🚀 Deployment
BuildFlow is a Python framework that allows you to build your entire backend system using one framework. With our simple decorator pattern you can turn any function into a component of your backend system. Allowing you to serve data over HTTP, dump data to a datastore, or process async data from message queues. All of these can use our built in IO connectors allowing you to create, manage, and connect to your cloud resources using pure Python.
Turn any function into a component of your backend system.
# Serve traffic over HTTP or Websockets
service = app.service("my-service")
@service.endpoint("/", method="GET")
def get():
return "Hello World"
# Collect, transform, and write data to storage
@app.collector("/collect", method="POST", sink=SnowflakeTable(...))
def collect(request: Dict[str, Any]):
return element
# Process data from message queues such as Pub/Sub & SQS
@app.consumer(source=SQSQueue(...), sink=BigQuery(...))
def process(element: Dict[str, Any]):
return element
Create and connect to cloud resources using python (powered by Pulumi)
# Use Python objects to define your infrastructure
sqs_queue = SQSQueue("queue-name")
gcs_bucket = GCSBucket("bucket-name")
# Your application manages its own infrastructure state
app.manage(s3_bucket, gcs_bucket)
# Use the same resource objects in your application logic
@app.consumer(source=sqs_queue, sink=gcs_bucket)
def process(event: YourSchema) -> OutputSchema:
# Processing logic goes here
return OutputSchema(...)
Inject any dependency with full control over its setup and lifecycle
# Define custom dependencies
@dependency(Scope.GLOBAL)
class MyStringDependency:
def __init__(self):
self.my_string = "HELLO!"
# Or use the prebuilt dependencies
PostgresDep = SessionDepBuilder(postgres)
# BuildFlow handles the rest
@service.endpoint("/hello", method="GET")
def hello(db: PostgresDep, custom_dep: MyStringDependency):
with db.session as session:
user = session.query(User).first()
# Returns "HELLO! User.name"
return f"{custom_dep.my_string} {user.name}"
Scale out parallel tasks across your cluster with Ray or any other async framework.
@ray.remote
def long_task(elem):
time.sleep(10)
return elem
@app.consumer(PubSubSubscription(...), BigQueryTable(...))
def my_consumer(elem):
# Tasks are automatically parallelized across your cluster
return await long_task.remote(elem)
pip install buildflow
BuildFlow uses Pulumi to manage resources used by your application. To install Pulumi visit: https://www.pulumi.com/docs/install/
Installing Pulumi unlocks:
We use black and ruff with pre-commit hooks to perform health checks. To setup these locally:
dev
dependencies like python -m pip install -e .[dev]
pre-commit --version
pre-commit install
pre-commit run --all-files
BuildFlow is open-source and licensed under the Apache License 2.0. We welcome contributions, see our CONTRIBUTING.md file for details.
FAQs
BuildFlow, is an open source framework for building large scale systems using Python. All you need to do is describe where your input is coming from and where your output should be written, and BuildFlow handles the rest.
We found that buildflow demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.