Skip to content

Commit

Permalink
### Renaming the project to GLIDE for Redis ### (#699)
Browse files Browse the repository at this point in the history
  • Loading branch information
barshaul authored Dec 21, 2023
1 parent dc86d5b commit 38fc099
Show file tree
Hide file tree
Showing 136 changed files with 1,808 additions and 2,016 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-node-wrapper/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ runs:
working-directory: ./node
run: |
# set the package name
name="babushka"
name="glide-for-redis"
# derive the OS and architecture from the inputs
export node_os="${{ inputs.named_os }}"
export node_arch="${{ inputs.arch }}"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-python-wrapper/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ runs:
run: |
export PATH="$PATH:$HOME/.local/bin"
MYPY_PROTOC_PATH=`which protoc-gen-mypy`
protoc --plugin=protoc-gen-mypy=${MYPY_PROTOC_PATH} -Iprotobuf=./babushka-core/src/protobuf/ --python_out=./python/python/pybushka --mypy_out=./python/python/pybushka ./babushka-core/src/protobuf/*.proto
protoc --plugin=protoc-gen-mypy=${MYPY_PROTOC_PATH} -Iprotobuf=./glide-core/src/protobuf/ --python_out=./python/python/glide --mypy_out=./python/python/glide ./glide-core/src/protobuf/*.proto
- name: Build Pybushka
- name: Build GLIDE
shell: bash
working-directory: ./python
if: ${{ inputs.publish != 'true' }}
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -235,9 +235,9 @@ jobs:

- name: Create package.json file
shell: bash
working-directory: ./node/npm/babushka
working-directory: ./node/npm/glide
run: |
export pkg_name=babushka
export pkg_name=glide-for-redis
echo "${GITHUB_REF:11}"
export package_version=${GITHUB_REF:11}
export scope=`if [ "$NPM_SCOPE" != '' ]; then echo "$NPM_SCOPE/"; fi`
Expand All @@ -258,18 +258,18 @@ jobs:

- name: Create a directory for the packed packages
shell: bash
working-directory: ./node/npm/babushka
working-directory: ./node/npm/glide
run: mkdir packages

- name: Download the packed packages
id: download
uses: actions/download-artifact@v3
with:
path: ./node/npm/babushka/packages
path: ./node/npm/glide/packages

- name: Install the packed packages
shell: bash
working-directory: ./node/npm/babushka
working-directory: ./node/npm/glide
run: |
ls -LR packages/
packages_list=`find ${{steps.download.outputs.download-path}} -type f -follow -print`
Expand All @@ -284,7 +284,7 @@ jobs:
- name: Publish the base package
shell: bash
working-directory: ./node/npm/babushka
working-directory: ./node/npm/glide
run: |
# Copy the main README file
cp ../../README.md .
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/csharp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ on:
branches: ["main"]
paths:
- csharp/**
- babushka-core/**
- glide-core/**
- submodules/**
- .github/workflows/csharp.yml
pull_request:
paths:
- csharp/**
- babushka-core/src/**
- glide-core/src/**
- submodules/**
- .github/workflows/csharp.yml

Expand Down Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Install protoc (protobuf)
uses: arduino/[email protected]
with:
version: "25.1"
version: "25.1"

- name: Set up dotnet
uses: actions/setup-dotnet@v3
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ on:
push:
branches: ["main"]
paths:
- babushka-core/**
- glide-core/**
- submodules/**
- "java/**"
- ".github/workflows/java.yml"
pull_request:
paths:
- babushka-core/**
- glide-core/**
- submodules/**
- "java/**"
- ".github/workflows/java.yml"
Expand Down Expand Up @@ -73,16 +73,16 @@ jobs:
# - uses: ./.github/workflows/test-benchmark
# with:
# language-flag: -java

lint-rust:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
submodules: recursive

- uses: ./.github/workflows/lint-rust
with:
cargo-toml-folder: ./java
name: lint java rust
cargo-toml-folder: ./java
name: lint java rust
4 changes: 2 additions & 2 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: ["main"]
paths:
- babushka-core/**
- glide-core/**
- submodules/**
- node/**
- utils/cluster_manager.py
Expand All @@ -13,7 +13,7 @@ on:
- .github/workflows/install-shared-dependencies/action.yml
pull_request:
paths:
- babushka-core/src/**
- glide-core/src/**
- submodules/**
- node/**
- utils/cluster_manager.py
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches: ["main"]
paths:
- python/**
- babushka-core/src/**
- glide-core/src/**
- submodules/**
- utils/cluster_manager.py
- .github/workflows/python.yml
Expand All @@ -14,7 +14,7 @@ on:
pull_request:
paths:
- python/**
- babushka-core/src/**
- glide-core/src/**
- submodules/**
- utils/cluster_manager.py
- .github/workflows/python.yml
Expand Down Expand Up @@ -65,9 +65,9 @@ jobs:
working-directory: ./python
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --extend-ignore=E230 --exclude=python/pybushka/protobuf,.env/*
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --extend-ignore=E230 --exclude=python/glide/protobuf,.env/*
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=12 --max-line-length=127 --statistics --extend-ignore=E230 --exclude=python/pybushka/protobuf,.env/*
flake8 . --count --exit-zero --max-complexity=12 --max-line-length=127 --statistics --extend-ignore=E230 --exclude=python/glide/protobuf,.env/*
- name: Lint with black
working-directory: ./python
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ on:
branches: [main]
paths:
- logger_core/**
- babushka-core/**
- glide-core/**
- submodules/**
- utils/cluster_manager.py
- .github/workflows/rust.yml
pull_request:
paths:
- logger_core/**
- babushka-core/**
- glide-core/**
- submodules/**
- utils/cluster_manager.py
- .github/workflows/rust.yml
Expand Down Expand Up @@ -51,15 +51,15 @@ jobs:
- uses: Swatinem/rust-cache@v2

- name: Run tests
working-directory: ./babushka-core
working-directory: ./glide-core
run: cargo test -- --nocapture --test-threads=1 # TODO remove the concurrency limit after we fix test flakyness.

- name: Run logger tests
working-directory: ./logger_core
run: cargo test -- --nocapture --test-threads=1

- name: Check features
working-directory: ./babushka-core
working-directory: ./glide-core
run: |
cargo check --benches --all-features
cargo check --no-default-features
Expand All @@ -78,8 +78,8 @@ jobs:

- uses: ./.github/workflows/lint-rust
with:
cargo-toml-folder: ./babushka-core
name: lint babushka-core
cargo-toml-folder: ./glide-core
name: lint glide-core

- uses: ./.github/workflows/lint-rust
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-benchmark/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ runs:

- shell: bash
working-directory: ./benchmarks
run: ./install_and_test.sh -no-tls -minimal -only-babushka -data 1 -tasks 10 ${{ inputs.language-flag }}
run: ./install_and_test.sh -no-tls -minimal -only-glide -data 1 -tasks 10 ${{ inputs.language-flag }}
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Cargo.lock
*.pdb
dump.rdb
.env
python/.env*
benchmarks/results

# IDE generaged files
Expand All @@ -37,7 +38,12 @@ node_modules/

install_and_test_cp.sh

babushka-logs/
glide-logs/
logger-rs.linux-x64-gnu.node
utils/clusters/
utils/tls_crts/

# OSS Review Toolkit (ORT) files
**/ort/**
**/ort_results/**
**/.ort.yml
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"files.trimFinalNewlines": true,
"python.formatting.provider": "black",
"rust-analyzer.linkedProjects": [
"babushka-core/Cargo.toml",
"glide-core/Cargo.toml",
"python/Cargo.toml",
"node/rust-client/Cargo.toml",
"logger_core/Cargo.toml",
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## 0.1.0

Preview release of **babushka** a Polyglot Redis client.
Preview release of **GLIDE for Redis** a Polyglot Redis client.

See the [README](README.md) for additional information.
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @aws/babushka
* @aws/glide
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Babushka (Temporary Name)
[The followig short description is place holder, copied from PRFAQ - should not be reviewed]
Babushka is a Redis client. It’s free, open-sourced under a permissive license (Apache 2.0), sponsored by AWS and connects to any Redis datastore. Over the years, AWS has gained operational experience in managing ElastiCache for Redis and MemoryDB at a very large scale. We know that the client library is key for reliability, performance, and security. We brought this operational experience to Babushka, and we optimized it for open-source and managed Redis workloads running on AWS. Here are some examples: Babushka is configured by default with an exponential backoff retry strategy to prevent connection storms. To handle cluster topology changes better, Babushka proactively checks DNS endpoints validity, and auto-triggers DNS refreshes. Customers do not experience slowness originating from bad connections configuration, because Babushka uses a smart connection multiplexing algorithm. Babushka is built with a common core layer, written in Rust, which can be extended to support various programming languages. With this release, Babushka supports Python and TypeScript. Having a common core ensures consistency across all supported languages, and provides a unified client experience, which means similar behavior and functionality.
# GLIDE for Redis
General Language Independent Driver for the Enterprise (GLIDE) for Redis, is an AWS-sponsored, open-source Redis client. GLIDE for Redis works with any Redis distribution that adheres to the Redis Serialization Protocol (RESP) specification, including open-source Redis, Amazon ElastiCache for Redis, and Amazon MemoryDB for Redis.
Strategic, mission-critical Redis-based applications have requirements for security, optimized performance, minimal downtime, and observability. GLIDE for Redis is designed to provide a client experience that helps meet these objectives. It is sponsored and supported by AWS, and comes pre-configured with best practices learned from over a decade of operating Redis-compatible services used by hundreds of thousands of customers. To help ensure consistency in development and operations, GLIDE for Redis is implemented using a core driver framework, written in Rust, with extensions made available for each supported programming language. This design ensures that updates easily propagate to each language and reduces overall complexity. In this Preview release, GLIDE for Redis is available for Python and Javascript (Node.js), with support for Java actively under development.

## Supported Redis Versions
Redis 6 and above
GLIDE for Redis is API-compatible with open source Redis version 6 and 7.

## Current Status
Babushka is currently a **beta release** and is recommended for testing purposes only. We're tracking its production readiness and future features on the [roadmap](https://github.com/orgs/aws/projects/165/).
We've made GLIDE for Redis an open-source project, and are releasing it in Preview to the community to gather feedback, and actively collaborate on the project roadmap. We welcome questions and contributions from all Redis stakeholders.
This preview release is recommended for testing purposes only. It is available in Python and Javascript (Node.js), with Java to follow. We're tracking its production readiness and future features on the [roadmap](https://github.com/orgs/aws/projects/165/).


## Getting Started
Expand All @@ -15,12 +16,12 @@ Babushka is currently a **beta release** and is recommended for testing purposes
- [Python](./python/README.md)

## Getting Help
If you have any questions, feature requests, encounter issues, or need assistance with this project, please don't hesitate to open a GitHub issue. Our community and contributors are here to help you. Before creating an issue, we recommend checking the [existing issues](https://github.com/aws/babushka/issues) to see if your question or problem has already been addressed. If not, feel free to create a new issue, and we'll do our best to assist you. Please provide as much detail as possible in your issue description, including:
If you have any questions, feature requests, encounter issues, or need assistance with this project, please don't hesitate to open a GitHub issue. Our community and contributors are here to help you. Before creating an issue, we recommend checking the [existing issues](https://github.com/aws/glide/issues) to see if your question or problem has already been addressed. If not, feel free to create a new issue, and we'll do our best to assist you. Please provide as much detail as possible in your issue description, including:

1. A clear and concise title
2. Detailed description of the problem or question
3. A reproducible test case or series of steps
4. The Babushka version in use
4. The GLIDE version in use
5. Operating system
6. Redis version
7. Redis cluster information, cluster topology, number of shards, number of replicas, used data types
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ dist
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
*babushka*.node
*glide*.node
yarn.lock


Expand Down
14 changes: 7 additions & 7 deletions benchmarks/csharp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
using babushka;
using Glide;
using CommandLine;
using LinqStatistics;
using StackExchange.Redis;
Expand Down Expand Up @@ -282,20 +282,20 @@ private static async Task run_with_parameters(int total_commands,
int clientCount,
bool useTLS)
{
if (clientsToRun == "all" || clientsToRun == "babushka")
if (clientsToRun == "all" || clientsToRun == "glide")
{
var clients = await createClients(clientCount, () =>
{
var babushka_client = new AsyncClient(host, PORT, useTLS);
var glide_client = new AsyncClient(host, PORT, useTLS);
return Task.FromResult<(Func<string, Task<string?>>, Func<string, string, Task>, Action)>(
(async (key) => await babushka_client.GetAsync(key),
async (key, value) => await babushka_client.SetAsync(key, value),
() => babushka_client.Dispose()));
(async (key) => await glide_client.GetAsync(key),
async (key, value) => await glide_client.SetAsync(key, value),
() => glide_client.Dispose()));
});

await run_clients(
clients,
"babushka",
"glide",
total_commands,
data_size,
num_of_concurrent_tasks
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/csharp/csharp_benchmark.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<ProjectReference Include="..\..\csharp\lib\babushka.csproj" />
<ProjectReference Include="..\..\csharp\lib\glide.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading

0 comments on commit 38fc099

Please sign in to comment.