
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
(pronounced A-W-Simple)
Simple API for basic AWS services such as S3 (Simple Storage Service), DynamoDB (a NoSQL database), SNS (Simple Notification Service), and SQS (Simple Queuing Service).
Project featured on PythonBytes Podcast Episode #224.
Full documentation available on Read the Docs .
Simple Object-Oriented API on top of boto3.
clients
, resources
, sessions
, and pagination.Locally cached S3 accesses. Reduces network traffic, AWS costs, and can speed up access.
pubsub
functionality (via SNS topics and SQS queues).
DynamoDB full table scans (with local cache option that only rescans if the table has changed).
True file hashing (SHA512) for S3 files (S3's etag is not a true file hash).
Supports moto mock and localstack. Handy for testing and CI.
Automatic S3 retries.
One-line S3 file write, read, and delete.
DynamoDB secondary indexes.
Built-in pagination (e.g. for DynamoDB table scans and queries). Always get everything you asked for.
Can automatically set SQS timeouts based on runtime data (can also be user-specified).
pip install awsimple
The example folder has several examples you can customize and run. Instructions are available in examples
# print string contents of an existing S3 object
s = S3Access(profile_name="testawsimple", bucket="testawsimple").read_string("helloworld.txt")
print(s)
dynamodb_access = DynamoDBAccess(profile_name="testawsimple", table_name="testawsimple")
# put an item into DynamoDB
dynamodb_access.put_item({"id": "batman", "city": "Gotham"})
# now get it back
item = dynamodb_access.get_item("id", "batman")
print(item["city"]) # Gotham
awsimple
is a simple interface into basic AWS services such as S3 (Simple Storage Service) and
DynamoDB (a simple NoSQL database). It has a set of higher level default settings and behavior
that should cover many basic usage models.
AWS's "serverless" resources offer many benefits. You only pay for what you use, easily scale, and generally have high performance and availability.
While AWS has many varied services with extensive flexibility, using it for more straight-forward
applications is sometimes a daunting task. There are access modes that are probably not requried
and some default behaviors are not best for common usages. awsimple
aims to create a higher
level API to AWS services (such as S3, DynamoDB, SNS, and SQS) to improve programmer productivity.
awsimple
calculates the local file hash (sha512) and inserts it into the S3 object metadata. This is used
to test for file equivalency.
S3 objects and DynamoDB tables can be cached locally to reduce network traffic, minimize AWS costs, and potentially offer a speedup.
DynamoDB cached table scans are particularly useful for tables that are infrequently updated.
awsimple
Is Notawsimple
is not necessarily the most memory and CPU efficient
awsimple
does not provide cost monitoring hooks
awsimple
does not provide all the options and features that the regular AWS API (e.g. boto3) does
3.x.x - Cache life for cached DynamoDB scans is now based on most recent table modification time (kept in a separate table). Explict cache life is no longer required (parameter has been removed).
moto mock-ing can improve performance and reduce AWS costs. awsimple
supports both moto mock and localstack.
In general, it's recommended to develop with mock and finally test with the real AWS services.
Select via environment variables:
Method | Test Time (seconds) | Speedup (or slowdown) | Comment |
---|---|---|---|
AWS | 462.65 | 1x | baseline |
mock | 40.46 | 11x | faster than AWS |
localstack | 2246.82 | 0.2x | slower than AWS |
System: Intel® Core™ i7 CPU @ 3.47GHz, 32 GB RAM
Contributions are welcome, and more information is available in the contributing guide.
FAQs
Simple AWS API for S3, DynamoDB, SNS, and SQS
We found that awsimple demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.