This post summarizes the differences between boto3 and boto, the origins of "boto" itself, and the history of the AWS SDK for Python.
Introduction
I frequently use boto3, the AWS SDK for Python.
However, when I started working with AWS, "boto3" was already the standard. Since it has a "3" in its name, I wondered—was there an original boto or boto2 before it? For those familiar with AWS from the early days, the answer might be obvious, but I wasn't sure.
So, I decided to research the historical background of boto3 and summarize:
- The differences between boto3 and boto
- What happened to boto2
- The origin of the name "boto"
Note: This article was translated from my original post.
The History of AWS SDK for Python
Differences Between boto3 and boto
A little research shows that boto existed as a separate library from boto3.
Looking into the differences between boto and boto3, I found an answer on Stack Overflow from the creator of boto:
python - What is the difference between the AWS boto and boto3 - Stack Overflow
A rough summary of his explanation:
- boto was the official AWS Python SDK since 2006.
- However, as AWS services grew, maintaining boto became increasingly difficult.
- To address this, boto3 was developed with a fresh design:
- It is based on botocore.
- Low-level AWS interfaces are automatically generated.
- This allows for a cleaner client-layer design.
So, boto had been in use for nearly a decade from 2006 until boto3's general availability in 2015. It makes sense that a redesign was needed over time.
Looking at GitHub star trends, this history becomes even clearer:
- boto was originally a popular library.
- Around 2015, boto3 and botocore appeared.
- Since then, boto3's popularity has risen steadily, while boto has faded out.
What Happened to boto2?
Now that the history of boto and boto3 makes sense, another question remains:
What happened to boto2?
To answer this, I examined how the term "boto2" was used in historical contexts.
The conclusion I arrived at: "boto2" refers to version 2 of boto.
Some documentation examples illustrate this:
The boto documentation explicitly states that it is for an older version (boto2) and recommends using boto3 instead:
You are viewing the documentation for an older version of boto (boto2).
boto: A Python interface to Amazon Web Services — boto v2.49.0
Similarly, boto3's migration guide refers to boto2 as version 2 of boto:
The rest of this document will describe specific common usage scenarios of Boto 2 code and how to accomplish the same tasks with Boto3.
Migrating from Boto 2.x - Boto3 1.36.25 documentation
Summarizing the historical transition:
- boto has been in use since 2006.
- Version 2 of boto was referred to as boto2.
- In 2015, boto3 was released with a refreshed design.
That clears things up!
The Origin of "boto"
As for the origin of the name "boto," the boto3 README provides an explanation:
Boto (pronounced boh-toh) was named after the fresh water dolphin native to the Amazon river.
GitHub - boto/boto3: AWS SDK for Python
The name comes from the Amazon river dolphin (Inia geoffrensis), commonly known as "boto."
Additionally, in a GitHub issue, the creator of boto himself commented on the name's origin:
It was named after the fresh water dolphin native to the Amazon river. I wanted something short, unusual, and with at least some kind of connection to Amazon. Boto seemed to fit the bill 8^)
Why is the project named boto? · Issue #1023 · boto/boto3 · GitHub
Conclusion
This research summarizes the history of AWS SDK for Python—from the differences between boto3 and boto to the origins of "boto".
It started as a sudden curiosity, but I found it really interesting.
I hope this summary helps anyone else who has wondered the same thing.
[Related Articles]
References
- python - What is the difference between the AWS boto and boto3 - Stack Overflow
- Elastician
- What is the difference between the AWS boto and boto3? - Quora
- boto: A Python interface to Amazon Web Services — boto v2.49.0
- Migrating from Boto 2.x - Boto3 1.36.25 documentation
- GitHub - boto/boto3: AWS SDK for Python
- GitHub - boto/boto: For the latest version of boto, see https://github.com/boto/boto3 -- Python interface to Amazon Web Services
- GitHub - boto/botocore: The low-level, core functionality of boto3 and the AWS CLI.
- Why is the project named boto? · Issue #1023 · boto/boto3 · GitHub
- Amazon river dolphin - Wikipedia