A C++ template library for embedded applications
Embedded Template Library
Github
MIT licensed
Designed and
maintained by
John Wellbelove
Arduino
Slack
Is the ETL free?
Documentation
Generators, macros etc.
ETL logos, icons and graphics.
Using compiler built-ins.
ETL traits
Misc
Category
ETL Traits
Compiler built-ins
Generators
Macros
ETL logos, icons and graphics
Tutorials
Function
Containers
Observer
Shared message
Messages
Concurrent queues
Callback service
Delegate service
Locked queue
The library allows a variety of methods to catch
errors, allowing the performance and space
overheads to be chosen according to the situation
and requirements.
Error Handling
Category
Error handler
A set of templates that present the framework
code for functionality such as state machines,
message routers etc.
Frameworks
Messages
message
message_packet
message_router
message_broker
message_bus
message_router_registry
shared_message
reference_counted_messages
reference_counted_message_pool
Timers
timer
callback_timer
callback_timer_atomic
callback_timer_interrupt
callback_timer_locked
message_timer
message_timer_atomic
message_timer_interrupt
message_timer_locked
Link
Scheduler
scheduler
task
State Machines
fsm
hfsm
state_chart
Callbacks
function
delegate
callback_service
delegate_servive
A catch-all for all other template classes. Some of
these are reverse engineered from the C++ 11
standard; others being generally useful utilities.
Utilities
A
Algorithms
Atomic
B
binary
bit
bit_stream (deprecated)
bit_stream_reader
bit_stream_writer
byte
byte_stream_reader
byte_stream_writer
C
circular_iterator
compare
constant
cyclic_value
D
debounce
debug_count
delegate
E
endian
enum_type
exception
expected
F
fixed_iterator
flags
function
functional
functor
functor_wrapper
I
instance_count
integral_limits
io_port
iterator
initializer_list
L
largest
limits
lsb_mask
M
make_lsb_mask
make_msb_mask
mem_cast
memory
memory_model
mutex
multi_range
member_function_wrapper
msb_mask
N
nullptr
null_type
numeric
P
parameter_type
parameter_pack
R
reference_counted_object
result
S
smallest
static_assert
successor
select1st
select2nd
size_of_value_type
size_of_key_type
size_of_mapped_type
size_of_type
T
type_traits
type_select
type_lookup
type_def
U
unaligned_type
user_type
utility
A set of mathematical templates; both compile time
constants and algorithms such as hash codes and
CRCs.
Mathematical
Maths
absolute
pseudo_moving_average
hash
Random numbers
Scaled Rounding
negative
Constants
Combinations / Permutaions
Constants
ratio
radix
Graphical
bresenham_line
Algorithms and Functors
Correlation
Covariance
Gamma
Histogram
Invert
Limiter
Mean
Quantize
Rescale
RMS
Standard Deviation
Threshold
Variance
A set of templates that supply the basic framework
for implementing popular design patterns.
Template techniques are used to ensure that
implementation mistakes are usually caught at
compile time
Patterns
Patterns
observer
overload
singleton
successor
visitor
A set of fixed capacity string classes, for
char
,
wchar_t
,
char16_t
and
char32_t
character types.
Strings
Strings
string
string_view
Utilities
to_string
to_arithmetic
format_spec
string_stream
String utilities
A set of containers that have been specially tailored
for embedded systems. They have a maximum
capacity fixed at compile time and make no calls to
malloc/free
or
new/delete
.
Containers
Arrays
array
array_view
array_wrapper
multi_array
span
multi_span
poly_span
Vectors
vector
indirect_vector
multi_vector
Deques
deque
Lists
list
forward_list
intrusive_list
intrusive_forward_list
Maps
map / multimap
flat_map / _multimap
unordered_map / _multimap
reference_flat_map / _multimap
Sets
set / multiset
flat_set / _multiset
unordered_set / _multiset
reference_flat_set / _multiset
Queues
queue
queue_lockable
queue_mpmc_mutex
queue_spsc_atomic
queue_spsc_isr
queue_spsc_locked
intrusive_queue
priority_queue
circular_buffer
bip_buffer_spsc_atomic
Stacks
stack
intrusive_stack
Pools
pool / generic_pool
variant_pool
imemory_block_allocator
fixed_sized_memory_block_allocator
Misc
bitset
bitset legacy
bloom_filter
Intrusive links
optional
packet
variant (legacy)
variant (variadic)
buffer_descriptors
Overview
Releases
Setup
Arduino
Compilers
No STL
ETL & C
Unit Testing
Get Involved
Home
Overview
Releases
Documentation
Tutorials
function
Containers
observer
visitor
Messages
Generators
Concurrent queues
callback_service
delegate_service
Shared messages
Locked queue
Links
Templates
Templates - First Steps
RTOS
crect
FreeRTOS
NuttX
Contiki
Libraries
JSON
GFX
Regex
AU Units
Embedded Artistry
Website
Libraries
Fluent C++
CPP Reference
Stack Overflow
Stack Exchange
Open Source
Working with binary
Bit Twiddling Hacks
CPPcon
Real-time with STL
Template Metaprogramming
Git
Git Command Explorer
Fork
GitKraken
SmartGit
Sourcetree
Reviews
ETL vs STL Algorithms
Embedded Artistry
Reddit
Support
Contact
About